From 89f4177fbd160c5a6cbe6b1fa10914823f1dbbe6 Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Wed, 30 Sep 2020 12:06:33 +0200 Subject: [PATCH] [IMP] report_context: black, isort, prettier --- report_context/__manifest__.py | 21 +++---- report_context/controllers/main.py | 20 ++++--- report_context/data/config_parameter.xml | 9 ++- report_context/models/ir_actions_report.py | 32 ++++++----- report_context/readme/USAGE.rst | 1 - report_context/tests/test_report_context.py | 57 ++++++++++--------- report_context/views/ir_actions_report.xml | 9 +-- .../report_context/odoo/addons/report_context | 1 + setup/report_context/setup.py | 6 ++ 9 files changed, 84 insertions(+), 72 deletions(-) create mode 120000 setup/report_context/odoo/addons/report_context create mode 100644 setup/report_context/setup.py diff --git a/report_context/__manifest__.py b/report_context/__manifest__.py index 5bbf6de80..8a5001e17 100644 --- a/report_context/__manifest__.py +++ b/report_context/__manifest__.py @@ -2,18 +2,13 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'Report Context', - 'summary': """ + "name": "Report Context", + "summary": """ Adding context to reports""", - 'version': '12.0.1.0.0', - 'license': 'AGPL-3', - 'author': 'Creu Blanca,Odoo Community Association (OCA)', - 'website': 'https://github.com/OCA/reporting-engine', - 'depends': [ - 'web', - ], - 'data': [ - 'views/ir_actions_report.xml', - 'data/config_parameter.xml', - ], + "version": "12.0.1.0.0", + "license": "AGPL-3", + "author": "Creu Blanca,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/reporting-engine", + "depends": ["web"], + "data": ["views/ir_actions_report.xml", "data/config_parameter.xml"], } diff --git a/report_context/controllers/main.py b/report_context/controllers/main.py index 0536bc20b..00715209f 100644 --- a/report_context/controllers/main.py +++ b/report_context/controllers/main.py @@ -1,18 +1,20 @@ # Copyright 2019 Creu Blanca # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from odoo.addons.web.controllers import main as report -from odoo.http import route, request import json +from odoo.http import request, route + +from odoo.addons.web.controllers import main as report + class ReportController(report.ReportController): @route() def report_routes(self, reportname, docids=None, converter=None, **data): - report = request.env['ir.actions.report']._get_report_from_name( - reportname) - original_context = json.loads(data.get('context', '{}')) - data['context'] = json.dumps(report.with_context( - original_context - )._get_context()) + report = request.env["ir.actions.report"]._get_report_from_name(reportname) + original_context = json.loads(data.get("context", "{}")) + data["context"] = json.dumps( + report.with_context(original_context)._get_context() + ) return super().report_routes( - reportname, docids=docids, converter=converter, **data) + reportname, docids=docids, converter=converter, **data + ) diff --git a/report_context/data/config_parameter.xml b/report_context/data/config_parameter.xml index 2f12ffb44..b8439bc64 100644 --- a/report_context/data/config_parameter.xml +++ b/report_context/data/config_parameter.xml @@ -1,8 +1,11 @@ - + - + report.default.context {} diff --git a/report_context/models/ir_actions_report.py b/report_context/models/ir_actions_report.py index 6cf259c22..84fcc305e 100644 --- a/report_context/models/ir_actions_report.py +++ b/report_context/models/ir_actions_report.py @@ -1,36 +1,42 @@ # 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 +from odoo.tools.safe_eval import safe_eval class IrActionsReport(models.Model): - _inherit = 'ir.actions.report' + _inherit = "ir.actions.report" context = fields.Char( - string='Context Value', default={}, + string="Context Value", + default={}, required=True, help="Context dictionary as Python expression, empty by default " - "(Default: {})") + "(Default: {})", + ) def _get_context(self): self.ensure_one() - context = self.env['ir.config_parameter'].sudo().get_param( - 'report.default.context', '{}') + 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 = 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) + 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) + return super( + IrActionsReport, self.with_context(self._get_context()) + ).report_action(docids, data=data, config=config) diff --git a/report_context/readme/USAGE.rst b/report_context/readme/USAGE.rst index aae1802d6..74d4d5f17 100644 --- a/report_context/readme/USAGE.rst +++ b/report_context/readme/USAGE.rst @@ -15,4 +15,3 @@ It can also be added on the developer side using:: YOUR CONTEXT HERE - diff --git a/report_context/tests/test_report_context.py b/report_context/tests/test_report_context.py index 0f5d43a48..c41bd358f 100644 --- a/report_context/tests/test_report_context.py +++ b/report_context/tests/test_report_context.py @@ -4,44 +4,47 @@ 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}'}) + 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']) + 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}'}) + 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']) + 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}') + 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']) + 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}'}) + 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']) + 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}') + 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']) + 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 index d0a313baa..8fdc8b720 100644 --- a/report_context/views/ir_actions_report.xml +++ b/report_context/views/ir_actions_report.xml @@ -1,18 +1,15 @@ - + - - ir.actions.report.context.form ir.actions.report - + - + - diff --git a/setup/report_context/odoo/addons/report_context b/setup/report_context/odoo/addons/report_context new file mode 120000 index 000000000..e0ba2c531 --- /dev/null +++ b/setup/report_context/odoo/addons/report_context @@ -0,0 +1 @@ +../../../../report_context \ No newline at end of file diff --git a/setup/report_context/setup.py b/setup/report_context/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/report_context/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)