forked from CGM_Public/pretix_original
Pagination improvements, allow to select page size
This commit is contained in:
@@ -35,3 +35,24 @@ class ChartContainingView:
|
||||
# required by raphael.js
|
||||
resp['Content-Security-Policy'] = "script-src 'unsafe-eval'; style-src 'unsafe-inline'"
|
||||
return resp
|
||||
|
||||
|
||||
class PaginationMixin:
|
||||
DEFAULT_PAGINATION = 25
|
||||
|
||||
def get_paginate_by(self, queryset):
|
||||
skey = 'stored_page_size_' + self.request.resolver_match.url_name
|
||||
default = self.request.session.get(skey) or self.paginate_by or self.DEFAULT_PAGINATION
|
||||
if self.request.GET.get('page_size'):
|
||||
try:
|
||||
size = min(250, int(self.request.GET.get("page_size")))
|
||||
self.request.session[skey] = size
|
||||
return min(250, int(self.request.GET.get("page_size")))
|
||||
except ValueError:
|
||||
return default
|
||||
return default
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['page_size'] = self.get_paginate_by(None)
|
||||
return ctx
|
||||
|
||||
Reference in New Issue
Block a user