Copy the widget for each language

This commit is contained in:
Cristi Ingineru 2018-06-28 12:33:44 +03:00
parent 2393539b44
commit 13e2666a51
3 changed files with 20 additions and 5 deletions

View File

@ -1,4 +1,16 @@
{% with widget_id=widget.attrs.id %}
<div class="localized-fields-widget" role="tabs" data-synctabs="translation">
<ul class="localized-fields-widget tabs">
{% for widget in widget.subwidgets %}
<label for="{{ widget.attrs.id }}">{{ widget.lang_name }}</label>
{% include widget.template_name %}
<li class="localized-fields-widget tab">
<label for="{{ widget_id }}_{{ widget.lang_code }}">{{ widget.lang_name|capfirst }}</label>
</li>
{% endfor %}
</ul>
{% for widget in widget.subwidgets %}
<div role="tabpanel" id="{{ widget_id }}_{{ widget.lang_code }}">
{% include widget.template_name %}
</div>
{% endfor %}
</div>
{% endwith %}

View File

@ -1,3 +1,5 @@
import copy
from typing import List
from django.conf import settings
@ -16,7 +18,7 @@ class LocalizedFieldWidget(forms.MultiWidget):
"""Initializes a new instance of :see:LocalizedFieldWidget."""
initial_widgets = [
self.widget
copy.copy(self.widget)
for _ in settings.LANGUAGES
]

View File

@ -16,6 +16,7 @@ class LocalizedFieldWidgetTestCase(TestCase):
widget = LocalizedFieldWidget()
assert len(widget.widgets) == len(settings.LANGUAGES)
assert len(set(widget.widgets)) == len(widget.widgets)
@staticmethod
def test_decompress():