+
Report Context
+
+
+

+
This module adds a context variable to reports. A possible use for this
+context could be hiding some fields or many other configuration options.
+
Table of contents
+
+
+
+
To configure this module, you need to:
+
+- Enter Odoo in debug mode.
+- To add a specific context to a report, you should go to Settings ->
+Reporting -> Reporting and look for the report you want to edit on the
+list. You will see that now they contain a new field called Context Value
+, where you will be able to add all the desired context parameters.
+- Go to Settings -> Parameters -> System Parameters. On the system
+parameters list, look for report.default.context, which is a Python
+dictionary variable where you can add a context that will be common for
+all reports.
+
+
It can also be added on the developer side using:
+
+<record id="model_name.report_id" model="ir.actions.report">
+ <field name="context">YOUR CONTEXT HERE</field>
+</record>
+
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/reporting-engine project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/report_context/tests/__init__.py b/report_context/tests/__init__.py
new file mode 100644
index 000000000..c72cd7abd
--- /dev/null
+++ b/report_context/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_report_context
diff --git a/report_context/tests/test_report_context.py b/report_context/tests/test_report_context.py
new file mode 100644
index 000000000..0f5d43a48
--- /dev/null
+++ b/report_context/tests/test_report_context.py
@@ -0,0 +1,47 @@
+# Copyright 2019 Creu Blanca
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+from odoo.tests.common import TransactionCase
+
+
+class TestReportContext(TransactionCase):
+
+ def test_report_01(self):
+ company = self.browse_ref('base.main_company')
+ report = self.browse_ref('web.action_report_internalpreview')
+ self.env['ir.config_parameter'].sudo().set_param(
+ 'report.default.context', '{"test_parameter": 1}')
+ report.write({'context': '{"test_parameter": 2}'})
+ action = report.with_context(test_parameter=3).report_action(company)
+ self.assertEqual(3, action['context']['test_parameter'])
+
+ def test_report_02(self):
+ company = self.browse_ref('base.main_company')
+ report = self.browse_ref('web.action_report_internalpreview')
+ self.env['ir.config_parameter'].sudo().set_param(
+ 'report.default.context', '{"test_parameter": 1}')
+ report.write({'context': '{"test_parameter": 2}'})
+ action = report.report_action(company)
+ self.assertEqual(2, action['context']['test_parameter'])
+
+ def test_report_03(self):
+ company = self.browse_ref('base.main_company')
+ report = self.browse_ref('web.action_report_internalpreview')
+ self.env['ir.config_parameter'].sudo().set_param(
+ 'report.default.context', '{"test_parameter": 1}')
+ action = report.with_context(test_parameter=3).report_action(company)
+ self.assertEqual(3, action['context']['test_parameter'])
+
+ def test_report_04(self):
+ company = self.browse_ref('base.main_company')
+ report = self.browse_ref('web.action_report_internalpreview')
+ report.write({'context': '{"test_parameter": 2}'})
+ action = report.report_action(company)
+ self.assertEqual(2, action['context']['test_parameter'])
+
+ def test_report_05(self):
+ company = self.browse_ref('base.main_company')
+ report = self.browse_ref('web.action_report_internalpreview')
+ self.env['ir.config_parameter'].sudo().set_param(
+ 'report.default.context', '{"test_parameter": 1}')
+ action = report.report_action(company)
+ self.assertEqual(1, action['context']['test_parameter'])
diff --git a/report_context/views/ir_actions_report.xml b/report_context/views/ir_actions_report.xml
new file mode 100644
index 000000000..d0a313baa
--- /dev/null
+++ b/report_context/views/ir_actions_report.xml
@@ -0,0 +1,18 @@
+
+
+
+