diff options
| author | Bakdolot <genry03gh@gmail.com> | 2023-02-08 00:03:24 +0600 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-02-08 10:21:40 +0100 |
| commit | 1f193f7f56d0f83c188dca8b03266fbaa339d0f5 (patch) | |
| tree | 0443d6afe79813f625cd11679ef171c931ffe691 | |
| parent | b17fad46fb84af30a3bd40d7ff4272b9f135c2b0 (diff) | |
[4.2.x] Fixed #34315 -- Preserved admin changelist filters on "Close" button.
Backport of 325c44ac6c070465ef2b3b7b8ed06cbcb88a3f10 from main
| -rw-r--r-- | django/contrib/admin/templates/admin/submit_line.html | 5 | ||||
| -rw-r--r-- | tests/admin_views/tests.py | 15 |
2 files changed, 19 insertions, 1 deletions
diff --git a/django/contrib/admin/templates/admin/submit_line.html b/django/contrib/admin/templates/admin/submit_line.html index a1082ed196..b2b2054966 100644 --- a/django/contrib/admin/templates/admin/submit_line.html +++ b/django/contrib/admin/templates/admin/submit_line.html @@ -5,7 +5,10 @@ {% if show_save_as_new %}<input type="submit" value="{% translate 'Save as new' %}" name="_saveasnew">{% endif %} {% if show_save_and_add_another %}<input type="submit" value="{% translate 'Save and add another' %}" name="_addanother">{% endif %} {% if show_save_and_continue %}<input type="submit" value="{% if can_change %}{% translate 'Save and continue editing' %}{% else %}{% translate 'Save and view' %}{% endif %}" name="_continue">{% endif %} -{% if show_close %}<a href="{% url opts|admin_urlname:'changelist' %}" class="closelink">{% translate 'Close' %}</a>{% endif %} +{% if show_close %} + {% url opts|admin_urlname:'changelist' as changelist_url %} + <a href="{% add_preserved_filters changelist_url %}" class="closelink">{% translate 'Close' %}</a> +{% endif %} {% if show_delete_link and original %} {% url opts|admin_urlname:'delete' original.pk|admin_urlquote as delete_url %} <a href="{% add_preserved_filters delete_url %}" class="deletelink">{% translate "Delete" %}</a> diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index 752b46b757..548444390f 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -7949,6 +7949,21 @@ class AdminKeepChangeListFiltersTests(TestCase): self.assertRedirects(response, self.get_add_url()) post_data.pop("_addanother") + def test_change_view_close_link(self): + viewuser = User.objects.create_user( + username="view", password="secret", is_staff=True + ) + viewuser.user_permissions.add( + get_perm(User, get_permission_codename("view", User._meta)) + ) + self.client.force_login(viewuser) + response = self.client.get(self.get_change_url()) + close_link = re.search( + '<a href="(.*?)" class="closelink">Close</a>', response.content.decode() + ) + close_link = close_link[1].replace("&", "&") + self.assertURLEqual(close_link, self.get_changelist_url()) + def test_change_view_without_preserved_filters(self): response = self.client.get(self.get_change_url(add_preserved_filters=False)) # The action attribute is omitted. |
