# HG changeset patch # User Brian Neal # Date 1410395935 18000 # Node ID 74e84f5fc948001006e8167334a3e52a30a8953e # Parent 97f8fab9b1a312cc3c2a878b976c4a84e2d80604 For issue #72, paginate calendar events. diff -r 97f8fab9b1a3 -r 74e84f5fc948 gcalendar/views.py --- a/gcalendar/views.py Wed Sep 10 19:21:59 2014 -0500 +++ b/gcalendar/views.py Wed Sep 10 19:38:55 2014 -0500 @@ -4,6 +4,7 @@ from django.contrib.auth.decorators import login_required from django.core.urlresolvers import reverse +from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from django.http import HttpResponse from django.http import HttpResponseBadRequest from django.http import HttpResponseForbidden @@ -59,9 +60,19 @@ @login_required def edit_events(request): - events = Event.objects.filter(user=request.user, status=Event.ON_CAL).order_by('start_date') + events = Event.objects.filter(user=request.user, status=Event.ON_CAL).\ + order_by('-start_date') + paginator = Paginator(events, 25) + num = request.GET.get('page') + try: + page = paginator.page(num) + except PageNotAnInteger: + page = paginator.page(1) + except EmptyPage: + page = paginator.page(paginator.num_pages) + return render_to_response('gcalendar/edit.html', { - 'events': events, + 'page': page, }, context_instance = RequestContext(request)) diff -r 97f8fab9b1a3 -r 74e84f5fc948 sg101/templates/gcalendar/edit.html --- a/sg101/templates/gcalendar/edit.html Wed Sep 10 19:21:59 2014 -0500 +++ b/sg101/templates/gcalendar/edit.html Wed Sep 10 19:38:55 2014 -0500 @@ -6,7 +6,7 @@ {% block content %}

Edit Calendar Events

-{% if events %} +{% if page.object_list %}

You have the following events on our calendar. Click on the event title to edit it, or click the Cross to delete it. Your changes will be submitted to the site staff for approval, and won't be reflected on the Google @@ -14,13 +14,14 @@ keep our calendar up to date!

+{% include 'core/django_pagination.html' with page_obj=page %} {% else %}

You either have no events on our calendar, or all your events have pending changes that require admin review.