[IMP] Add the possiblity to get the template from an absolute path on the server

pull/695/head
Laurent Mignon 2016-10-04 09:52:00 +02:00 committed by Alexis de Lattre
parent 9f9125ea99
commit 5bcca966f5
2 changed files with 18 additions and 11 deletions

View File

@ -39,6 +39,7 @@ class ReportXml(models.Model):
help=( help=(
"If the user does not provide a template this will be used " "If the user does not provide a template this will be used "
"it should be a relative path to root of YOUR module " "it should be a relative path to root of YOUR module "
"or an absolute path on your server."
)) ))
report_type = fields.Selection(selection_add=[('py3o', "Py3o")]) report_type = fields.Selection(selection_add=[('py3o', "Py3o")])

View File

@ -88,13 +88,19 @@ class Py3oParser(report_sxw):
report_obj.py3o_template_id.py3o_template_data report_obj.py3o_template_id.py3o_template_data
) )
elif report_obj.py3o_template_fallback and report_obj.module: elif report_obj.py3o_template_fallback:
tmpl_name = report_obj.py3o_template_fallback
flbk_filename = None
if report_obj.module:
# if the default is defined # if the default is defined
flbk_filename = pkg_resources.resource_filename( flbk_filename = pkg_resources.resource_filename(
"openerp.addons.%s" % report_obj.module, "openerp.addons.%s" % report_obj.module,
report_obj.py3o_template_fallback, tmpl_name,
) )
if os.path.exists(flbk_filename): elif os.path.isabs(tmpl_name):
# It is an absolute path
flbk_filename = os.path.normcase(os.path.normpath(tmpl_name))
if flbk_filename and os.path.exists(flbk_filename):
# and it exists on the fileystem # and it exists on the fileystem
with open(flbk_filename, 'r') as tmpl: with open(flbk_filename, 'r') as tmpl:
tmpl_data = tmpl.read() tmpl_data = tmpl.read()