reporting-engine/report_context/models/ir_actions_report.py

37 lines
1.2 KiB
Python
Raw Normal View History

2021-03-23 19:37:36 +00:00
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from flectra.tools.safe_eval import safe_eval
from flectra import api, fields, models
class IrActionsReport(models.Model):
_inherit = 'ir.actions.report'
context = fields.Char(
string='Context Value', default={},
required=True,
help="Context dictionary as Python expression, empty by default "
"(Default: {})")
def _get_context(self):
self.ensure_one()
context = self.env['ir.config_parameter'].sudo().get_param(
'report.default.context', '{}')
# We must transform it to a dictionary
context = safe_eval(context or '{}')
report_context = safe_eval(self.context or '{}')
context.update(report_context)
context.update(self.env.context)
return context
@api.multi
def render(self, res_ids, data=None):
return super(IrActionsReport, self.with_context(
self._get_context())).render(res_ids, data=data)
@api.noguess
def report_action(self, docids, data=None, config=True):
return super(IrActionsReport, self.with_context(
self._get_context()
)).report_action(docids, data=data, config=config)