summaryrefslogtreecommitdiff
path: root/archaeological_operations/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-12-04 23:55:07 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-12-04 23:55:07 +0100
commitf2928e399ed554fb4f3f2c501008e1b8b3c8a967 (patch)
treeadba76d50670728470ed11bb60e7650271f4e466 /archaeological_operations/views.py
parent5e1cafecaabecd5f6dd8d77f5e0ac70e785fdcc3 (diff)
downloadIshtar-f2928e399ed554fb4f3f2c501008e1b8b3c8a967.tar.bz2
Ishtar-f2928e399ed554fb4f3f2c501008e1b8b3c8a967.zip
Administrativ acts: generate document from the last step of creation/modification (refs #1523)
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r--archaeological_operations/views.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 97446b635..92ac0373b 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -18,10 +18,12 @@
# See the file COPYING for details.
import json
+import os
from django.db.models import Q
from django.http import HttpResponse
from django.shortcuts import render_to_response
+from django.template.defaultfilters import slugify
from django.utils.translation import ugettext_lazy as _
from ishtar_common.views import get_item, show_item, revert_item
@@ -258,3 +260,28 @@ operation_administrativeactop_deletion_wizard = \
label=_(u"Operation: administrative act deletion"),
url_name='operation_administrativeactop_deletion',)
+def generatedoc_administrativeactop(request, pk):
+ if (not request.user.has_perm('ishtar_common.view_operation',
+ models.Operation)
+ and not request.user.has_perm('ishtar_common.view_own_operation',
+ models.Operation)):
+ return HttpResponse(mimetype='text/plain')
+ try:
+ act_file = models.AdministrativeAct.objects.get(pk=pk)
+ doc = act_file.publish()
+ 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 = slugify(doc.split(os.path.sep)[-1][:-len(ext)])+ "."\
+ + ext
+ mimetype = 'text/csv'
+ if ext in MIMES:
+ mimetype = MIMES[ext]
+ response = HttpResponse(open(doc), mimetype=mimetype)
+ response['Content-Disposition'] = 'attachment; filename=%s' % \
+ doc_name
+ return response
+ return HttpResponse(mimetype='text/plain')