From 65883876af75ca23f91e03455f494ebf16a31773 Mon Sep 17 00:00:00 2001 From: Tom Talbot Date: Tue, 22 Jul 2014 16:30:10 +0100 Subject: [PATCH] Add pagination to usage pages --- .../templates/wagtaildocs/documents/usage.html | 15 ++++++++++++++- wagtail/wagtaildocs/views/documents.py | 12 ++++++++++++ .../templates/wagtailimages/images/usage.html | 15 ++++++++++++++- wagtail/wagtailimages/views/images.py | 12 ++++++++++++ .../templates/wagtailsnippets/snippets/usage.html | 15 ++++++++++++++- wagtail/wagtailsnippets/views/snippets.py | 13 +++++++++++++ 6 files changed, 79 insertions(+), 3 deletions(-) diff --git a/wagtail/wagtaildocs/templates/wagtaildocs/documents/usage.html b/wagtail/wagtaildocs/templates/wagtaildocs/documents/usage.html index b86571760..11c5738f5 100644 --- a/wagtail/wagtaildocs/templates/wagtaildocs/documents/usage.html +++ b/wagtail/wagtaildocs/templates/wagtaildocs/documents/usage.html @@ -21,7 +21,7 @@ - {% for page in document.used_by %} + {% for page in used_by %}

{{ page.title }}

@@ -47,4 +47,17 @@ + {% endblock %} diff --git a/wagtail/wagtaildocs/views/documents.py b/wagtail/wagtaildocs/views/documents.py index cf816e7fd..03e968edf 100644 --- a/wagtail/wagtaildocs/views/documents.py +++ b/wagtail/wagtaildocs/views/documents.py @@ -146,6 +146,18 @@ def delete(request, document_id): def usage(request, document_id): doc = get_object_or_404(Document, id=document_id) + # Pagination + p = request.GET.get('p', 1) + paginator = Paginator(doc.used_by, 20) + + try: + used_by = paginator.page(p) + except PageNotAnInteger: + used_by = paginator.page(1) + except EmptyPage: + used_by = paginator.page(paginator.num_pages) + return render(request, "wagtaildocs/documents/usage.html", { 'document': doc, + 'used_by': used_by }) diff --git a/wagtail/wagtailimages/templates/wagtailimages/images/usage.html b/wagtail/wagtailimages/templates/wagtailimages/images/usage.html index 5f1c268fd..11c5738f5 100644 --- a/wagtail/wagtailimages/templates/wagtailimages/images/usage.html +++ b/wagtail/wagtailimages/templates/wagtailimages/images/usage.html @@ -21,7 +21,7 @@ - {% for page in image.used_by %} + {% for page in used_by %}

{{ page.title }}

@@ -47,4 +47,17 @@ + {% endblock %} diff --git a/wagtail/wagtailimages/views/images.py b/wagtail/wagtailimages/views/images.py index 0f4a07976..ab51ea8b2 100644 --- a/wagtail/wagtailimages/views/images.py +++ b/wagtail/wagtailimages/views/images.py @@ -146,6 +146,18 @@ def add(request): def usage(request, image_id): image = get_object_or_404(get_image_model(), id=image_id) + # Pagination + p = request.GET.get('p', 1) + paginator = Paginator(image.used_by, 20) + + try: + used_by = paginator.page(p) + except PageNotAnInteger: + used_by = paginator.page(1) + except EmptyPage: + used_by = paginator.page(paginator.num_pages) + return render(request, "wagtailimages/images/usage.html", { 'image': image, + 'used_by': used_by }) diff --git a/wagtail/wagtailsnippets/templates/wagtailsnippets/snippets/usage.html b/wagtail/wagtailsnippets/templates/wagtailsnippets/snippets/usage.html index bf1fc5eed..4d2ea6b8b 100644 --- a/wagtail/wagtailsnippets/templates/wagtailsnippets/snippets/usage.html +++ b/wagtail/wagtailsnippets/templates/wagtailsnippets/snippets/usage.html @@ -21,7 +21,7 @@ - {% for page in instance.used_by %} + {% for page in used_by %}

{{ page.title }}

@@ -47,5 +47,18 @@ + {% endblock %} diff --git a/wagtail/wagtailsnippets/views/snippets.py b/wagtail/wagtailsnippets/views/snippets.py index 70a7193af..9ab34a432 100644 --- a/wagtail/wagtailsnippets/views/snippets.py +++ b/wagtail/wagtailsnippets/views/snippets.py @@ -8,6 +8,7 @@ from django.contrib.auth.decorators import permission_required from django.core.exceptions import PermissionDenied from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from wagtail.wagtailadmin.edit_handlers import ObjectList, extract_panel_definitions_from_model_class @@ -222,6 +223,18 @@ def usage(request, content_type_app_name, content_type_model_name, id): model = content_type.model_class() instance = get_object_or_404(model, id=id) + # Pagination + p = request.GET.get('p', 1) + paginator = Paginator(instance.used_by(), 20) + + try: + used_by = paginator.page(p) + except PageNotAnInteger: + used_by = paginator.page(1) + except EmptyPage: + used_by = paginator.page(paginator.num_pages) + return render(request, "wagtailsnippets/snippets/usage.html", { 'instance': instance, + 'used_by': used_by })