summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/views.py')
-rw-r--r--ishtar/furnitures/views.py26
1 files changed, 21 insertions, 5 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py
index 34d5c4655..b6e6f91eb 100644
--- a/ishtar/furnitures/views.py
+++ b/ishtar/furnitures/views.py
@@ -25,7 +25,9 @@ import csv
import json
import datetime
import optparse
+import cStringIO as StringIO
from tempfile import NamedTemporaryFile
+import ho.pisa as pisa
from django.http import HttpResponse, Http404
from django.template import RequestContext, loader
@@ -238,9 +240,12 @@ def show_item(model, name):
except ObjectDoesNotExist:
return HttpResponse(None)
doc_type = 'type' in dct and dct.pop('type')
- dct['item'] = item
+ dct['item'], dct['item_name'] = item, name
context_instance = RequestContext(request)
context_instance.update(dct)
+ n = datetime.datetime.now()
+ filename = u'%s_%s_%s' % (name, slugify(unicode(item)),
+ n.strftime('%Y%m%d-%H%M%S'))
if doc_type == "odt" and settings.XHTML2ODT_PATH and \
settings.ODT_TEMPLATE:
tpl = loader.get_template('sheet_%s.html' % name)
@@ -276,12 +281,23 @@ def show_item(model, name):
return HttpResponse(content, content_type="application/xhtml")
response = HttpResponse(
mimetype='application/vnd.oasis.opendocument.text')
- n = datetime.datetime.now()
- filename = u'%s_%s_%s.odt' % (name, slugify(unicode(item)),
- n.strftime('%Y%m%d-%H%M%S'))
- response['Content-Disposition'] = 'attachment; filename=%s'%filename
+ response['Content-Disposition'] = 'attachment; filename=%s.odt' % \
+ filename
response.write(hop)
return response
+ elif doc_type == 'pdf':
+ tpl = loader.get_template('sheet_%s.html' % name)
+ content = tpl.render(context_instance)
+ result = StringIO.StringIO()
+ pdf = pisa.pisaDocument(StringIO.StringIO(content.encode("utf-8")),
+ result)
+ response = HttpResponse(result.getvalue(),
+ mimetype='application/pdf')
+ response['Content-Disposition'] = 'attachment; filename=%s.pdf' % \
+ filename
+ if not pdf.err:
+ return response
+ return HttpResponse(content, content_type="application/xhtml")
else:
tpl = loader.get_template('sheet_%s_window.html' % name)
content = tpl.render(context_instance)