From ff63135bd082e8def278108acef93534ba7f1f60 Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Tue, 10 Dec 2019 16:48:16 +0100 Subject: [PATCH] views: add pagination to visualizations list (#27410) --- bijoe/templates/bijoe/visualizations_list.html | 1 + bijoe/views.py | 18 ++++++++++++------ bijoe/visualization/views.py | 1 + 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/bijoe/templates/bijoe/visualizations_list.html b/bijoe/templates/bijoe/visualizations_list.html index dc89c98..f68c424 100644 --- a/bijoe/templates/bijoe/visualizations_list.html +++ b/bijoe/templates/bijoe/visualizations_list.html @@ -9,3 +9,4 @@ {% endfor %} +{% include "gadjo/pagination.html" %} diff --git a/bijoe/views.py b/bijoe/views.py index 12c3569..58b839a 100644 --- a/bijoe/views.py +++ b/bijoe/views.py @@ -19,7 +19,7 @@ import urllib from django.shortcuts import resolve_url from django.core.urlresolvers import reverse -from django.views.generic import TemplateView, View +from django.views.generic import ListView, View from django.http import HttpResponse, HttpResponseRedirect from django.utils.translation import ugettext as _ from django.contrib.auth import logout as auth_logout @@ -54,20 +54,26 @@ class AuthorizationMixin(object): return redirect_to_login(request.build_absolute_uri()) -class HomepageView(AuthorizationMixin, TemplateView): +class HomepageView(AuthorizationMixin, ListView): template_name = 'bijoe/homepage.html' + model = Visualization + context_object_name = 'visualizations' + paginate_by = 20 def get_context_data(self, **kwargs): ctx = super(HomepageView, self).get_context_data(**kwargs) - ctx['visualizations'] = Visualization.all_visualizations() ctx['warehouses'] = sorted((Engine(w) for w in get_warehouses()), key=lambda w: w.label) return ctx + def get_queryset(self): + return self.model.all_visualizations() + def get(self, request, *args, **kwargs): - ctx = self.get_context_data() - if not len(ctx['visualizations']) and len(ctx['warehouses']) == 1: - return HttpResponseRedirect(reverse('warehouse', kwargs={'warehouse': ctx['warehouses'][0].name}), + warehouses = get_warehouses() + if not len(self.get_queryset()) and len(warehouses) == 1: + engine = Engine(warehouses[0]) + return HttpResponseRedirect(reverse('warehouse', kwargs={'warehouse': engine.name}), status=307) return super(HomepageView, self).get(request, *args, **kwargs) diff --git a/bijoe/visualization/views.py b/bijoe/visualization/views.py index 0a9d1e4..6cb3ccb 100644 --- a/bijoe/visualization/views.py +++ b/bijoe/visualization/views.py @@ -186,6 +186,7 @@ class VisualizationsView(views.AuthorizationMixin, ListView): template_name = 'bijoe/visualizations.html' model = models.Visualization context_object_name = 'visualizations' + paginate_by = 20 def get_queryset(self): return Visualization.all_visualizations() -- 2.20.1