summaryrefslogtreecommitdiff
path: root/todolists
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2014-11-08 19:15:35 -0600
committerDan McGee <dan@archlinux.org>2014-11-08 19:15:38 -0600
commit327bd4cfc599dbeddd501afd5221a1d2ff7eee08 (patch)
tree8b0266a85c78c5d50e220f45eedae4e642b8d13b /todolists
parent88a457f1c8ae057278f1a7cadb6c163183484019 (diff)
Paginate the todolist listing page
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'todolists')
-rw-r--r--todolists/urls.py6
-rw-r--r--todolists/views.py13
2 files changed, 11 insertions, 8 deletions
diff --git a/todolists/urls.py b/todolists/urls.py
index 6617d7dd..ed065f50 100644
--- a/todolists/urls.py
+++ b/todolists/urls.py
@@ -1,11 +1,11 @@
from django.conf.urls import patterns
from django.contrib.auth.decorators import permission_required
-from .views import (view_redirect, view, todolist_list, add, edit, flag,
- list_pkgbases, DeleteTodolist)
+from .views import (view_redirect, view, add, edit, flag,
+ list_pkgbases, DeleteTodolist, TodolistListView)
urlpatterns = patterns('',
- (r'^$', todolist_list),
+ (r'^$', TodolistListView.as_view(), {}, 'todolist-list'),
# old todolists URLs, permanent redirect view so we don't break all links
(r'^(?P<old_id>\d+)/$', view_redirect),
diff --git a/todolists/views.py b/todolists/views.py
index c37c13f5..c781a562 100644
--- a/todolists/views.py
+++ b/todolists/views.py
@@ -7,7 +7,7 @@ from django.shortcuts import (get_list_or_404, get_object_or_404,
redirect, render)
from django.db import transaction
from django.views.decorators.cache import never_cache
-from django.views.generic import DeleteView
+from django.views.generic import DeleteView, ListView
from django.template import Context, loader
from django.utils.timezone import now
@@ -91,10 +91,13 @@ def list_pkgbases(request, slug, svn_root):
return HttpResponse('\n'.join(pkgbases), content_type='text/plain')
-def todolist_list(request):
- incomplete_only = request.user.is_anonymous()
- lists = get_annotated_todolists(incomplete_only)
- return render(request, 'todolists/list.html', {'lists': lists})
+class TodolistListView(ListView):
+ context_object_name = "lists"
+ template_name = "todolists/list.html"
+ paginate_by = 50
+
+ def get_queryset(self):
+ return get_annotated_todolists()
@never_cache