Browse Source

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

14.0-report-py3o-pr-506
Laurent Mignon 8 years ago
committed by default
parent
commit
a84d655e7c
  1. 3
      report_py3o/models/ir_report.py
  2. 26
      report_py3o/py3o_parser.py

3
report_py3o/models/ir_report.py

@ -38,7 +38,8 @@ class ReportXml(models.Model):
size=128, size=128,
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")])

26
report_py3o/py3o_parser.py

@ -88,16 +88,22 @@ 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:
# if the default is defined
flbk_filename = pkg_resources.resource_filename(
"openerp.addons.%s" % report_obj.module,
report_obj.py3o_template_fallback,
)
if os.path.exists(flbk_filename):
# and it exists on the fileystem
with open(flbk_filename, 'r') as tmpl:
tmpl_data = tmpl.read()
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
flbk_filename = pkg_resources.resource_filename(
"openerp.addons.%s" % report_obj.module,
tmpl_name,
)
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
with open(flbk_filename, 'r') as tmpl:
tmpl_data = tmpl.read()
if tmpl_data is None: if tmpl_data is None:
# if for any reason the template is not found # if for any reason the template is not found

Loading…
Cancel
Save