- sort = None
- if context.has_sort:
- if request.GET.get(labels.SORT, None):
- sort = request.GET[labels.SORT]
- if session_prefs.get('sticky_sort', False):
- session_prefs[labels.SORT] = sort
- else:
- sort = session_prefs.get(labels.SORT, context.default_sort)
+ if not sort in self.sort_methods:
+ sort = self.default_sort
+
+ return sort
+
+ def sorted(self, objects, request, session_prefs=None):
+ sort = self.sort(request, session_prefs)
+
+ if sort:
+ objects = self.sort_methods[sort].apply(objects)
+
+ return sort, objects
+
+ @property
+ def PAGESIZE(self):
+ return self.prefix and "%s_%s" % (self.prefix, _('pagesize')) or _('pagesize')
+
+ @property
+ def PAGE(self):
+ return self.prefix and "%s_%s" % (self.prefix, _('page')) or _('page')
+
+ @property
+ def SORT(self):
+ return self.prefix and "%s_%s" % (self.prefix, _('sort')) or _('sort')
+
+page_numbers_template = template.loader.get_template('paginator/page_numbers.html')
+page_sizes_template = template.loader.get_template('paginator/page_sizes.html')
+sort_tabs_template = template.loader.get_template('paginator/sort_tabs.html')
+
+def paginated(request, paginators, tpl_context):
+ if len(paginators) == 2 and isinstance(paginators[0], basestring):
+ paginators = (paginators,)
+
+ for list_name, context in paginators:
+ tpl_context[list_name] = _paginated(request, tpl_context[list_name], context)
+
+ return tpl_context