From 68602add59ffbbc826e4901e821389a40099a8a4 Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Mon, 18 Feb 2019 11:28:09 +0100 Subject: [PATCH 1/8] [ADD] reporting-context --- report_context/README.rst | 89 ++++ report_context/__init__.py | 2 + report_context/__manifest__.py | 21 + report_context/controllers/__init__.py | 1 + report_context/controllers/main.py | 18 + report_context/data/config_parameter.xml | 10 + report_context/models/__init__.py | 1 + report_context/models/ir_actions_report.py | 36 ++ report_context/readme/CONTRIBUTORS.rst | 1 + report_context/readme/DESCRIPTION.rst | 2 + report_context/readme/USAGE.rst | 18 + report_context/static/description/icon.png | Bin 0 -> 9455 bytes report_context/static/description/index.html | 436 +++++++++++++++++++ report_context/tests/__init__.py | 1 + report_context/tests/test_report_context.py | 47 ++ report_context/views/ir_actions_report.xml | 18 + 16 files changed, 701 insertions(+) create mode 100644 report_context/README.rst create mode 100644 report_context/__init__.py create mode 100644 report_context/__manifest__.py create mode 100644 report_context/controllers/__init__.py create mode 100644 report_context/controllers/main.py create mode 100644 report_context/data/config_parameter.xml create mode 100644 report_context/models/__init__.py create mode 100644 report_context/models/ir_actions_report.py create mode 100644 report_context/readme/CONTRIBUTORS.rst create mode 100644 report_context/readme/DESCRIPTION.rst create mode 100644 report_context/readme/USAGE.rst create mode 100644 report_context/static/description/icon.png create mode 100644 report_context/static/description/index.html create mode 100644 report_context/tests/__init__.py create mode 100644 report_context/tests/test_report_context.py create mode 100644 report_context/views/ir_actions_report.xml diff --git a/report_context/README.rst b/report_context/README.rst new file mode 100644 index 000000000..455a536e7 --- /dev/null +++ b/report_context/README.rst @@ -0,0 +1,89 @@ +============== +Report Context +============== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github + :target: https://github.com/OCA/reporting-engine/tree/11.0/report_context + :alt: OCA/reporting-engine +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/reporting-engine-11-0/reporting-engine-11-0-report_context + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/143/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +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** + +.. contents:: + :local: + +Usage +===== + +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. + +Bug Tracker +=========== + +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. + +Credits +======= + +Authors +~~~~~~~ + +* Creu Blanca + +Contributors +~~~~~~~~~~~~ + +* Jaime Arroyo + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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/__init__.py b/report_context/__init__.py new file mode 100644 index 000000000..91c5580fe --- /dev/null +++ b/report_context/__init__.py @@ -0,0 +1,2 @@ +from . import controllers +from . import models diff --git a/report_context/__manifest__.py b/report_context/__manifest__.py new file mode 100644 index 000000000..5c7fe7038 --- /dev/null +++ b/report_context/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2019 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Report Context', + 'summary': """ + Adding context to reports""", + 'version': '11.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', + ], + 'demo': [ + ], +} diff --git a/report_context/controllers/__init__.py b/report_context/controllers/__init__.py new file mode 100644 index 000000000..12a7e529b --- /dev/null +++ b/report_context/controllers/__init__.py @@ -0,0 +1 @@ +from . import main diff --git a/report_context/controllers/main.py b/report_context/controllers/main.py new file mode 100644 index 000000000..0536bc20b --- /dev/null +++ b/report_context/controllers/main.py @@ -0,0 +1,18 @@ +# 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 + + +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()) + return super().report_routes( + reportname, docids=docids, converter=converter, **data) diff --git a/report_context/data/config_parameter.xml b/report_context/data/config_parameter.xml new file mode 100644 index 000000000..2f12ffb44 --- /dev/null +++ b/report_context/data/config_parameter.xml @@ -0,0 +1,10 @@ + + + + + report.default.context + {} + + + diff --git a/report_context/models/__init__.py b/report_context/models/__init__.py new file mode 100644 index 000000000..a248cf216 --- /dev/null +++ b/report_context/models/__init__.py @@ -0,0 +1 @@ +from . import ir_actions_report diff --git a/report_context/models/ir_actions_report.py b/report_context/models/ir_actions_report.py new file mode 100644 index 000000000..6cf259c22 --- /dev/null +++ b/report_context/models/ir_actions_report.py @@ -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) diff --git a/report_context/readme/CONTRIBUTORS.rst b/report_context/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..e59d51045 --- /dev/null +++ b/report_context/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Jaime Arroyo diff --git a/report_context/readme/DESCRIPTION.rst b/report_context/readme/DESCRIPTION.rst new file mode 100644 index 000000000..f3306e2d2 --- /dev/null +++ b/report_context/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module adds a context variable to reports. A possible use for this +context could be hiding some fields or many other configuration options. diff --git a/report_context/readme/USAGE.rst b/report_context/readme/USAGE.rst new file mode 100644 index 000000000..aae1802d6 --- /dev/null +++ b/report_context/readme/USAGE.rst @@ -0,0 +1,18 @@ +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:: + + + YOUR CONTEXT HERE + + diff --git a/report_context/static/description/icon.png b/report_context/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/report_context/static/description/index.html b/report_context/static/description/index.html new file mode 100644 index 000000000..9c66b9098 --- /dev/null +++ b/report_context/static/description/index.html @@ -0,0 +1,436 @@ + + + + + + +Report Context + + + +
+

Report Context

+ + +

Beta License: AGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runbot

+

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

+ +
+

Usage

+

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.
  • +
+
+
+

Bug Tracker

+

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.

+
+
+

Credits

+
+

Authors

+
    +
  • Creu Blanca
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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..03f41852e --- /dev/null +++ b/report_context/views/ir_actions_report.xml @@ -0,0 +1,18 @@ + + + + + + + ir.actions.report.context.form + ir.actions.report + + + + + + + + + From d2b68932dcd3d988776a2e4262f4693f0b19e399 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 25 Feb 2019 16:28:30 +0000 Subject: [PATCH 2/8] [UPD] README.rst --- report_context/README.rst | 7 +++++++ report_context/static/description/index.html | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/report_context/README.rst b/report_context/README.rst index 455a536e7..e667f4cfa 100644 --- a/report_context/README.rst +++ b/report_context/README.rst @@ -48,6 +48,13 @@ To configure this module, you need to: 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:: + + + YOUR CONTEXT HERE + + + Bug Tracker =========== diff --git a/report_context/static/description/index.html b/report_context/static/description/index.html index 9c66b9098..a8e065209 100644 --- a/report_context/static/description/index.html +++ b/report_context/static/description/index.html @@ -397,6 +397,12 @@ 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>
+

Bug Tracker

From 1f21e046cab0b62189f787d9ccdacbd4270461c6 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 25 Feb 2019 16:54:03 +0000 Subject: [PATCH 3/8] [UPD] Update report_context.pot --- report_context/i18n/report_context.pot | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 report_context/i18n/report_context.pot diff --git a/report_context/i18n/report_context.pot b/report_context/i18n/report_context.pot new file mode 100644 index 000000000..3993025ff --- /dev/null +++ b/report_context/i18n/report_context.pot @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * report_context +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: report_context +#: model:ir.model.fields,field_description:report_context.field_ir_act_report_xml_context +msgid "Context Value" +msgstr "" + +#. module: report_context +#: model:ir.model.fields,help:report_context.field_ir_act_report_xml_context +msgid "Context dictionary as Python expression, empty by default (Default: {})" +msgstr "" + +#. module: report_context +#: model:ir.model,name:report_context.model_ir_actions_report +msgid "ir.actions.report" +msgstr "" + From d329fffd1a38c80e865517bade8d7d3a8ca03b61 Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Tue, 2 Jul 2019 16:47:10 +0200 Subject: [PATCH 4/8] [12.0][MIG] report_context --- report_context/README.rst | 10 +++++----- report_context/__manifest__.py | 4 +--- report_context/static/description/index.html | 6 +++--- report_context/views/ir_actions_report.xml | 2 +- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/report_context/README.rst b/report_context/README.rst index e667f4cfa..8d78e3c25 100644 --- a/report_context/README.rst +++ b/report_context/README.rst @@ -14,13 +14,13 @@ Report Context :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github - :target: https://github.com/OCA/reporting-engine/tree/11.0/report_context + :target: https://github.com/OCA/reporting-engine/tree/12.0/report_context :alt: OCA/reporting-engine .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/reporting-engine-11-0/reporting-engine-11-0-report_context + :target: https://translation.odoo-community.org/projects/reporting-engine-12-0/reporting-engine-12-0-report_context :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/143/11.0 + :target: https://runbot.odoo-community.org/runbot/143/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -61,7 +61,7 @@ Bug Tracker 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -91,6 +91,6 @@ 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. +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/__manifest__.py b/report_context/__manifest__.py index 5c7fe7038..5bbf6de80 100644 --- a/report_context/__manifest__.py +++ b/report_context/__manifest__.py @@ -5,7 +5,7 @@ 'name': 'Report Context', 'summary': """ Adding context to reports""", - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'license': 'AGPL-3', 'author': 'Creu Blanca,Odoo Community Association (OCA)', 'website': 'https://github.com/OCA/reporting-engine', @@ -16,6 +16,4 @@ 'views/ir_actions_report.xml', 'data/config_parameter.xml', ], - 'demo': [ - ], } diff --git a/report_context/static/description/index.html b/report_context/static/description/index.html index a8e065209..f38f86e2f 100644 --- a/report_context/static/description/index.html +++ b/report_context/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runbot

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

@@ -409,7 +409,7 @@ all reports.

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.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -433,7 +433,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

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.

+

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/views/ir_actions_report.xml b/report_context/views/ir_actions_report.xml index 03f41852e..d0a313baa 100644 --- a/report_context/views/ir_actions_report.xml +++ b/report_context/views/ir_actions_report.xml @@ -4,7 +4,7 @@ - + ir.actions.report.context.form ir.actions.report From 07b55bca1c925196d67e7ef7aa93ebdefc665948 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 2 Aug 2019 08:21:00 +0000 Subject: [PATCH 5/8] [UPD] Update report_context.pot --- report_context/i18n/report_context.pot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/report_context/i18n/report_context.pot b/report_context/i18n/report_context.pot index 3993025ff..4d80c9b21 100644 --- a/report_context/i18n/report_context.pot +++ b/report_context/i18n/report_context.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" @@ -14,17 +14,17 @@ msgstr "" "Plural-Forms: \n" #. module: report_context -#: model:ir.model.fields,field_description:report_context.field_ir_act_report_xml_context +#: model:ir.model.fields,field_description:report_context.field_ir_actions_report__context msgid "Context Value" msgstr "" #. module: report_context -#: model:ir.model.fields,help:report_context.field_ir_act_report_xml_context +#: model:ir.model.fields,help:report_context.field_ir_actions_report__context msgid "Context dictionary as Python expression, empty by default (Default: {})" msgstr "" #. module: report_context #: model:ir.model,name:report_context.model_ir_actions_report -msgid "ir.actions.report" +msgid "Report Action" msgstr "" From 8de95362f94ebdb2fe6b98d4aae23d7034064038 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 2 Aug 2019 08:44:28 +0000 Subject: [PATCH 6/8] [UPD] README.rst --- report_context/static/description/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/report_context/static/description/index.html b/report_context/static/description/index.html index f38f86e2f..feb0724fd 100644 --- a/report_context/static/description/index.html +++ b/report_context/static/description/index.html @@ -3,7 +3,7 @@ - + Report Context