From 3a0c79cf891fdde041b8a8a6ffb9cf425d6207f5 Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Mon, 18 Feb 2019 11:28:09 +0100 Subject: [PATCH 1/7] [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 00000000..455a536e --- /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 00000000..91c5580f --- /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 00000000..5c7fe703 --- /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 00000000..12a7e529 --- /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 00000000..0536bc20 --- /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 00000000..2f12ffb4 --- /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 00000000..a248cf21 --- /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 00000000..6cf259c2 --- /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 00000000..e59d5104 --- /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 00000000..f3306e2d --- /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 00000000..aae1802d --- /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 00000000..9c66b909 --- /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 00000000..c72cd7ab --- /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 00000000..0f5d43a4 --- /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 00000000..03f41852 --- /dev/null +++ b/report_context/views/ir_actions_report.xml @@ -0,0 +1,18 @@ + + + + + + + ir.actions.report.context.form + ir.actions.report + + + + + + + + + From 422c2e8628a9054d4d36e156edc07cfd1ccc2417 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 25 Feb 2019 16:28:30 +0000 Subject: [PATCH 2/7] [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 455a536e..e667f4cf 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 9c66b909..a8e06520 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 8489d93ad6a456d6dd86ff016221175206ec5b41 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 25 Feb 2019 16:54:03 +0000 Subject: [PATCH 3/7] [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 00000000..3993025f --- /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 dfed6c889e5f01f406777fe15feecf85db7d0a66 Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Tue, 2 Jul 2019 16:47:10 +0200 Subject: [PATCH 4/7] [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 e667f4cf..8d78e3c2 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 5c7fe703..5bbf6de8 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 a8e06520..f38f86e2 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 03f41852..d0a313ba 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 6e9005c367e13ee312dbffc8df1b62fc76d49a30 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 2 Aug 2019 08:21:00 +0000 Subject: [PATCH 5/7] [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 3993025f..4d80c9b2 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 280766d68da48ff158c6d72e60aad5eb3b0d3328 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 2 Aug 2019 08:44:28 +0000 Subject: [PATCH 6/7] [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 f38f86e2..feb0724f 100644 --- a/report_context/static/description/index.html +++ b/report_context/static/description/index.html @@ -3,7 +3,7 @@ - + Report Context