diff options
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 | 
