Update pagination behaviour on images index to match Django standard

pull/10533/head
Matt Westcott 2023-06-09 21:27:59 +01:00
rodzic 62139a92b0
commit 0e73399dd2
2 zmienionych plików z 12 dodań i 7 usunięć

Wyświetl plik

@ -77,10 +77,12 @@ class TestImageIndexView(WagtailTestUtils, TestCase):
self.assertContains(response, "a cute puppy")
def test_pagination(self):
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"p": page})
self.assertEqual(response.status_code, 200)
# 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)
def test_per_page(self):
response = self.get({"entries_per_page": 60})

Wyświetl plik

@ -2,8 +2,8 @@ import os
from django.conf import settings
from django.core.exceptions import PermissionDenied
from django.core.paginator import Paginator
from django.http import HttpResponse, JsonResponse
from django.core.paginator import InvalidPage, Paginator
from django.http import Http404, HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404, redirect
from django.template.response import TemplateResponse
from django.urls import reverse
@ -121,7 +121,10 @@ class BaseListingView(TemplateView):
entries_per_page = self.get_num_entries_per_page()
paginator = Paginator(images, per_page=entries_per_page)
images = paginator.get_page(self.request.GET.get("p"))
try:
images = paginator.page(self.request.GET.get("p", 1))
except InvalidPage:
raise Http404
next_url = reverse("wagtailimages:index")
request_query_string = self.request.META.get("QUERY_STRING")