diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-09-30 19:05:12 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:20 +0100 |
commit | b0b9cb123f9dfcc2584e80eef5fdfb77af24cacd (patch) | |
tree | 85df1e328015c57cc064e8ccdae78cf0e1a4e72d /archaeological_warehouse/views.py | |
parent | cf38e81844d6828825c0cf5810cc9186b58174f9 (diff) | |
download | Ishtar-b0b9cb123f9dfcc2584e80eef5fdfb77af24cacd.tar.bz2 Ishtar-b0b9cb123f9dfcc2584e80eef5fdfb77af24cacd.zip |
Stats: generation on demand
Diffstat (limited to 'archaeological_warehouse/views.py')
-rw-r--r-- | archaeological_warehouse/views.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index 34def58cf..de0c64d19 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -21,6 +21,7 @@ import json from django.core.urlresolvers import reverse from django.db.models import Q +from django.views.generic import RedirectView from django.views.generic.edit import FormView from django.http import HttpResponse, Http404, HttpResponseRedirect from django.shortcuts import redirect @@ -313,3 +314,27 @@ class QAContainerForm(QAItemEditForm): # item list is necessary to verify uniqueness rules kwargs['items'] = self.items return kwargs + + +class GenerateStats(IshtarMixin, LoginRequiredMixin, RedirectView): + model = None + + def get_redirect_url(self, *args, **kwargs): + return reverse('display-item', + args=[self.model.SLUG, self.item.pk]) + "#stats" + + def get(self, request, *args, **kwargs): + self.item = self.model.objects.get(pk=kwargs['pk']) + self.item._get_or_set_stats('_number_of_finds_by_place', update=True, + expected_type=list) + self.item._get_or_set_stats('_number_of_containers_by_place', + update=True, expected_type=list) + return super(GenerateStats, self).get(request, *args, **kwargs) + + +class GenerateStatsContainer(GenerateStats): + model = models.Container + + +class GenerateStatsWarehouse(GenerateStats): + model = models.Warehouse |