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) + +  | 
