summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/views.py
diff options
context:
space:
mode:
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
commitb0b9cb123f9dfcc2584e80eef5fdfb77af24cacd (patch)
tree85df1e328015c57cc064e8ccdae78cf0e1a4e72d /archaeological_warehouse/views.py
parentcf38e81844d6828825c0cf5810cc9186b58174f9 (diff)
downloadIshtar-b0b9cb123f9dfcc2584e80eef5fdfb77af24cacd.tar.bz2
Ishtar-b0b9cb123f9dfcc2584e80eef5fdfb77af24cacd.zip
Stats: generation on demand
Diffstat (limited to 'archaeological_warehouse/views.py')
-rw-r--r--archaeological_warehouse/views.py25
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