diff options
| author | xmo-odoo <xmo-odoo@users.noreply.github.com> | 2016-05-13 17:28:19 +0200 |
|---|---|---|
| committer | Martin Trigaux <mat@odoo.com> | 2016-06-10 16:31:23 +0200 |
| commit | b466a9eea024d66ba10b6c1927252951faa4b188 (patch) | |
| tree | d3d8500c81af2fa36f6caa9815cc33a3cd188493 | |
| parent | 1412a73d74640f235dbd5b03a8d290a5ad713b5a (diff) | |
[FIX] report: Backport of 6d73087d to 9.0
Closes #12131
[FIX] report: don't hide errors in custom reports
If a custom report's render_html raises a KeyError for some
reason, Report.get_html would swallow the exception and fallback
on generic HTML rendering, usually blowing up with unfathomable
errors of missing rendering context data.
Check if a custom report object exists instead of waiting for a
KeyError.
| -rw-r--r-- | addons/report/models/report.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/addons/report/models/report.py b/addons/report/models/report.py index 66ad1c9abb3..1883628b4bf 100644 --- a/addons/report/models/report.py +++ b/addons/report/models/report.py @@ -126,11 +126,11 @@ class Report(osv.Model): """ # If the report is using a custom model to render its html, we must use it. # Otherwise, fallback on the generic html rendering. - try: - report_model_name = 'report.%s' % report_name - particularreport_obj = self.pool[report_model_name] + report_model_name = 'report.%s' % report_name + particularreport_obj = self.pool.get(report_model_name) + if particularreport_obj is not None: return particularreport_obj.render_html(cr, uid, ids, data=data, context=context) - except KeyError: + else: report = self._get_report_from_name(cr, uid, report_name) report_obj = self.pool[report.model] docs = report_obj.browse(cr, uid, ids, context=context) |
