src/hdalab/views/editorial.py
changeset 331 306b95944074
parent 329 ea6268cf8c83
child 332 cb26b3124850
--- 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