From 392f11c4ce413bda4be861d4592e69fbfe4ab286 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Mon, 22 Jan 2018 19:51:15 +0100 Subject: [PATCH] Include pagination in manage report metadata --- .../journals/manage_report_metadata.html | 22 +++++++++++++++++++ journals/views.py | 11 ++++++++++ 2 files changed, 33 insertions(+) diff --git a/journals/templates/journals/manage_report_metadata.html b/journals/templates/journals/manage_report_metadata.html index d9f6990b6..ecfbf7e64 100644 --- a/journals/templates/journals/manage_report_metadata.html +++ b/journals/templates/journals/manage_report_metadata.html @@ -93,4 +93,26 @@ event: "focusin" </tbody> </table> +{% if is_paginated %} +<div class="col-12"> + {% include 'partials/pagination.html' with page_obj=page_obj %} +</div> +{% endif %} + +<div class="pagination"> + <span class="step-links"> + {% if reports.has_previous %} + <a href="?page={{ reports.previous_page_number }}">previous</a> + {% endif %} + + <span class="current"> + Page {{ reports.number }} of {{ reports.paginator.num_pages }}. + </span> + + {% if reports.has_next %} + <a href="?page={{ reports.next_page_number }}">next</a> + {% endif %} + </span> +</div> + {% endblock content %} diff --git a/journals/views.py b/journals/views.py index a7b7d052e..4fcf2d13f 100644 --- a/journals/views.py +++ b/journals/views.py @@ -9,6 +9,7 @@ import xml.etree.ElementTree as ET from django.contrib.auth.decorators import login_required from django.contrib.contenttypes.models import ContentType +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.urlresolvers import reverse from django.conf import settings from django.contrib import messages @@ -1030,6 +1031,16 @@ def manage_report_metadata(request): the metadata of Reports. """ reports = Report.objects.all() + paginator = Paginator(reports, 25) + + page = request.GET.get('page') + try: + reports = paginator.page(page) + except PageNotAnInteger: + reports = paginator.page(1) + except EmptyPage: + reports = paginator.page(paginator.num_pages) + context = { 'reports': reports, } -- GitLab