Add pagination to form submissions view

This commit is contained in:
Serafeim Papastefanos 2014-03-22 18:32:28 +02:00
parent 2a4c371f51
commit 016511eb85
2 changed files with 14 additions and 3 deletions

View file

@ -18,6 +18,8 @@
<div class="nice-padding">
{% if submissions %}
{% include "wagtailforms/list.html" %}
{% url "wagtailforms_list_submissions" form_page.content_type.app_label form_page.content_type.model form_page.id as linkurl %}
{% include "wagtailadmin/shared/pagination_nav.html" with items=submissions is_searching=False %}
{% else %}
<p class="no-results-message">{% blocktrans with title=form_page.title %}No submissions of the '{{ title }}' form.{% endblocktrans %}</p>
{% endif %}

View file

@ -1,14 +1,12 @@
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.http import Http404
from django.shortcuts import get_object_or_404, render, redirect
from django.utils.encoding import force_text
from django.utils.text import capfirst
from django.contrib.contenttypes.models import ContentType
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
from django.core.exceptions import PermissionDenied
from django.utils.translation import ugettext as _
from wagtail.wagtailadmin.edit_handlers import ObjectList, extract_panel_definitions_from_model_class
from wagtail.wagtailcore.models import Page
from wagtail.wagtailforms.models import FormSubmission, get_form_types
@ -44,6 +42,17 @@ def list_submissions(request, app_label, model, id):
form_page = get_object_or_404(model, id=id)
submissions = FormSubmission.objects.filter(form_page=form_page)
p = request.GET.get('p', 1)
paginator = Paginator(submissions, 20)
try:
submissions = paginator.page(p)
except PageNotAnInteger:
submissions = paginator.page(1)
except EmptyPage:
submissions = paginator.page(paginator.num_pages)
return render(request, 'wagtailforms/form_index.html', {
'form_page': form_page,