mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #32539 -- Added toggleable facet filters to ModelAdmin.
Thanks Carlton Gibson, Simon Willison, David Smith, and Mariusz Felisiak for reviews.
This commit is contained in:
committed by
Mariusz Felisiak
parent
50ca4defcb
commit
868e2fcdda
@@ -679,11 +679,13 @@ class ReadOnlyPizzaAdmin(admin.ModelAdmin):
|
||||
class WorkHourAdmin(admin.ModelAdmin):
|
||||
list_display = ("datum", "employee")
|
||||
list_filter = ("employee",)
|
||||
show_facets = admin.ShowFacets.ALWAYS
|
||||
|
||||
|
||||
class FoodDeliveryAdmin(admin.ModelAdmin):
|
||||
list_display = ("reference", "driver", "restaurant")
|
||||
list_editable = ("driver", "restaurant")
|
||||
show_facets = admin.ShowFacets.NEVER
|
||||
|
||||
|
||||
class CoverLetterAdmin(admin.ModelAdmin):
|
||||
|
||||
@@ -807,6 +807,47 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
|
||||
msg_prefix="Changelist filter not correctly limited by limit_choices_to",
|
||||
)
|
||||
|
||||
def test_change_list_facet_toggle(self):
|
||||
# Toggle is visible when show_facet is the default of
|
||||
# admin.ShowFacets.ALLOW.
|
||||
admin_url = reverse("admin:admin_views_album_changelist")
|
||||
response = self.client.get(admin_url)
|
||||
self.assertContains(
|
||||
response,
|
||||
'<a href="?_facets=True" class="viewlink">Show counts</a>',
|
||||
msg_prefix="Expected facet filter toggle not found in changelist view",
|
||||
)
|
||||
response = self.client.get(f"{admin_url}?_facets=True")
|
||||
self.assertContains(
|
||||
response,
|
||||
'<a href="?" class="hidelink">Hide counts</a>',
|
||||
msg_prefix="Expected facet filter toggle not found in changelist view",
|
||||
)
|
||||
# Toggle is not visible when show_facet is admin.ShowFacets.ALWAYS.
|
||||
response = self.client.get(reverse("admin:admin_views_workhour_changelist"))
|
||||
self.assertNotContains(
|
||||
response,
|
||||
"Show counts",
|
||||
msg_prefix="Expected not to find facet filter toggle in changelist view",
|
||||
)
|
||||
self.assertNotContains(
|
||||
response,
|
||||
"Hide counts",
|
||||
msg_prefix="Expected not to find facet filter toggle in changelist view",
|
||||
)
|
||||
# Toggle is not visible when show_facet is admin.ShowFacets.NEVER.
|
||||
response = self.client.get(reverse("admin:admin_views_fooddelivery_changelist"))
|
||||
self.assertNotContains(
|
||||
response,
|
||||
"Show counts",
|
||||
msg_prefix="Expected not to find facet filter toggle in changelist view",
|
||||
)
|
||||
self.assertNotContains(
|
||||
response,
|
||||
"Hide counts",
|
||||
msg_prefix="Expected not to find facet filter toggle in changelist view",
|
||||
)
|
||||
|
||||
def test_relation_spanning_filters(self):
|
||||
changelist_url = reverse("admin:admin_views_chapterxtra1_changelist")
|
||||
response = self.client.get(changelist_url)
|
||||
|
||||
Reference in New Issue
Block a user