Paginate the todolist listing page

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2014-11-08 19:15:35 -06:00
parent 88a457f1c8
commit 327bd4cfc5
4 changed files with 28 additions and 9 deletions

View File

@ -655,6 +655,17 @@ div.news-article .article-info {
width: 75%;
}
/* todolists: list */
.todolist-nav {
float: right;
margin-top: -2.2em;
}
.todolist-nav .prev,
.todolist-nav .next {
margin: 0 1em;
}
/* donate: donor list */
#donor-list ul {
width: 100%;

View File

@ -16,7 +16,10 @@ <h2>Package Todo Lists</h2>
<p>Todo lists are used by the developers when a rebuild of a set of
packages is needed. This is common when a library has a version bump,
during a toolchain rebuild, or a general cleanup of packages in the
repositories. The progress can be tracked here.</p>
repositories. The progress can be tracked here, and completed todo lists
can be browsed as well.</p>
{% include "todolists/paginator.html" %}
<table id="dev-todo-lists" class="results todo-table">
<thead>
@ -46,6 +49,8 @@ <h2>Package Todo Lists</h2>
{% endfor %}
</tbody>
</table>
{% include "todolists/paginator.html" %}
</div>
{% endblock %}

View File

@ -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),

View File

@ -7,7 +7,7 @@
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