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 /ishtar_common/views.py | |
| parent | 6d89609a716ec59397517c0b0446f9568de16a4a (diff) | |
| download | Ishtar-960d580bcbe19293941926639ac1750c391e8a07.tar.bz2 Ishtar-960d580bcbe19293941926639ac1750c391e8a07.zip  | |
Gen doc: refactoring
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 27 | 
1 files changed, 27 insertions, 0 deletions
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  | 
