Browse Source

[FIX] report_py3o: Use the right naming convention for the render method

To determine the method to use to render a recport according to its type, the generic method 'render' defined into ir.action.report check if a method name  is defined on the model. https://github.com/odoo/odoo/blob/12.0/odoo/addons/base/models/ir_actions_report.py#L734
Therefore, we must provide this method to be compliant with what's expected by Odoo.
This change will also allows the usage of py3o template with mail_template once https://github.com/odoo/odoo/pull/30013 will be merged
pull/347/head
Laurent Mignon (ACSONE) 6 years ago
parent
commit
82dbee0cd6
  1. 2
      report_py3o/controllers/main.py
  2. 4
      report_py3o/models/ir_actions_report.py

2
report_py3o/controllers/main.py

@ -44,7 +44,7 @@ class ReportController(main.ReportController):
raise exceptions.HTTPException( raise exceptions.HTTPException(
description='Py3o action report not found for report_name ' description='Py3o action report not found for report_name '
'%s' % reportname) '%s' % reportname)
res, filetype = action_py3o_report._render_py3o(docids, data)
res, filetype = action_py3o_report.render_py3o(docids, data)
filename = action_py3o_report.gen_report_download_filename( filename = action_py3o_report.gen_report_download_filename(
docids, data) docids, data)
if not filename.endswith(filetype): if not filename.endswith(filetype):

4
report_py3o/models/ir_actions_report.py

@ -81,12 +81,12 @@ class IrActionsReport(models.Model):
def render_report(self, res_ids, name, data): def render_report(self, res_ids, name, data):
action_py3o_report = self.get_from_report_name(name, "py3o") action_py3o_report = self.get_from_report_name(name, "py3o")
if action_py3o_report: if action_py3o_report:
return action_py3o_report._render_py3o(res_ids, data)
return action_py3o_report.render_py3o(res_ids, data)
return super(IrActionsReport, self).render_report( return super(IrActionsReport, self).render_report(
res_ids, name, data) res_ids, name, data)
@api.multi @api.multi
def _render_py3o(self, res_ids, data):
def render_py3o(self, res_ids, data):
self.ensure_one() self.ensure_one()
if self.report_type != "py3o": if self.report_type != "py3o":
raise RuntimeError( raise RuntimeError(

Loading…
Cancel
Save