summaryrefslogtreecommitdiff
path: root/archaeological_operations/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r--archaeological_operations/views.py37
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)
+
+