Restore direct rendering for native ODT output formats
--HG-- branch : odoo8pull/80/head
parent
1d33221767
commit
49defabe88
|
@ -8,7 +8,20 @@ class py3o_template(osv.Model):
|
|||
'name': fields.char(
|
||||
u"Name",
|
||||
),
|
||||
|
||||
'py3o_template_data': fields.binary(
|
||||
u"LibreOffice template",
|
||||
),
|
||||
|
||||
'filetype': fields.selection(
|
||||
[
|
||||
('odt', u"ODF Text Document"),
|
||||
('ods', u"ODF Spreadsheet"),
|
||||
],
|
||||
u"LibreOffice Template File Type",
|
||||
),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'filetype': 'odt'
|
||||
}
|
||||
|
|
|
@ -154,8 +154,14 @@ class Py3oParser(report_sxw):
|
|||
|
||||
datadict = parser_instance.localcontext
|
||||
|
||||
res = data_struct.render(datadict)
|
||||
parsed_datadict = data_struct.render(datadict)
|
||||
|
||||
if filetype.fusion_ext == report_xml.py3o_template_id.filetype:
|
||||
# No format conversion is needed, render the template directly
|
||||
template.render(parsed_datadict)
|
||||
res = out_stream.getvalue()
|
||||
|
||||
else: # Call py3o.server to render the template in the desired format
|
||||
fusion_server_obj = pool.get('py3o.server')
|
||||
fusion_server_ids = fusion_server_obj.search(
|
||||
cr, uid, [], context=context
|
||||
|
@ -175,7 +181,7 @@ class Py3oParser(report_sxw):
|
|||
}
|
||||
fields = {
|
||||
"targetformat": filetype.fusion_ext,
|
||||
"datadict": json.dumps(res),
|
||||
"datadict": json.dumps(parsed_datadict),
|
||||
"image_mapping": "{}",
|
||||
}
|
||||
r = requests.post(fusion_server.url, data=fields, files=files)
|
||||
|
@ -197,7 +203,9 @@ class Py3oParser(report_sxw):
|
|||
fd.write(chunk)
|
||||
fd.seek(0)
|
||||
# ... but odoo wants the whole data in memory anyways :)
|
||||
return fd.read(), filetype.human_ext
|
||||
res = fd.read()
|
||||
|
||||
return res, filetype.human_ext
|
||||
|
||||
def create(self, cr, uid, ids, data, context=None):
|
||||
""" Override this function to handle our py3o report
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<sheet>
|
||||
<group>
|
||||
<field name="name" />
|
||||
<field name="filetype" />
|
||||
<field name="py3o_template_data" />
|
||||
</group>
|
||||
</sheet>
|
||||
|
@ -22,6 +23,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<tree string="Py3o Templates Configuration" version="7.0">
|
||||
<field name="name" />
|
||||
<field name="filetype" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
Loading…
Reference in New Issue