--- a/src/hdalab/views/editorial.py Fri Sep 05 17:05:48 2014 +0200
+++ b/src/hdalab/views/editorial.py Mon Sep 08 13:03:36 2014 +0200
@@ -10,6 +10,8 @@
from hdabo.views import Folders, AddOrUpdateFolder, DeleteFolder
import logging
+from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
+from django.conf import settings
logger = logging.getLogger(__name__)
@@ -19,7 +21,27 @@
def get_context_data(self, **kwargs):
context = super(ManageRenkans, self).get_context_data(**kwargs)
- context["renkan_list"] = HdalabRenkan.objects.exclude(state=HdalabRenkan.EDITION).select_related("renkan", "renkan__owner").order_by("-renkan__modification_date")
+ sort_param = self.request.GET.get('sort', "date")
+ order_param = self.request.GET.get('order', "desc")
+ sort = {"date":"renkan__modification_date", "title":"renkan__title", "state":"state", "user":"renkan__owner__username"}.get(sort_param)
+ if order_param=="desc":
+ order = "-"
+ opposite = "asc"
+ else:
+ order = ""
+ opposite = "desc"
+
+ rl = HdalabRenkan.objects.exclude(state=HdalabRenkan.EDITION).select_related("renkan", "renkan__owner").order_by(order + sort)
+ p = Paginator(rl, settings.RENKANS_PER_PAGE)
+ page_nb = self.request.GET.get('page')
+ try:
+ page = p.page(page_nb)
+ except PageNotAnInteger:
+ page = p.page(1)
+ except EmptyPage:
+ page = p.page(p.num_pages)
+
+ context.update({"page": page, "sort_param":sort_param, "order_param":order_param, "opposite":opposite})
return context