diff options
Diffstat (limited to 'archaeological_operations/views.py')
| -rw-r--r-- | archaeological_operations/views.py | 27 | 
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') | 
