diff options
| author | Marijke Luttekes <mail@marijkeluttekes.dev> | 2024-05-21 22:09:26 -0300 |
|---|---|---|
| committer | nessita <124304+nessita@users.noreply.github.com> | 2024-05-22 00:13:55 -0300 |
| commit | 01ed59f753139afb514170ee7f7384c155ecbc2d (patch) | |
| tree | 4b2a50dfa6abc08d1eb0f439f8078e7c1df1b8d0 /tests/admin_inlines/admin.py | |
| parent | 9c5fe93349bd4339c41d057b87046e5d28be6f77 (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.py | 54 |
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) |
