summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorsarahboyce <sarahvboyce95@gmail.com>2023-02-16 13:23:24 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-03-03 20:24:57 +0100
commit868e2fcddae6720d5713924a785339d1665f1bb9 (patch)
treed775977fdf2d5da5792f7e17743d7db1d2bc260e /tests/admin_views
parent50ca4defcb2e5d1c987ed006562f7a812179b3df (diff)
downloaddjango-868e2fcddae6720d5713924a785339d1665f1bb9.tar.gz
Fixed #32539 -- Added toggleable facet filters to ModelAdmin.
Thanks Carlton Gibson, Simon Willison, David Smith, and Mariusz Felisiak for reviews.
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/admin.py2
-rw-r--r--tests/admin_views/tests.py41
2 files changed, 43 insertions, 0 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index 9241034ffb..aa8b183f14 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -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):
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 727362beaf..30207ee4b0 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -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)