|
5 | 5 | from django.conf import settings |
6 | 6 | from django.contrib import admin |
7 | 7 | from django.contrib.admin import helpers |
8 | | -from django.contrib.admin.util import (display_for_field, label_for_field, |
9 | | - lookup_field, NestedObjects) |
| 8 | +from django.contrib.admin.util import (display_for_field, flatten_fieldsets, |
| 9 | + label_for_field, lookup_field, NestedObjects) |
10 | 10 | from django.contrib.admin.views.main import EMPTY_CHANGELIST_VALUE |
11 | 11 | from django.contrib.sites.models import Site |
12 | 12 | from django.db import models, DEFAULT_DB_ALIAS |
@@ -300,3 +300,21 @@ class MyForm(forms.Form): |
300 | 300 | '<label for="id_text" class="required inline">&text:</label>') |
301 | 301 | self.assertEqual(helpers.AdminField(form, 'cb', is_first=False).label_tag(), |
302 | 302 | '<label for="id_cb" class="vCheckboxLabel required inline">&cb</label>') |
| 303 | + |
| 304 | + def test_flatten_fieldsets(self): |
| 305 | + """ |
| 306 | + Regression test for #18051 |
| 307 | + """ |
| 308 | + fieldsets = ( |
| 309 | + (None, { |
| 310 | + 'fields': ('url', 'title', ('content', 'sites')) |
| 311 | + }), |
| 312 | + ) |
| 313 | + self.assertEqual(flatten_fieldsets(fieldsets), ['url', 'title', 'content', 'sites']) |
| 314 | + |
| 315 | + fieldsets = ( |
| 316 | + (None, { |
| 317 | + 'fields': ['url', 'title', ['content', 'sites']) |
| 318 | + }), |
| 319 | + ) |
| 320 | + self.assertEqual(flatten_fieldsets(fieldsets), ['url', 'title', 'content', 'sites']) |
0 commit comments