diff options
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  | 
