From 3e09f04d9346adf7f35b5502a52f10995d8d7a16 Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Mon, 18 Feb 2019 11:28:09 +0100 Subject: [PATCH 01/20] [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 0000000000..455a536e74 --- /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 0000000000..91c5580fed --- /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 0000000000..5c7fe7038f --- /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 0000000000..12a7e529b6 --- /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 0000000000..0536bc20b9 --- /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 0000000000..2f12ffb443 --- /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 0000000000..a248cf2162 --- /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 0000000000..6cf259c22d --- /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 0000000000..e59d51045c --- /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 0000000000..f3306e2d22 --- /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 0000000000..aae1802d6d --- /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 z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N 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 0000000000..9c66b90984 --- /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 0000000000..c72cd7abdf --- /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 0000000000..0f5d43a48f --- /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 0000000000..03f41852e8 --- /dev/null +++ b/report_context/views/ir_actions_report.xml @@ -0,0 +1,18 @@ + + + + + + + ir.actions.report.context.form + ir.actions.report + + + + + + + + + From 5954017aec3ce3567bab13a900fb4516df7e5ecd Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 25 Feb 2019 16:28:30 +0000 Subject: [PATCH 02/20] [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 455a536e74..e667f4cfa4 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 9c66b90984..a8e065209c 100644 --- a/report_context/static/description/index.html +++ b/report_context/static/description/index.html @@ -397,6 +397,12 @@

Usage

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 f89134af2e018ecb683407dba2ea8b2efa1fa0a3 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 25 Feb 2019 16:54:03 +0000 Subject: [PATCH 03/20] [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 0000000000..3993025ffb --- /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 ff466d0e2d36681ee936234564a5b07533a17f6f Mon Sep 17 00:00:00 2001 From: Jaime Arroyo Date: Tue, 2 Jul 2019 16:47:10 +0200 Subject: [PATCH 04/20] [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 e667f4cfa4..8d78e3c251 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 5c7fe7038f..5bbf6de805 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 a8e065209c..f38f86e2fd 100644 --- a/report_context/static/description/index.html +++ b/report_context/static/description/index.html @@ -367,7 +367,7 @@

Report Context

!! 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 @@

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.

@@ -433,7 +433,7 @@

Maintainers

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 03f41852e8..d0a313baa3 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 a739b3f92e9cdb962508b8898ba624a43bb0b5ea Mon Sep 17 00:00:00 2001 From: oca-travis Date: Fri, 2 Aug 2019 08:21:00 +0000 Subject: [PATCH 05/20] [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 3993025ffb..4d80c9b211 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 7155d0c98271140d02dfa6baa9f79e13f430b9c9 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 2 Aug 2019 08:44:28 +0000 Subject: [PATCH 06/20] [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 f38f86e2fd..feb0724fd7 100644 --- a/report_context/static/description/index.html +++ b/report_context/static/description/index.html @@ -3,7 +3,7 @@ - + Report Context