diff options
| author | Tim Graham <timograham@gmail.com> | 2017-04-15 13:55:33 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-04-20 10:06:34 -0400 |
| commit | af1f986360dc6bb6e75e960dbc191707541128ac (patch) | |
| tree | 19f6cf7d729cb8a454bb57df9cd9dc277a3bd338 | |
| parent | 43b4a1618ed85151494d68778a1bb6304ce1cb79 (diff) | |
Fixed #28059 -- Restored class attribute in <ul> of widgets that use multiple_input.html.
Regression in b52c73008a9d67e9ddbb841872dc15cdd3d6ee01
4 files changed, 21 insertions, 2 deletions
diff --git a/django/forms/jinja2/django/forms/widgets/multiple_input.html b/django/forms/jinja2/django/forms/widgets/multiple_input.html index 349db54104..21cd9b665d 100644 --- a/django/forms/jinja2/django/forms/widgets/multiple_input.html +++ b/django/forms/jinja2/django/forms/widgets/multiple_input.html @@ -1,4 +1,4 @@ -{% set id = widget.attrs.id %}<ul{% if id %} id="{{ id }}"{% endif %}>{% for group, options, index in widget.optgroups %}{% if group %} +{% set id = widget.attrs.id %}<ul{% if id %} id="{{ id }}"{% endif %}{% if widget.attrs.class %} class="{{ widget.attrs.class }}"{% endif %}>{% for group, options, index in widget.optgroups %}{% if group %} <li>{{ group }}<ul{% if id %} id="{{ id }}_{{ index }}"{% endif %}>{% endif %}{% for widget in options %} <li>{% include widget.template_name %}</li>{% endfor %}{% if group %} </ul></li>{% endif %}{% endfor %} diff --git a/django/forms/templates/django/forms/widgets/multiple_input.html b/django/forms/templates/django/forms/widgets/multiple_input.html index 2362aff4e6..0ba9942874 100644 --- a/django/forms/templates/django/forms/widgets/multiple_input.html +++ b/django/forms/templates/django/forms/widgets/multiple_input.html @@ -1,4 +1,4 @@ -{% with id=widget.attrs.id %}<ul{% if id %} id="{{ id }}"{% endif %}>{% for group, options, index in widget.optgroups %}{% if group %} +{% with id=widget.attrs.id %}<ul{% if id %} id="{{ id }}"{% endif %}{% if widget.attrs.class %} class="{{ widget.attrs.class }}"{% endif %}>{% for group, options, index in widget.optgroups %}{% if group %} <li>{{ group }}<ul{% if id %} id="{{ id }}_{{ index }}"{% endif %}>{% endif %}{% for option in options %} <li>{% include option.template_name with widget=option %}</li>{% endfor %}{% if group %} </ul></li>{% endif %}{% endfor %} diff --git a/docs/releases/1.11.1.txt b/docs/releases/1.11.1.txt index d60c9e33e4..53c43443aa 100644 --- a/docs/releases/1.11.1.txt +++ b/docs/releases/1.11.1.txt @@ -36,3 +36,7 @@ Bugfixes * Allowed prefetch calls on managers with custom ``ModelIterable`` subclasses (:ticket:`28096`). + +* Restored the output of the ``class`` attribute in the ``<ul>`` of widgets + that use the ``multiple_input.html`` template. This fixes + ``ModelAdmin.radio_fields`` with ``admin.HORIZONTAL`` (:ticket:`28059`). diff --git a/tests/forms_tests/widget_tests/test_radioselect.py b/tests/forms_tests/widget_tests/test_radioselect.py index 58b2fc408e..8ef3a17da5 100644 --- a/tests/forms_tests/widget_tests/test_radioselect.py +++ b/tests/forms_tests/widget_tests/test_radioselect.py @@ -84,3 +84,18 @@ class RadioSelectTest(WidgetTest): </ul> """ self.check_html(self.widget(choices=self.beatles), 'beatle', 'J', attrs={'id': 'bar'}, html=html) + + def test_class_attrs(self): + """ + The <ul> in the multiple_input.html widget template include the class + attribute. + """ + html = """ + <ul class="bar"> + <li><label><input checked type="radio" class="bar" value="J" name="beatle" /> John</label></li> + <li><label><input type="radio" class="bar" value="P" name="beatle" /> Paul</label></li> + <li><label><input type="radio" class="bar" value="G" name="beatle" /> George</label></li> + <li><label><input type="radio" class="bar" value="R" name="beatle" /> Ringo</label></li> + </ul> + """ + self.check_html(self.widget(choices=self.beatles), 'beatle', 'J', attrs={'class': 'bar'}, html=html) |
