From 93869a745d634de9c464a4c01f06557c32a0ad6f Mon Sep 17 00:00:00 2001 From: Frederic Date: Sun, 8 Sep 2013 15:07:39 +0200 Subject: [PATCH] pagination for transaction_list --- cash/templates/cash/transaction_list.html | 11 +++++++++-- cash/urls.py | 6 ++++-- cash/views.py | 15 ++++++++++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/cash/templates/cash/transaction_list.html b/cash/templates/cash/transaction_list.html index b0c1b8d..4c93d8e 100644 --- a/cash/templates/cash/transaction_list.html +++ b/cash/templates/cash/transaction_list.html @@ -8,9 +8,9 @@ {% if transaction_list %} {% if detailed %} -weniger Details +weniger Details {% else %} -mehr Details +mehr Details {% endif %}
@@ -27,6 +27,13 @@ {% endfor %} + + + {% else %} Es wurden noch keine Transaktionen durchgeführt. {% endif %} diff --git a/cash/urls.py b/cash/urls.py index c287acd..279ac9b 100644 --- a/cash/urls.py +++ b/cash/urls.py @@ -6,9 +6,11 @@ urlpatterns = patterns('', url(r'^product/(?P\d+)/$', views.ProductView.as_view(), name='product'), - url(r'transactions/$', views.transactions, name='transactions'), + url(r'transactions/$', views.transactions, {'detailed': False, 'page':1}, name='transactions'), - url(r'transactions/detailed/$', views.transactions, {'detailed': True}, + url(r'transactions/(?P\d+)/$', views.transactions, {'detailed': False}, name='transactions'), + + url(r'transactions/(?P\d+)/detailed/$', views.transactions, {'detailed': True}, name='transactions_detailed'), url(r'products/((?P\d+)/)?$', views.products, name='products'), diff --git a/cash/views.py b/cash/views.py index 98e5e2a..ab2debf 100644 --- a/cash/views.py +++ b/cash/views.py @@ -3,6 +3,7 @@ from django import forms from django.shortcuts import render_to_response, get_object_or_404 from django.contrib.auth.decorators import login_required from django.template import RequestContext +from django.core import paginator from cash.models import * @login_required @@ -15,10 +16,18 @@ class ProductView(generic.DetailView): @login_required -def transactions(request, detailed=False): +def transactions(request, detailed, page): a = request.user.account - transaction_list = Transaction.objects.filter(account=a).order_by( - '-timestamp') + transactions = Transaction.objects.filter(account=a).order_by('-timestamp') + + if page is None: + page = 1 + + pagi = paginator.Paginator(transactions, 10) + try: + transaction_list = pagi.page(page) + except paginator.EmptyPage: + transaction_list = paginator.page(paginator.num_pages) context = RequestContext(request, { 'transaction_list': transaction_list, 'detailed': detailed })