mirror of
https://github.com/OCA/reporting-engine.git
synced 2025-02-16 16:30:38 +02:00
[ADD] reporting-context
This commit is contained in:
committed by
Pierrick Brun
parent
9f6c1c20e3
commit
fb0efed1b8
36
report_context/models/ir_actions_report.py
Normal file
36
report_context/models/ir_actions_report.py
Normal file
@@ -0,0 +1,36 @@
|
||||
# Copyright 2019 Creu Blanca
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
from odoo.tools.safe_eval import safe_eval
|
||||
from odoo 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)
|
||||
Reference in New Issue
Block a user