Revert 8e106f4 and move paginate_queryset() to BaseListingView.

pull/12017/head
Matthias Brück 2024-06-26 13:24:15 +10:00 zatwierdzone przez Sage Abdullah
rodzic 0e60590676
commit 74df95d049
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: EB1A33CC51CC0217
11 zmienionych plików z 136 dodań i 47 usunięć

Wyświetl plik

@ -396,7 +396,11 @@ class TestPageExplorer(WagtailTestUtils, TestCase):
)
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailadmin/pages/index.html")
# Check that we got page one
self.assertEqual(response.context["page_obj"].number, 1)
def test_pagination_out_of_range(self):
self.make_pages()
@ -406,7 +410,14 @@ class TestPageExplorer(WagtailTestUtils, TestCase):
)
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailadmin/pages/index.html")
# Check that we got the last page
self.assertEqual(
response.context["page_obj"].number,
response.context["paginator"].num_pages,
)
def test_no_pagination_with_custom_ordering(self):
self.make_pages()

Wyświetl plik

@ -110,13 +110,11 @@ class TestPageSearch(WagtailTestUtils, TransactionTestCase):
self.assertContains(response, f'href="{expected_new_page_copy_url}"')
def test_pagination(self):
# page numbers in range should be accepted
response = self.get({"q": "Hello", "p": 1})
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailadmin/pages/search.html")
# page numbers out of range should return 404
response = self.get({"q": "Hello", "p": 9999})
self.assertEqual(response.status_code, 404)
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"q": "Hello", "p": page})
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailadmin/pages/search.html")
def test_root_can_appear_in_search_results(self):
response = self.get({"q": "root"})

Wyświetl plik

@ -290,7 +290,15 @@ class TestWorkflowsIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase)
self.assertContains(response, url + "?p=3")
response = self.get({"p": 4})
self.assertEqual(response.status_code, 404)
# Check response
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailadmin/workflows/index.html")
# Check that we got the last page
self.assertEqual(
response.context["page_obj"].number,
response.context["paginator"].num_pages,
)
class TestWorkflowPermissions(WagtailTestUtils, TestCase):
@ -1199,7 +1207,15 @@ class TestTaskIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
self.assertContains(response, url + "?p=3")
response = self.get({"p": 4})
self.assertEqual(response.status_code, 404)
# Check response
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailadmin/workflows/task_index.html")
# Check that we got the last page
self.assertEqual(
response.context["page_obj"].number,
response.context["paginator"].num_pages,
)
def test_num_queries(self):
workflows = [Workflow.objects.create(name=f"workflow_{i}") for i in range(7)]

Wyświetl plik

@ -407,6 +407,18 @@ class BaseListingView(WagtailAdminTemplateMixin, BaseListView):
queryset = self.filter_queryset(queryset)
return queryset
def paginate_queryset(self, queryset, page_size):
paginator = self.get_paginator(
queryset,
page_size,
orphans=self.get_paginate_orphans(),
allow_empty_first_page=self.get_allow_empty(),
)
page_number = self.request.GET.get(self.page_kwarg)
page = paginator.get_page(page_number)
return (paginator, page, page.object_list, page.has_other_pages())
def get_table_kwargs(self):
return {
"ordering": self.ordering,

Wyświetl plik

@ -197,7 +197,11 @@ class TestFormsIndex(WagtailTestUtils, TestCase):
response = self.client.get(reverse("wagtailforms:index"), {"p": "Hello world!"})
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailforms/index.html")
# Check that it got page one
self.assertEqual(response.context["page_obj"].number, 1)
def test_forms_index_pagination_out_of_range(self):
# Create some more form pages to make pagination kick in
@ -207,7 +211,13 @@ class TestFormsIndex(WagtailTestUtils, TestCase):
response = self.client.get(reverse("wagtailforms:index"), {"p": 99999})
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailforms/index.html")
# Check that it got the last page
self.assertEqual(
response.context["page_obj"].number, response.context["paginator"].num_pages
)
def test_cannot_see_forms_without_permission(self):
# Login with as a user without permission to see forms
@ -319,7 +329,15 @@ class TestFormsIndexWithLocalisationEnabled(WagtailTestUtils, TestCase):
self.assertEqual(len(response.context["page_obj"].object_list), 3)
response = self.client.get(self.forms_index_url, {"p": 4})
self.assertEqual(response.status_code, 404)
# Check response
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailforms/index.html")
# Check that we got the last page
self.assertEqual(
response.context["page_obj"].number,
response.context["paginator"].num_pages,
)
# now check the French pages.
response = self.client.get(
@ -484,7 +502,11 @@ class TestFormsSubmissionsList(WagtailTestUtils, TestCase):
)
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
# Check that we got page one
self.assertEqual(response.context["page_obj"].number, 1)
def test_list_submissions_pagination_out_of_range(self):
self.make_list_submissions()
@ -495,7 +517,13 @@ class TestFormsSubmissionsList(WagtailTestUtils, TestCase):
)
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
# Check that we got the last page
self.assertEqual(
response.context["page_obj"].number, response.context["paginator"].num_pages
)
def test_list_submissions_default_order(self):
response = self.client.get(
@ -1183,7 +1211,11 @@ class TestCustomFormsSubmissionsList(WagtailTestUtils, TestCase):
)
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
# Check that we got page one
self.assertEqual(response.context["page_obj"].number, 1)
def test_list_submissions_pagination_out_of_range(self):
self.make_list_submissions()
@ -1194,7 +1226,13 @@ class TestCustomFormsSubmissionsList(WagtailTestUtils, TestCase):
)
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailforms/submissions_index.html")
# Check that we got the last page
self.assertEqual(
response.context["page_obj"].number, response.context["paginator"].num_pages
)
class TestDeleteFormSubmission(WagtailTestUtils, TestCase):

Wyświetl plik

@ -652,12 +652,10 @@ class TestRedirectsIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase)
self.assertEqual(response.context["query_string"], "Aaargh")
def test_pagination(self):
# page numbers in range should be accepted
response = self.get({"p": 1})
self.assertEqual(response.status_code, 200)
# page numbers out of range should return 404
response = self.get({"p": 9999})
self.assertEqual(response.status_code, 404)
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"p": page})
self.assertEqual(response.status_code, 200)
def test_default_ordering(self):
for i in range(0, 10):

Wyświetl plik

@ -241,7 +241,11 @@ class TestSearchPromotionsIndexView(WagtailTestUtils, TestCase):
)
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailsearchpromotions/index.html")
# Check that we got page one
self.assertEqual(response.context["page_obj"].number, 1)
def test_pagination_out_of_range(self):
self.make_search_picks()
@ -251,7 +255,14 @@ class TestSearchPromotionsIndexView(WagtailTestUtils, TestCase):
)
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailsearchpromotions/index.html")
# Check that we got the last page
self.assertEqual(
response.context["page_obj"].number,
response.context["paginator"].num_pages,
)
def test_num_queries(self):
url = reverse("wagtailsearchpromotions:index")

Wyświetl plik

@ -71,7 +71,11 @@ class TestDocumentIndexView(WagtailTestUtils, TestCase):
response = self.get({"p": "Hello World!"})
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtaildocs/documents/index.html")
# Check that we got page one
self.assertEqual(response.context["page_obj"].number, 1)
def test_pagination_out_of_range(self):
self.make_docs()
@ -79,7 +83,14 @@ class TestDocumentIndexView(WagtailTestUtils, TestCase):
response = self.get({"p": 99999})
# Check response
self.assertEqual(response.status_code, 404)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtaildocs/documents/index.html")
# Check that we got the last page
self.assertEqual(
response.context["page_obj"].number,
response.context["paginator"].num_pages,
)
def test_ordering(self):
orderings = ["title", "-created_at"]

Wyświetl plik

@ -81,12 +81,10 @@ class TestImageIndexView(WagtailTestUtils, TestCase):
self.assertContains(response, "a cute puppy")
def test_pagination(self):
# page numbers in range should be accepted
response = self.get({"p": 1})
self.assertEqual(response.status_code, 200)
# page numbers out of range should return 404
response = self.get({"p": 9999})
self.assertEqual(response.status_code, 404)
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"p": page})
self.assertEqual(response.status_code, 200)
def test_pagination_preserves_other_params(self):
root_collection = Collection.get_first_root_node()

Wyświetl plik

@ -215,13 +215,11 @@ class TestSnippetListView(WagtailTestUtils, TestCase):
self.assertEqual(response.context["page_obj"][0].text, "advert 10")
def test_simple_pagination(self):
# page numbers in range should be accepted
response = self.get({"p": 1})
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailsnippets/snippets/index.html")
# page numbers out of range should return 404
response = self.get({"p": 9999})
self.assertEqual(response.status_code, 404)
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"p": page})
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailsnippets/snippets/index.html")
def test_displays_add_button(self):
self.assertContains(self.get(), "Add advert")

Wyświetl plik

@ -238,12 +238,10 @@ class TestUserIndexView(AdminTemplateTestUtils, WagtailTestUtils, TestCase):
self.assertIn(self.test_user, results)
def test_pagination(self):
# page numbers in range should be accepted
response = self.get({"p": 1})
self.assertEqual(response.status_code, 200)
# page numbers out of range should return 404
response = self.get({"p": 9999})
self.assertEqual(response.status_code, 404)
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"p": page})
self.assertEqual(response.status_code, 200)
def test_ordering(self):
# checking that only valid ordering used, in case of `IndexView` the valid