summaryrefslogtreecommitdiff
path: root/archaeological_files/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_files/views.py')
-rw-r--r--archaeological_files/views.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/archaeological_files/views.py b/archaeological_files/views.py
index 407bbe821..e55368e62 100644
--- a/archaeological_files/views.py
+++ b/archaeological_files/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
@@ -156,3 +158,29 @@ file_administrativeactfile_deletion_wizard = \
label=_(u"File: administrative act deletion"),
url_name='file_administrativeactfile_deletion',)
+def file_administrativeactfile_document(request):
+ dct = {}
+ if request.POST:
+ dct['search_form'] = AdministrativeActFileFormSelection(request.POST)
+ dct['template_form'] = DocumentGenerationAdminActForm(request.POST)
+ if dct['search_form'].is_valid() and dct['template_form'].is_valid():
+ doc = dct['template_form'].save(
+ dct['search_form'].cleaned_data.get('pk'))
+ 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
+ else:
+ dct['search_form'] = AdministrativeActFileFormSelection()
+ dct['template_form'] = DocumentGenerationAdminActForm()
+ return render_to_response('ishtar/administrativeact_document.html', dct,
+ context_instance=RequestContext(request))