Skip to content

Commit 93a290f

Browse files
committed
Added use_fieldset to the ClearableFileInput widget.
1 parent 4a03ac9 commit 93a290f

File tree

5 files changed

+22
-10
lines changed

5 files changed

+22
-10
lines changed

django/contrib/admin/static/admin/css/forms.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ label {
4242
font-size: 0.8125rem;
4343
}
4444

45+
.required legend, legend.required,
4546
.required label, label.required {
4647
font-weight: bold;
4748
}

django/forms/widgets.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,7 @@ class ClearableFileInput(FileInput):
530530
input_text = _("Change")
531531
template_name = "django/forms/widgets/clearable_file_input.html"
532532
checked = False
533+
use_fieldset = True
533534

534535
def clear_checkbox_name(self, name):
535536
"""

tests/admin_views/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,7 @@ class Course(models.Model):
636636
]
637637

638638
title = models.CharField(max_length=100)
639+
materials = models.FileField(upload_to="test_upload")
639640
difficulty = models.CharField(
640641
max_length=20, choices=DIFFICULTY_CHOICES, null=True, blank=True
641642
)

tests/admin_views/tests.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
Color,
7171
ComplexSortedPerson,
7272
Country,
73+
Course,
7374
CoverLetter,
7475
CustomArticle,
7576
CyclicOne,
@@ -6914,9 +6915,16 @@ def test_use_fieldset_fields_render(self):
69146915
self.admin_login(
69156916
username="super", password="secret", login_url=reverse("admin:index")
69166917
)
6917-
6918-
expected_legend_tags_text = ["Difficulty:", "Students:", "Start datetime:"]
6919-
url = reverse("admin:admin_views_course_add")
6918+
course = Course.objects.create(
6919+
title="Django Class", materials="django_documents"
6920+
)
6921+
expected_legend_tags_text = [
6922+
"Materials:",
6923+
"Difficulty:",
6924+
"Students:",
6925+
"Start datetime:",
6926+
]
6927+
url = reverse("admin:admin_views_course_change", args=(course.pk,))
69206928
self.selenium.get(self.live_server_url + url)
69216929
fieldsets = self.selenium.find_elements(
69226930
By.CSS_SELECTOR, "fieldset.aligned fieldset"

tests/forms_tests/widget_tests/test_clearablefileinput.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -246,18 +246,19 @@ class TestForm(Form):
246246
)
247247

248248
form = TestForm()
249-
self.assertIs(self.widget.use_fieldset, False)
249+
self.assertIs(self.widget.use_fieldset, True)
250250
self.assertHTMLEqual(
251-
'<div><label for="id_field">Field:</label>'
252-
'<input id="id_field" name="field" type="file" required></div>'
253-
'<div><label for="id_with_file">With file:</label>Currently: '
251+
'<div><fieldset><legend for="id_field">Field:</legend>'
252+
'<input id="id_field" name="field" type="file" required></fieldset></div>'
253+
'<div><fieldset><legend for="id_with_file">With file:</legend>Currently: '
254254
'<a href="something">something</a><br>Change:<input type="file" '
255-
'name="with_file" id="id_with_file"></div>'
256-
'<div><label for="id_clearable_file">Clearable file:</label>'
255+
'name="with_file" id="id_with_file"></fieldset></div>'
256+
'<div><fieldset><legend for="id_clearable_file">Clearable file:</legend>'
257257
'Currently: <a href="something">something</a><input '
258258
'type="checkbox" name="clearable_file-clear" id="clearable_file-clear_id">'
259259
'<label for="clearable_file-clear_id">Clear</label><br>Change:'
260-
'<input type="file" name="clearable_file" id="id_clearable_file"></div>',
260+
'<input type="file" name="clearable_file" id="id_clearable_file">'
261+
"</fieldset></div>",
261262
form.render(),
262263
)
263264

0 commit comments

Comments
 (0)