[Erp5-report] r32071 nicolas - in /erp5/trunk/products/ERP5OOo: ./ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Jan 28 17:52:14 CET 2010
Author: nicolas
Date: Thu Jan 28 17:52:13 2010
New Revision: 32071
URL: http://svn.erp5.org?rev=32071&view=rev
Log:
Add batch_mode parameter for FormPrintout
* if batch_mode is True disable the Reponse Header overriding
* Change test
This change reflect OOoTemplate API
approved by Jerome
Modified:
erp5/trunk/products/ERP5OOo/FormPrintout.py
erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODG.py
erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODT.py
Modified: erp5/trunk/products/ERP5OOo/FormPrintout.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/FormPrintout.py?rev=32071&r1=32070&r2=32071&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/FormPrintout.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/FormPrintout.py [utf8] Thu Jan 28 17:52:13 2010
@@ -173,8 +173,14 @@
self.template = template
security.declareProtected('View', 'index_html')
- def index_html(self, REQUEST, icon=0, preview=0, width=None, height=None, RESPONSE=None):
- """Render and view a printout document."""
+ def index_html(self, REQUEST, icon=0, preview=0, width=None, height=None,
+ RESPONSE=None, format=None, batch_mode=False):
+ """Render and view a printout document.
+
+ format: conversion format requested by User.
+ take precedence of format in REQUEST
+ batch_mode: if True then avoid overriding response headers.
+ """
obj = getattr(self, 'aq_parent', None)
if obj is not None:
@@ -201,7 +207,8 @@
self.strategy = self._createStrategy(content_type)
printout = self.strategy.render(extra_context=extra_context)
return self._oooConvertByFormat(printout, content_type,
- extra_context, REQUEST)
+ extra_context, REQUEST,
+ format, batch_mode)
security.declareProtected('View', '__call__')
__call__ = index_html
@@ -227,7 +234,8 @@
return ODGStrategy()
raise ValueError, 'Template type: %s is not supported' % content_type
- def _oooConvertByFormat(self, printout, content_type, extra_context, REQUEST):
+ def _oooConvertByFormat(self, printout, content_type, extra_context,
+ REQUEST, format, batch_mode):
"""
Convert the ODF document into the given format.
@@ -236,12 +244,13 @@
content_type -- the content type of the printout
extra_context -- extra_context including a format
REQUEST -- Request object
- """
- format = None
- if REQUEST is not None:
+ format -- requested output format
+ batch_mode -- Disable headers overriding
+ """
+ if REQUEST is not None and not format:
format = REQUEST.get('format', None)
- if format is None:
- if REQUEST is not None:
+ if not format:
+ if REQUEST is not None and not batch_mode:
REQUEST.RESPONSE.setHeader('Content-Type','%s' % content_type)
REQUEST.RESPONSE.setHeader('Content-disposition',
'inline;filename="%s%s"' % (self.title_or_id(), guess_extension(content_type)))
@@ -254,7 +263,7 @@
base_content_type=content_type)
tmp_ooo.oo_data = printout
mime, data = tmp_ooo.convert(format)
- if REQUEST is not None:
+ if REQUEST is not None and not batch_mode:
REQUEST.RESPONSE.setHeader('Content-type', mime)
REQUEST.RESPONSE.setHeader('Content-disposition',
'attachment;filename="%s.%s"' % (self.title_or_id(), format))
Modified: erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODG.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODG.py?rev=32071&r1=32070&r2=32071&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODG.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODG.py [utf8] Thu Jan 28 17:52:13 2010
@@ -160,7 +160,7 @@
self.assertTrue(content_xml.find("Foo title!") > 0)
self.assertEqual(request.RESPONSE.getHeader('content-type'),
- 'application/vnd.oasis.opendocument.graphics; charset=utf-8')
+ 'application/vnd.oasis.opendocument.graphics')
self.assertEqual(request.RESPONSE.getHeader('content-disposition'),
'inline;filename="Foo_viewAsODGPrintout.odg"')
self._validate(odf_document)
@@ -206,7 +206,7 @@
# 5. Normal case: just call a FormPrintout object
request.RESPONSE.setHeader('Content-Type', 'text/html')
test1.setTitle("call!")
- odf_document = foo_printout(request) # call
+ odf_document = foo_printout(request, batch_mode=True) # call
self.assertTrue(odf_document is not None)
builder = OOoBuilder(odf_document)
content_xml = builder.extract("content.xml")
@@ -411,7 +411,7 @@
self.assertTrue(content_xml.find("Foo title!") > 0)
self.assertEqual(request.RESPONSE.getHeader('content-type'),
- 'application/vnd.oasis.opendocument.graphics; charset=utf-8')
+ 'application/vnd.oasis.opendocument.graphics')
self.assertEqual(request.RESPONSE.getHeader('content-disposition'),
'inline;filename="Foo_viewProxyFieldAsODGPrintout.odg"')
self._validate(odf_document)
@@ -462,8 +462,8 @@
builder = OOoBuilder(odf_document)
content_xml = builder.extract("content.xml")
self.assertTrue(content_xml.find("call!") > 0)
- # when just call FormPrintout, it does not change content-type
- self.assertEqual(request.RESPONSE.getHeader('content-type'), 'text/html')
+ self.assertEqual(request.RESPONSE.getHeader('content-type'),
+ 'application/vnd.oasis.opendocument.graphics')
self._validate(odf_document)
# 5. Normal case: utf-8 string
Modified: erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODT.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODT.py?rev=32071&r1=32070&r2=32071&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODT.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testFormPrintoutAsODT.py [utf8] Thu Jan 28 17:52:13 2010
@@ -202,12 +202,12 @@
# 5. Normal case: just call a FormPrintout object
request.RESPONSE.setHeader('Content-Type', 'text/html')
test1.setTitle("call!")
- odf_document = foo_printout(request) # call
+ odf_document = foo_printout(request, batch_mode=True) # call
self.assertTrue(odf_document is not None)
builder = OOoBuilder(odf_document)
content_xml = builder.extract("content.xml")
self.assertTrue(content_xml.find("call!") > 0)
- self.assertEqual(request.RESPONSE.getHeader('content-type'), 'application/vnd.oasis.opendocument.text')
+ self.assertEqual(request.RESPONSE.getHeader('content-type'), 'text/html')
self._validate(odf_document)
# 5. Normal case: utf-8 string
More information about the Erp5-report
mailing list