summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/models.py1
-rw-r--r--archaeological_operations/views.py24
-rw-r--r--ishtar_common/views.py27
3 files changed, 30 insertions, 22 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index d1a8b5875..22d724bda 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -1501,6 +1501,7 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
'act_object', 'signature_date',
'associated_file__cached_label',
'operation__cached_label', 'towns_label']
+ SLUG = "administrativeact"
TABLE_COLS_FILE = [
'full_ref', 'year', 'index', 'act_type',
'act_object', 'associated_file', 'towns_label',
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 5ece22073..06b8b6ce9 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -52,6 +52,7 @@ from ishtar_common.forms import ClosingDateFormSelection, FinalForm, \
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
from ishtar_common.views_item import get_item, show_item, revert_item, new_item
from ishtar_common.wizards import SearchWizard
@@ -466,28 +467,7 @@ administrativact_register_wizard = SearchWizard.as_view([
url_name='administrativact_register',)
-def generatedoc_administrativeactop(request, pk, template_pk=None):
- if not request.user.has_perm('view_administrativeact',
- models.AdministrativeAct):
- return HttpResponse(content_type='text/plain')
- try:
- act_file = models.AdministrativeAct.objects.get(pk=pk)
- doc = act_file.publish(template_pk)
- except models.AdministrativeAct.DoesNotExist:
- doc = None
- if doc:
- MIMES = {'odt': 'application/vnd.oasis.opendocument.text',
- 'ods': 'application/vnd.oasis.opendocument.spreadsheet'}
- ext = doc.split('.')[-1]
- doc_name = act_file.get_filename() + "." + ext
- mimetype = 'text/csv'
- if ext in MIMES:
- mimetype = MIMES[ext]
- response = HttpResponse(open(doc), content_type=mimetype)
- response['Content-Disposition'] = 'attachment; filename=%s' % \
- doc_name
- return response
- return HttpResponse(content_type='text/plain')
+generatedoc_administrativeactop = gen_generate_doc(models.AdministrativeAct)
def administrativeactfile_document(
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index f23116d21..a4b979bd9 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1777,6 +1777,33 @@ def get_bookmark(request, pk):
)
+def gen_generate_doc(model):
+
+ def func(request, pk, template_pk=None):
+ if not request.user.has_perm('view_' + model.SLUG, model):
+ return HttpResponse(content_type='text/plain')
+ try:
+ item = model.objects.get(pk=pk)
+ doc = item.publish(template_pk)
+ except model.DoesNotExist:
+ doc = None
+ if doc:
+ MIMES = {'odt': 'application/vnd.oasis.opendocument.text',
+ 'ods': 'application/vnd.oasis.opendocument.spreadsheet'}
+ ext = doc.split('.')[-1]
+ doc_name = item.get_filename() + "." + ext
+ mimetype = 'text/csv'
+ if ext in MIMES:
+ mimetype = MIMES[ext]
+ response = HttpResponse(open(doc), content_type=mimetype)
+ response['Content-Disposition'] = 'attachment; filename=%s' % \
+ doc_name
+ return response
+ return HttpResponse(content_type='text/plain')
+ return func
+
+
+
class SearchQueryMixin(object):
"""
Manage content type and profile init