diff options
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r-- | archaeological_operations/views.py | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index ecacdb560..897302828 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -25,6 +25,7 @@ from django.core.urlresolvers import reverse from django.db.models import Q from django.http import HttpResponse, HttpResponseRedirect, Http404 from django.shortcuts import render, redirect +from django.views.generic import RedirectView from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy from archaeological_operations import models @@ -36,7 +37,8 @@ from ishtar_common.models import get_current_profile, IshtarSiteProfile, \ DocumentTemplate from ishtar_common.utils import put_session_message, check_rights_condition from ishtar_common.views import gen_generate_doc, QAItemEditForm, \ - QABaseLockView, wizard_is_available, QAItemForm + QABaseLockView, wizard_is_available, QAItemForm, IshtarMixin, \ + LoginRequiredMixin from ishtar_common.views_item import get_item, show_item, revert_item, \ new_qa_item from ishtar_common.wizards import SearchWizard @@ -644,3 +646,36 @@ class QAArchaeologicalSiteDuplicateFormView(QAItemForm): class QAArchaeologicalSiteForm(QAItemEditForm): model = models.ArchaeologicalSite form_class = forms.QAArchaeologicalSiteFormMulti + + +class GenerateStatsOperation(IshtarMixin, LoginRequiredMixin, RedirectView): + model = models.Operation + + def get_redirect_url(self, *args, **kwargs): + return reverse('display-item', + args=[self.model.SLUG, self.item.pk]) + "#statistics" + + def get(self, request, *args, **kwargs): + self.item = self.model.objects.get(pk=kwargs['pk']) + self.item._get_or_set_stats('_nb_acts', update=True) + self.item._get_or_set_stats('_nb_indexed_acts', update=True) + self.item._get_or_set_stats('_nb_context_records', update=True) + self.item._get_or_set_stats('_nb_context_records_by_type', update=True, + expected_type=list) + self.item._get_or_set_stats('_nb_context_records_by_periods', + update=True, expected_type=list) + self.item._get_or_set_stats('_nb_finds', update=True) + self.item._get_or_set_stats('_nb_finds_by_material_type', update=True, + expected_type=list) + self.item._get_or_set_stats('_nb_finds_by_types', update=True, + expected_type=list) + self.item._get_or_set_stats('_nb_finds_by_periods', update=True, + expected_type=list) + self.item._get_or_set_stats('_nb_documents', update=True) + self.item._get_or_set_stats('_nb_documents_by_types', update=True, + expected_type=list) + self.item._get_or_set_stats('_nb_stats_finds_by_ue', update=True) + + return super(GenerateStatsOperation, self).get(request, *args, **kwargs) + + |