kopia lustrzana https://github.com/wagtail/wagtail
Update pagination behaviour on choosers to match Django standard
rodzic
0e73399dd2
commit
2b9ba182c2
|
@ -8,7 +8,7 @@ from django.core.exceptions import (
|
|||
ObjectDoesNotExist,
|
||||
PermissionDenied,
|
||||
)
|
||||
from django.core.paginator import Paginator
|
||||
from django.core.paginator import InvalidPage, Paginator
|
||||
from django.forms.models import modelform_factory
|
||||
from django.http import Http404
|
||||
from django.template.loader import render_to_string
|
||||
|
@ -232,7 +232,10 @@ class BaseChooseView(
|
|||
objects = self.filter_object_list(objects)
|
||||
|
||||
paginator = Paginator(objects, per_page=self.per_page)
|
||||
return paginator.get_page(request.GET.get("p"))
|
||||
try:
|
||||
return paginator.page(request.GET.get("p", 1))
|
||||
except InvalidPage:
|
||||
raise Http404
|
||||
|
||||
def get(self, request):
|
||||
self.filter_form = self.get_filter_form()
|
||||
|
|
|
@ -1617,11 +1617,7 @@ class TestDocumentChooserView(WagtailTestUtils, TestCase):
|
|||
)
|
||||
|
||||
# Check response
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtaildocs/chooser/results.html")
|
||||
|
||||
# Check that we got page one
|
||||
self.assertEqual(response.context["results"].number, 1)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_pagination_out_of_range(self):
|
||||
self.make_docs()
|
||||
|
@ -1631,14 +1627,7 @@ class TestDocumentChooserView(WagtailTestUtils, TestCase):
|
|||
)
|
||||
|
||||
# Check response
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtaildocs/chooser/results.html")
|
||||
|
||||
# Check that we got the last page
|
||||
self.assertEqual(
|
||||
response.context["results"].number,
|
||||
response.context["results"].paginator.num_pages,
|
||||
)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_construct_queryset_hook_browse(self):
|
||||
document = models.Document.objects.create(
|
||||
|
|
|
@ -1590,10 +1590,12 @@ class TestImageChooserView(WagtailTestUtils, TestCase):
|
|||
self.assertEqual(response.context["search_query"], "Hello")
|
||||
|
||||
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_filter_by_tag(self):
|
||||
for i in range(0, 10):
|
||||
|
|
|
@ -4347,14 +4347,13 @@ class TestSnippetChoose(WagtailTestUtils, TestCase):
|
|||
self.assertEqual(response.context["results"][0].text, "advert 1")
|
||||
|
||||
def test_simple_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)
|
||||
self.assertTemplateUsed(
|
||||
response, "wagtailadmin/generic/chooser/chooser.html"
|
||||
)
|
||||
# page numbers in range should be accepted
|
||||
response = self.get({"p": 1})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(response, "wagtailadmin/generic/chooser/chooser.html")
|
||||
# page numbers out of range should return 404
|
||||
response = self.get({"p": 9999})
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_not_searchable(self):
|
||||
# filter_form should not have a search field
|
||||
|
|
Ładowanie…
Reference in New Issue