diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-12-06 22:46:30 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-12-06 22:46:30 +0100 |
commit | 960d580bcbe19293941926639ac1750c391e8a07 (patch) | |
tree | 74a011dc8dac4027def9c97b0b56acf0605f8c7a | |
parent | 6d89609a716ec59397517c0b0446f9568de16a4a (diff) | |
download | Ishtar-960d580bcbe19293941926639ac1750c391e8a07.tar.bz2 Ishtar-960d580bcbe19293941926639ac1750c391e8a07.zip |
Gen doc: refactoring
-rw-r--r-- | archaeological_operations/models.py | 1 | ||||
-rw-r--r-- | archaeological_operations/views.py | 24 | ||||
-rw-r--r-- | ishtar_common/views.py | 27 |
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 |