|
@@ -1,6 +1,8 @@
|
|
from django.contrib import messages
|
|
from django.contrib import messages
|
|
|
|
+from django.core.paginator import Paginator, EmptyPage
|
|
from django.shortcuts import redirect
|
|
from django.shortcuts import redirect
|
|
from django.views.generic import View
|
|
from django.views.generic import View
|
|
|
|
+from misago.core.exceptions import ExplicitFirstPage
|
|
from misago.admin import site
|
|
from misago.admin import site
|
|
from misago.admin.views import render
|
|
from misago.admin.views import render
|
|
|
|
|
|
@@ -47,6 +49,9 @@ class AdminView(View):
|
|
|
|
|
|
def render(self, request, context=None):
|
|
def render(self, request, context=None):
|
|
context = context or {}
|
|
context = context or {}
|
|
|
|
+
|
|
|
|
+ context['root_link'] = self.root_link
|
|
|
|
+
|
|
return render(request, self.final_template(), context)
|
|
return render(request, self.final_template(), context)
|
|
|
|
|
|
|
|
|
|
@@ -55,10 +60,36 @@ class ItemsList(AdminView):
|
|
|
|
|
|
items_per_page = 0
|
|
items_per_page = 0
|
|
|
|
|
|
- def dispatch(self, request, *args, **kwargs):
|
|
|
|
- context = {}
|
|
|
|
|
|
+ def get_queryset(self):
|
|
|
|
+ return self.get_model().objects.all()
|
|
|
|
|
|
- context['items'] = self.get_model().objects.all()
|
|
|
|
|
|
+ def paginate_items(self, context, page):
|
|
|
|
+ try:
|
|
|
|
+ page = int(page)
|
|
|
|
+ if page == 1:
|
|
|
|
+ raise ExplicitFirstPage()
|
|
|
|
+ else:
|
|
|
|
+ page = 1
|
|
|
|
+ except ValueError:
|
|
|
|
+ page_no = 1
|
|
|
|
+
|
|
|
|
+ context['paginator'] = Paginator(context['items'],
|
|
|
|
+ self.items_per_page,
|
|
|
|
+ allow_empty_first_page=True)
|
|
|
|
+ context['page'] = context['paginator'].page(page)
|
|
|
|
+
|
|
|
|
+ def filter_items(self, request, context):
|
|
|
|
+ pass
|
|
|
|
+
|
|
|
|
+ def dispatch(self, request, *args, **kwargs):
|
|
|
|
+ context = {
|
|
|
|
+ 'items': self.get_queryset(),
|
|
|
|
+ 'paginator': None,
|
|
|
|
+ 'page': None,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if self.items_per_page:
|
|
|
|
+ self.paginate_items(context, kwargs.get('page', 0))
|
|
|
|
|
|
return self.render(request, context)
|
|
return self.render(request, context)
|
|
|
|
|