summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/views.py
diff options
context:
space:
mode:
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