summaryrefslogtreecommitdiff
path: root/tests/admin_inlines/admin.py
diff options
context:
space:
mode:
authorMarijke Luttekes <mail@marijkeluttekes.dev>2024-05-21 22:09:26 -0300
committernessita <124304+nessita@users.noreply.github.com>2024-05-22 00:13:55 -0300
commit01ed59f753139afb514170ee7f7384c155ecbc2d (patch)
tree4b2a50dfa6abc08d1eb0f439f8078e7c1df1b8d0 /tests/admin_inlines/admin.py
parent9c5fe93349bd4339c41d057b87046e5d28be6f77 (diff)
Refs #35189 -- Improved admin fieldset's accessibility by setting aria-labelledby.
Before this change, HTML <fieldset> elements in the admin site did not have an associated label to describe them. This commit defines a unique HTML id for the heading labeling a fieldset, and sets its aria-labelledby property to link the heading with the fieldset.
Diffstat (limited to 'tests/admin_inlines/admin.py')
-rw-r--r--tests/admin_inlines/admin.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/admin_inlines/admin.py b/tests/admin_inlines/admin.py
index 0ec56d71b3..3cdaee22df 100644
--- a/tests/admin_inlines/admin.py
+++ b/tests/admin_inlines/admin.py
@@ -40,6 +40,8 @@ from .models import (
OutfitItem,
ParentModelWithCustomPk,
Person,
+ Photo,
+ Photographer,
Poll,
Profile,
ProfileCollection,
@@ -98,6 +100,57 @@ class AuthorAdmin(admin.ModelAdmin):
]
+class PhotoInlineMixin:
+ model = Photo
+ extra = 2
+ fieldsets = [
+ (None, {"fields": ["image", "title"]}),
+ (
+ "Details",
+ {"fields": ["description", "creation_date"], "classes": ["collapse"]},
+ ),
+ (
+ "Details", # Fieldset name intentionally duplicated
+ {"fields": ["update_date", "updated_by"]},
+ ),
+ ]
+
+
+class PhotoTabularInline(PhotoInlineMixin, admin.TabularInline):
+ pass
+
+
+class PhotoStackedExtra2Inline(PhotoInlineMixin, admin.StackedInline):
+ pass
+
+
+class PhotoStackedExtra3Inline(PhotoInlineMixin, admin.StackedInline):
+ extra = 3
+
+
+class PhotoStackedCollapsibleInline(PhotoInlineMixin, admin.StackedInline):
+ fieldsets = []
+ classes = ["collapse"]
+
+
+class PhotographerAdmin(admin.ModelAdmin):
+ fieldsets = [
+ (None, {"fields": ["firstname", "fullname"]}),
+ ("Advanced options", {"fields": ["nationality", "residency"]}),
+ (
+ "Advanced options", # Fieldset name intentionally duplicated
+ {"fields": ["siblings", "children"], "classes": ["collapse"]},
+ ),
+ ]
+ inlines = [
+ PhotoTabularInline,
+ PhotoTabularInline,
+ PhotoStackedExtra2Inline,
+ PhotoStackedExtra3Inline,
+ PhotoStackedCollapsibleInline,
+ ]
+
+
class InnerInline(admin.StackedInline):
model = Inner
can_delete = False
@@ -454,6 +507,7 @@ site.register(Teacher, TeacherAdmin)
site.register(Chapter, inlines=[FootNoteNonEditableInlineCustomForm])
site.register(OutfitItem, inlines=[WeaknessInlineCustomForm])
site.register(Person, inlines=[AuthorTabularInline, FashonistaStackedInline])
+site.register(Photographer, PhotographerAdmin)
site.register(Course, ClassAdminStackedHorizontal)
site.register(CourseProxy, ClassAdminStackedVertical)
site.register(CourseProxy1, ClassAdminTabularVertical)