Added pagination to the nomcom pending-feedback page, to reduce load time.

- Legacy-Id: 15534
This commit is contained in:
Henrik Levkowetz 2018-10-08 11:51:21 +00:00
parent 8a5e302745
commit b984422471
2 changed files with 34 additions and 4 deletions

View file

@ -6,6 +6,7 @@ from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import AnonymousUser
from django.contrib import messages
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.urls import reverse
from django.http import Http404, HttpResponseRedirect, HttpResponseForbidden
from django.shortcuts import render, get_object_or_404, redirect
@ -789,9 +790,15 @@ def view_feedback_pending(request, year):
FeedbackFormSet = modelformset_factory(Feedback,
form=PendingFeedbackForm,
extra=0)
feedbacks = Feedback.objects.filter(type__isnull=True, nomcom=nomcom)
feedback_list = Feedback.objects.filter(type__isnull=True, nomcom=nomcom).order_by('-time')
paginator = Paginator(feedback_list, 20)
page_num = request.GET.get('page')
try:
feedback_page = paginator.page(page_num)
except PageNotAnInteger:
feedback_page = paginator.page(1)
except EmptyPage:
feedback_page = paginator.page(paginator.num_pages)
extra_step = False
if request.method == 'POST' and request.POST.get('end'):
extra_ids = request.POST.get('extra_ids', None)
@ -853,7 +860,7 @@ def view_feedback_pending(request, year):
messages.success(request, 'Feedback saved')
return redirect('ietf.nomcom.views.view_feedback_pending', year=year)
else:
formset = FeedbackFormSet(queryset=feedbacks)
formset = FeedbackFormSet(queryset=feedback_page.object_list)
for form in formset.forms:
form.set_nomcom(nomcom, request.user)
type_dict = OrderedDict()
@ -875,6 +882,7 @@ def view_feedback_pending(request, year):
'types': FeedbackTypeName.objects.all().order_by('pk'),
'nomcom': nomcom,
'is_chair_task' : True,
'page': feedback_page,
})

View file

@ -150,12 +150,34 @@
</tbody>
</table>
<div class="pagination text-center col-md-12 col-sm-12">
<span class="step-links">
{% if page.has_previous %}
<a href="?page={{ page.previous_page_number }}">&lt;&nbsp;</a>
{% else %}
|&nbsp;
{% endif %}
<span class="current">
Page {{ page.number }} of {{ page.paginator.num_pages }}
</span>
{% if page.has_next %}
<a href="?page={{ page.next_page_number }}">&nbsp;&gt;</a>
{% else %}
&nbsp;|
{% endif %}
</span>
</div>
{% buttons %}
<input class="btn btn-primary" type="submit" value="Classify">
{% endbuttons %}
{% endif %}
</form>
{% else %}
<p>There is no pending feedback.</p>
{% endif %}