Browse Source

Merge pull request #1190 from rafalp/fix-admincp-session_filters_empty

Fix admin filters session store corruption
Rafał Pitoń 6 years ago
parent
commit
b4591e97ce

+ 10 - 0
misago/admin/tests/test_generic_admin_list_view.py

@@ -37,3 +37,13 @@ def test_unicode_is_preserved_in_redirect_querystring(admin_client):
 def test_view_is_not_redirecting_if_flag_is_set_in_querystring(admin_client):
 def test_view_is_not_redirecting_if_flag_is_set_in_querystring(admin_client):
     response = admin_client.get("%s?redirected=1" % list_link)
     response = admin_client.get("%s?redirected=1" % list_link)
     assert response.status_code == 200
     assert response.status_code == 200
+
+
+def test_restoring_filters_from_session_handles_filters_entry_being_none(admin_client):
+    """Regression test for https://github.com/rafalp/Misago/pull/1177"""
+    response = admin_client.get("%s?set_filters=1&rank=1" % list_link)
+    assert response.status_code == 302
+    response = admin_client.get("%s?set_filters=0" % list_link)
+    assert response.status_code == 302
+    response = admin_client.get("%s?redirected=1" % list_link)
+    assert response.status_code == 200

+ 1 - 0
misago/admin/views/generic/list.py

@@ -215,6 +215,7 @@ class ListView(AdminView):
         for method in ("GET", "session"):
         for method in ("GET", "session"):
             if methods.get(method):
             if methods.get(method):
                 return methods.get(method)
                 return methods.get(method)
+        return {}
 
 
     def apply_filtering_on_context(self, context, active_filters, search_form):
     def apply_filtering_on_context(self, context, active_filters, search_form):
         context["active_filters"] = active_filters
         context["active_filters"] = active_filters