diff options
author | sarahboyce <sarahvboyce95@gmail.com> | 2023-02-16 13:23:24 +0100 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-03-03 20:24:57 +0100 |
commit | 868e2fcddae6720d5713924a785339d1665f1bb9 (patch) | |
tree | d775977fdf2d5da5792f7e17743d7db1d2bc260e /tests/admin_views | |
parent | 50ca4defcb2e5d1c987ed006562f7a812179b3df (diff) | |
download | django-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.py | 2 | ||||
-rw-r--r-- | tests/admin_views/tests.py | 41 |
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) |