From 652ff543b0c3db4dd0649de7a2bafc00dba4c985 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Tue, 28 May 2024 01:48:15 +0000 Subject: [PATCH 01/38] [ADD] report_text_format_option --- report_text_format_option/README.rst | 87 ++++ report_text_format_option/__init__.py | 1 + report_text_format_option/__manifest__.py | 14 + .../demo/report_demo.xml | 18 + report_text_format_option/models/__init__.py | 1 + .../models/ir_actions_report.py | 41 ++ .../readme/CONFIGURE.rst | 12 + .../readme/DESCRIPTION.rst | 1 + .../static/description/index.html | 430 ++++++++++++++++++ report_text_format_option/tests/__init__.py | 1 + .../tests/test_report_format_option.py | 54 +++ .../views/ir_actions_report_views.xml | 24 + 12 files changed, 684 insertions(+) create mode 100644 report_text_format_option/README.rst create mode 100644 report_text_format_option/__init__.py create mode 100644 report_text_format_option/__manifest__.py create mode 100644 report_text_format_option/demo/report_demo.xml create mode 100644 report_text_format_option/models/__init__.py create mode 100644 report_text_format_option/models/ir_actions_report.py create mode 100644 report_text_format_option/readme/CONFIGURE.rst create mode 100644 report_text_format_option/readme/DESCRIPTION.rst create mode 100644 report_text_format_option/static/description/index.html create mode 100644 report_text_format_option/tests/__init__.py create mode 100644 report_text_format_option/tests/test_report_format_option.py create mode 100644 report_text_format_option/views/ir_actions_report_views.xml diff --git a/report_text_format_option/README.rst b/report_text_format_option/README.rst new file mode 100644 index 0000000000..df94040d02 --- /dev/null +++ b/report_text_format_option/README.rst @@ -0,0 +1,87 @@ +========================= +Report Text Format Option +========================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:e3b9cc2a66291d03027c6100d82df8a6a0934f1802a392fe2ff1cad39557fe0d + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github + :target: https://github.com/OCA/reporting-engine/tree/16.0/report_text_format_option + :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-16-0/reporting-engine-16-0-report_text_format_option + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +In case the exported report should be encoded in another system than UTF-8, following +fields of the report record (*Settings > Technical > Reports*) should be populated accordingly. + +* Text Encoding: set an encoding system (such as cp932) +* Text Encode Error Handling: select 'Ignore' or 'Replace' as necessary. + * 'Ignore': in case of an encoding error, the problematic character will be removed from the exported file. + * 'Replace': in case of an encoding error, the problematic character will be replaced with '?' symbol. + * Leaving the field blank: in case of an encoding error, the report generation fails with an error message. +* Line Ending: Select the type of line ending, 'CRLF' or 'CR', as necessary. + * 'CRLF': 'Carriage Return' + 'Line Feed' (Windows) + * 'CR': 'Carriage Return' (classic Mac OS) + * Leaving this field blank defaults to using 'LF' (Line Feed), the default behavior of Odoo. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Quartile Limited + +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_text_format_option/__init__.py b/report_text_format_option/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/report_text_format_option/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/report_text_format_option/__manifest__.py b/report_text_format_option/__manifest__.py new file mode 100644 index 0000000000..e72d4a85fd --- /dev/null +++ b/report_text_format_option/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2024 Quartile Limited +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). +{ + "name": "Report Text Format Option", + "author": "Quartile Limited, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/reporting-engine", + "category": "Reporting", + "version": "16.0.1.0.0", + "license": "LGPL-3", + "depends": ["base"], + "data": ["views/ir_actions_report_views.xml"], + "demo": ["demo/report_demo.xml"], + "installable": True, +} diff --git a/report_text_format_option/demo/report_demo.xml b/report_text_format_option/demo/report_demo.xml new file mode 100644 index 0000000000..7fd6945283 --- /dev/null +++ b/report_text_format_option/demo/report_demo.xml @@ -0,0 +1,18 @@ + + + + Demo Text Report + res.partner + qweb-text + report_text_format_option.demo_report_template + report_text_format_option.demo_report_template + + + + + + diff --git a/report_text_format_option/models/__init__.py b/report_text_format_option/models/__init__.py new file mode 100644 index 0000000000..a248cf2162 --- /dev/null +++ b/report_text_format_option/models/__init__.py @@ -0,0 +1 @@ +from . import ir_actions_report diff --git a/report_text_format_option/models/ir_actions_report.py b/report_text_format_option/models/ir_actions_report.py new file mode 100644 index 0000000000..1350f57cb7 --- /dev/null +++ b/report_text_format_option/models/ir_actions_report.py @@ -0,0 +1,41 @@ +# Copyright 2024 Quartile Limited +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from odoo import api, fields, models + + +class IrActionReport(models.Model): + _inherit = "ir.actions.report" + + text_encoding = fields.Char( + help="Encoding to be applied to the generated Text file. e.g. cp932" + ) + text_encode_error_handling = fields.Selection( + selection=[("ignore", "Ignore"), ("replace", "Replace")], + help="If nothing is selected, text export will fail with an error message when " + "there is a character that fail to be encoded.", + ) + line_ending = fields.Selection( + [("crlf", "CRLF (\\r\\n)"), ("cr", "CR (\\r)")], + help="Select the type of line ending in case the report needs " + "to be output with other line ending than 'LF'.", + ) + + @api.model + def _render_qweb_text(self, report_ref, docids, data=None): + content, content_type = super()._render_qweb_text(report_ref, docids, data) + report = self._get_report(report_ref) + if not report.text_encoding and not report.line_ending: + return content, content_type + content_str = content.decode("utf-8") + if report.line_ending == "crlf": + content_str = content_str.replace("\n", "\r\n") + elif report.line_ending == "cr": + content_str = content_str.replace("\n", "\r") + # If specific encoding is set on the report, use it; otherwise, fallback to utf-8 + encoding = report.text_encoding or "utf-8" + encode_options = {} + if report.text_encode_error_handling: + encode_options["errors"] = report.text_encode_error_handling + content = content_str.encode(encoding, **encode_options) + return content, content_type diff --git a/report_text_format_option/readme/CONFIGURE.rst b/report_text_format_option/readme/CONFIGURE.rst new file mode 100644 index 0000000000..40df853064 --- /dev/null +++ b/report_text_format_option/readme/CONFIGURE.rst @@ -0,0 +1,12 @@ +In case the exported report should be encoded in another system than UTF-8, following +fields of the report record (*Settings > Technical > Reports*) should be populated accordingly. + +* Text Encoding: set an encoding system (such as cp932) +* Text Encode Error Handling: select 'Ignore' or 'Replace' as necessary. + * 'Ignore': in case of an encoding error, the problematic character will be removed from the exported file. + * 'Replace': in case of an encoding error, the problematic character will be replaced with '?' symbol. + * Leaving the field blank: in case of an encoding error, the report generation fails with an error message. +* Line Ending: Select the type of line ending, 'CRLF' or 'CR', as necessary. + * 'CRLF': 'Carriage Return' + 'Line Feed' (Windows) + * 'CR': 'Carriage Return' (classic Mac OS) + * Leaving this field blank defaults to using 'LF' (Line Feed), the default behavior of Odoo. diff --git a/report_text_format_option/readme/DESCRIPTION.rst b/report_text_format_option/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..3bc8739d6c --- /dev/null +++ b/report_text_format_option/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports. diff --git a/report_text_format_option/static/description/index.html b/report_text_format_option/static/description/index.html new file mode 100644 index 0000000000..8d30575aa8 --- /dev/null +++ b/report_text_format_option/static/description/index.html @@ -0,0 +1,430 @@ + + + + + +Report Text Format Option + + + +
+

Report Text Format Option

+ + +

Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

+

This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports.

+

Table of contents

+ +
+

Configuration

+

In case the exported report should be encoded in another system than UTF-8, following +fields of the report record (Settings > Technical > Reports) should be populated accordingly.

+
    +
  • Text Encoding: set an encoding system (such as cp932)
  • +
  • Text Encode Error Handling: select ‘Ignore’ or ‘Replace’ as necessary. +* ‘Ignore’: in case of an encoding error, the problematic character will be removed from the exported file. +* ‘Replace’: in case of an encoding error, the problematic character will be replaced with ‘?’ symbol. +* Leaving the field blank: in case of an encoding error, the report generation fails with an error message.
  • +
  • Line Ending: Select the type of line ending, ‘CRLF’ or ‘CR’, as necessary. +* ‘CRLF’: ‘Carriage Return’ + ‘Line Feed’ (Windows) +* ‘CR’: ‘Carriage Return’ (classic Mac OS) +* Leaving this field blank defaults to using ‘LF’ (Line Feed), the default behavior of Odoo.
  • +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Quartile Limited
  • +
+
+
+

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_text_format_option/tests/__init__.py b/report_text_format_option/tests/__init__.py new file mode 100644 index 0000000000..623710424b --- /dev/null +++ b/report_text_format_option/tests/__init__.py @@ -0,0 +1 @@ +from . import test_report_format_option diff --git a/report_text_format_option/tests/test_report_format_option.py b/report_text_format_option/tests/test_report_format_option.py new file mode 100644 index 0000000000..e57a3a4e51 --- /dev/null +++ b/report_text_format_option/tests/test_report_format_option.py @@ -0,0 +1,54 @@ +# Copyright 2024 Quartile Limited +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + + +from odoo.tests.common import TransactionCase + + +class TestReportFormatOption(TransactionCase): + @classmethod + def setUpClass(cls): + super(TestReportFormatOption, cls).setUpClass() + cls.demo_report = cls.env.ref( + "report_text_format_option.action_report_demo" + ).with_context(lang="en_US") + cls.partner = cls.env["res.partner"].create({"name": "Odoo Test Partner"}) + + def test_report_default_encoding(self): + content, content_type = self.demo_report._render_qweb_text( + self.demo_report.id, [self.partner.id] + ) + self.assertTrue(content, "Report content should not be empty") + + def test_report_encoding_crlf(self): + # Set line ending to CRLF + self.demo_report.line_ending = "crlf" + content, content_type = self.demo_report._render_qweb_text( + self.demo_report.id, [self.partner.id] + ) + content_str = content.decode("utf-8") + self.assertIn("\r\n", content_str, "Line endings should be CRLF") + + def test_report_encoding_cr(self): + # Set line ending to CR + self.demo_report.line_ending = "cr" + content, content_type = self.demo_report._render_qweb_text( + self.demo_report.id, [self.partner.id] + ) + content_str = content.decode("utf-8") + self.assertIn("\r", content_str, "Line endings should be CR and not contain LF") + + def test_report_encoding_shiftjis(self): + # Example: Testing with Shift-JIS encoding for Japanese characters + self.demo_report.text_encoding = "shift_jis" + self.partner.name = "テストパートナー" + content, content_type = self.demo_report._render_qweb_text( + self.demo_report.id, [self.partner.id] + ) + # Decode content to verify Japanese characters are correctly handled + content_str = content.decode("shift_jis") + self.assertIn( + "テストパートナー", + content_str, + "Japanese characters should be correctly encoded in Shift-JIS", + ) diff --git a/report_text_format_option/views/ir_actions_report_views.xml b/report_text_format_option/views/ir_actions_report_views.xml new file mode 100644 index 0000000000..9c8b216fdb --- /dev/null +++ b/report_text_format_option/views/ir_actions_report_views.xml @@ -0,0 +1,24 @@ + + + + ir.actions.report + ir.actions.report + + + + + + + + + + From d3e47960911c8c1714480d32ea886023d1b770b5 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 6 Jun 2024 09:02:27 +0000 Subject: [PATCH 02/38] [UPD] Update report_text_format_option.pot --- .../i18n/report_text_format_option.pot | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 report_text_format_option/i18n/report_text_format_option.pot diff --git a/report_text_format_option/i18n/report_text_format_option.pot b/report_text_format_option/i18n/report_text_format_option.pot new file mode 100644 index 0000000000..6afc1ec3c6 --- /dev/null +++ b/report_text_format_option/i18n/report_text_format_option.pot @@ -0,0 +1,83 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * report_text_format_option +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.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_text_format_option +#: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__line_ending__cr +msgid "CR (\\r)" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__line_ending__crlf +msgid "CRLF (\\r\\n)" +msgstr "" + +#. module: report_text_format_option +#: model:ir.actions.report,name:report_text_format_option.action_report_demo +msgid "Demo Text Report" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__text_encoding +msgid "Encoding to be applied to the generated Text file. e.g. cp932" +msgstr "" + +#. module: report_text_format_option +#: model_terms:ir.ui.view,arch_db:report_text_format_option.demo_report_template +msgid "Hello," +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__text_encode_error_handling +msgid "" +"If nothing is selected, text export will fail with an error message when " +"there is a character that fail to be encoded." +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__text_encode_error_handling__ignore +msgid "Ignore" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__line_ending +msgid "Line Ending" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__text_encode_error_handling__replace +msgid "Replace" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model,name:report_text_format_option.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__line_ending +msgid "" +"Select the type of line ending in case the report needs to be output with " +"other line ending than 'LF'." +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__text_encode_error_handling +msgid "Text Encode Error Handling" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__text_encoding +msgid "Text Encoding" +msgstr "" From 73ca8672cedc9f1d46285dcef9619a905568a977 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 6 Jun 2024 09:06:46 +0000 Subject: [PATCH 03/38] [BOT] post-merge updates --- report_text_format_option/README.rst | 2 +- .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 report_text_format_option/static/description/icon.png diff --git a/report_text_format_option/README.rst b/report_text_format_option/README.rst index df94040d02..cde95e98a5 100644 --- a/report_text_format_option/README.rst +++ b/report_text_format_option/README.rst @@ -7,7 +7,7 @@ Report Text Format Option !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:e3b9cc2a66291d03027c6100d82df8a6a0934f1802a392fe2ff1cad39557fe0d + !! source digest: sha256:37b5b67f110dcd3bf227357ada38dfcd3592d686401c059f8a337ed56881ffca !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/report_text_format_option/static/description/icon.png b/report_text_format_option/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_text_format_option/static/description/index.html b/report_text_format_option/static/description/index.html index 8d30575aa8..47da04a553 100644 --- a/report_text_format_option/static/description/index.html +++ b/report_text_format_option/static/description/index.html @@ -366,7 +366,7 @@

Report Text Format Option

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:e3b9cc2a66291d03027c6100d82df8a6a0934f1802a392fe2ff1cad39557fe0d +!! source digest: sha256:37b5b67f110dcd3bf227357ada38dfcd3592d686401c059f8a337ed56881ffca !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports.

From b6a38e073c94bcd89ed74c16cc44642dc804dc47 Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 7 Jun 2024 10:20:05 +0000 Subject: [PATCH 04/38] Added translation using Weblate (Italian) --- report_text_format_option/i18n/it.po | 84 ++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 report_text_format_option/i18n/it.po diff --git a/report_text_format_option/i18n/it.po b/report_text_format_option/i18n/it.po new file mode 100644 index 0000000000..eeb863ee71 --- /dev/null +++ b/report_text_format_option/i18n/it.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * report_text_format_option +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: report_text_format_option +#: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__line_ending__cr +msgid "CR (\\r)" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__line_ending__crlf +msgid "CRLF (\\r\\n)" +msgstr "" + +#. module: report_text_format_option +#: model:ir.actions.report,name:report_text_format_option.action_report_demo +msgid "Demo Text Report" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__text_encoding +msgid "Encoding to be applied to the generated Text file. e.g. cp932" +msgstr "" + +#. module: report_text_format_option +#: model_terms:ir.ui.view,arch_db:report_text_format_option.demo_report_template +msgid "Hello," +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__text_encode_error_handling +msgid "" +"If nothing is selected, text export will fail with an error message when " +"there is a character that fail to be encoded." +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__text_encode_error_handling__ignore +msgid "Ignore" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__line_ending +msgid "Line Ending" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__text_encode_error_handling__replace +msgid "Replace" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model,name:report_text_format_option.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__line_ending +msgid "" +"Select the type of line ending in case the report needs to be output with " +"other line ending than 'LF'." +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__text_encode_error_handling +msgid "Text Encode Error Handling" +msgstr "" + +#. module: report_text_format_option +#: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__text_encoding +msgid "Text Encoding" +msgstr "" From 7986cf8f4db8284d2838be146df1b35ba12ff7b0 Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 7 Jun 2024 10:26:43 +0000 Subject: [PATCH 05/38] Translated using Weblate (Italian) Currently translated at 100.0% (13 of 13 strings) Translation: reporting-engine-16.0/reporting-engine-16.0-report_text_format_option Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-16-0/reporting-engine-16-0-report_text_format_option/it/ --- report_text_format_option/i18n/it.po | 31 ++++++++++++++++++---------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/report_text_format_option/i18n/it.po b/report_text_format_option/i18n/it.po index eeb863ee71..80b9c0de38 100644 --- a/report_text_format_option/i18n/it.po +++ b/report_text_format_option/i18n/it.po @@ -6,38 +6,42 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-06-07 12:34+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: report_text_format_option #: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__line_ending__cr msgid "CR (\\r)" -msgstr "" +msgstr "CR (\\r)" #. module: report_text_format_option #: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__line_ending__crlf msgid "CRLF (\\r\\n)" msgstr "" +"CRLF (\\r\\n" +")" #. module: report_text_format_option #: model:ir.actions.report,name:report_text_format_option.action_report_demo msgid "Demo Text Report" -msgstr "" +msgstr "Resoconto testo demo" #. module: report_text_format_option #: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__text_encoding msgid "Encoding to be applied to the generated Text file. e.g. cp932" -msgstr "" +msgstr "Codifica da applicare al file testo generato. Es. cp932" #. module: report_text_format_option #: model_terms:ir.ui.view,arch_db:report_text_format_option.demo_report_template msgid "Hello," -msgstr "" +msgstr "Salve," #. module: report_text_format_option #: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__text_encode_error_handling @@ -45,26 +49,29 @@ msgid "" "If nothing is selected, text export will fail with an error message when " "there is a character that fail to be encoded." msgstr "" +"Se non viene selezionato nulla, l'esportazione del testo fallirà con un " +"messaggio di errore quando è presente un carattere che non può essere " +"codificato." #. module: report_text_format_option #: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__text_encode_error_handling__ignore msgid "Ignore" -msgstr "" +msgstr "Ignora" #. module: report_text_format_option #: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__line_ending msgid "Line Ending" -msgstr "" +msgstr "Fine riga" #. module: report_text_format_option #: model:ir.model.fields.selection,name:report_text_format_option.selection__ir_actions_report__text_encode_error_handling__replace msgid "Replace" -msgstr "" +msgstr "Sostituisce" #. module: report_text_format_option #: model:ir.model,name:report_text_format_option.model_ir_actions_report msgid "Report Action" -msgstr "" +msgstr "Azione resoconto" #. module: report_text_format_option #: model:ir.model.fields,help:report_text_format_option.field_ir_actions_report__line_ending @@ -72,13 +79,15 @@ msgid "" "Select the type of line ending in case the report needs to be output with " "other line ending than 'LF'." msgstr "" +"Selezionare il tipo di fine riga nel caso il resoconto richieda di essere " +"emesso con fine riga diverso da 'LF'." #. module: report_text_format_option #: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__text_encode_error_handling msgid "Text Encode Error Handling" -msgstr "" +msgstr "Gestione errore codifica testo" #. module: report_text_format_option #: model:ir.model.fields,field_description:report_text_format_option.field_ir_actions_report__text_encoding msgid "Text Encoding" -msgstr "" +msgstr "Codifica testo" From c1a49ee002e2b18d160b3128c04a5d8e7d6665f4 Mon Sep 17 00:00:00 2001 From: Edilio Escalona Almira Date: Mon, 1 Sep 2025 18:52:57 -0500 Subject: [PATCH 06/38] [IMP] report_text_format_option: pre-commit auto fixes --- report_text_format_option/README.rst | 48 +++++++++++------- report_text_format_option/pyproject.toml | 3 ++ report_text_format_option/readme/CONFIGURE.md | 18 +++++++ .../readme/CONFIGURE.rst | 12 ----- .../{DESCRIPTION.rst => DESCRIPTION.md} | 3 +- .../static/description/index.html | 50 ++++++++++++------- .../tests/test_report_format_option.py | 2 +- 7 files changed, 85 insertions(+), 51 deletions(-) create mode 100644 report_text_format_option/pyproject.toml create mode 100644 report_text_format_option/readme/CONFIGURE.md delete mode 100644 report_text_format_option/readme/CONFIGURE.rst rename report_text_format_option/readme/{DESCRIPTION.rst => DESCRIPTION.md} (50%) diff --git a/report_text_format_option/README.rst b/report_text_format_option/README.rst index cde95e98a5..d438f49b93 100644 --- a/report_text_format_option/README.rst +++ b/report_text_format_option/README.rst @@ -17,18 +17,19 @@ Report Text Format Option :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github - :target: https://github.com/OCA/reporting-engine/tree/16.0/report_text_format_option + :target: https://github.com/OCA/reporting-engine/tree/17.0/report_text_format_option :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-16-0/reporting-engine-16-0-report_text_format_option + :target: https://translation.odoo-community.org/projects/reporting-engine-17-0/reporting-engine-17-0-report_text_format_option :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports. +This is a technical module designed to add encoding fields to the +ir.actions.report model and is applied to Text type reports. **Table of contents** @@ -38,18 +39,27 @@ This is a technical module designed to add encoding fields to the ir.actions.rep Configuration ============= -In case the exported report should be encoded in another system than UTF-8, following -fields of the report record (*Settings > Technical > Reports*) should be populated accordingly. +In case the exported report should be encoded in another system than +UTF-8, following fields of the report record (*Settings > Technical > +Reports*) should be populated accordingly. -* Text Encoding: set an encoding system (such as cp932) -* Text Encode Error Handling: select 'Ignore' or 'Replace' as necessary. - * 'Ignore': in case of an encoding error, the problematic character will be removed from the exported file. - * 'Replace': in case of an encoding error, the problematic character will be replaced with '?' symbol. - * Leaving the field blank: in case of an encoding error, the report generation fails with an error message. -* Line Ending: Select the type of line ending, 'CRLF' or 'CR', as necessary. - * 'CRLF': 'Carriage Return' + 'Line Feed' (Windows) - * 'CR': 'Carriage Return' (classic Mac OS) - * Leaving this field blank defaults to using 'LF' (Line Feed), the default behavior of Odoo. +- Text Encoding: set an encoding system (such as cp932) +- Text Encode Error Handling: select 'Ignore' or 'Replace' as necessary. + + - 'Ignore': in case of an encoding error, the problematic character + will be removed from the exported file. + - 'Replace': in case of an encoding error, the problematic character + will be replaced with '?' symbol. + - Leaving the field blank: in case of an encoding error, the report + generation fails with an error message. + +- Line Ending: Select the type of line ending, 'CRLF' or 'CR', as + necessary. + + - 'CRLF': 'Carriage Return' + 'Line Feed' (Windows) + - 'CR': 'Carriage Return' (classic Mac OS) + - Leaving this field blank defaults to using 'LF' (Line Feed), the + default behavior of Odoo. Bug Tracker =========== @@ -57,7 +67,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -65,12 +75,12 @@ Credits ======= Authors -~~~~~~~ +------- * Quartile Limited Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -82,6 +92,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_text_format_option/pyproject.toml b/report_text_format_option/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/report_text_format_option/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/report_text_format_option/readme/CONFIGURE.md b/report_text_format_option/readme/CONFIGURE.md new file mode 100644 index 0000000000..53a26fe27e --- /dev/null +++ b/report_text_format_option/readme/CONFIGURE.md @@ -0,0 +1,18 @@ +In case the exported report should be encoded in another system than +UTF-8, following fields of the report record (*Settings \> Technical \> +Reports*) should be populated accordingly. + +- Text Encoding: set an encoding system (such as cp932) +- Text Encode Error Handling: select 'Ignore' or 'Replace' as necessary. + - 'Ignore': in case of an encoding error, the problematic character + will be removed from the exported file. + - 'Replace': in case of an encoding error, the problematic character + will be replaced with '?' symbol. + - Leaving the field blank: in case of an encoding error, the report + generation fails with an error message. +- Line Ending: Select the type of line ending, 'CRLF' or 'CR', as + necessary. + - 'CRLF': 'Carriage Return' + 'Line Feed' (Windows) + - 'CR': 'Carriage Return' (classic Mac OS) + - Leaving this field blank defaults to using 'LF' (Line Feed), the + default behavior of Odoo. diff --git a/report_text_format_option/readme/CONFIGURE.rst b/report_text_format_option/readme/CONFIGURE.rst deleted file mode 100644 index 40df853064..0000000000 --- a/report_text_format_option/readme/CONFIGURE.rst +++ /dev/null @@ -1,12 +0,0 @@ -In case the exported report should be encoded in another system than UTF-8, following -fields of the report record (*Settings > Technical > Reports*) should be populated accordingly. - -* Text Encoding: set an encoding system (such as cp932) -* Text Encode Error Handling: select 'Ignore' or 'Replace' as necessary. - * 'Ignore': in case of an encoding error, the problematic character will be removed from the exported file. - * 'Replace': in case of an encoding error, the problematic character will be replaced with '?' symbol. - * Leaving the field blank: in case of an encoding error, the report generation fails with an error message. -* Line Ending: Select the type of line ending, 'CRLF' or 'CR', as necessary. - * 'CRLF': 'Carriage Return' + 'Line Feed' (Windows) - * 'CR': 'Carriage Return' (classic Mac OS) - * Leaving this field blank defaults to using 'LF' (Line Feed), the default behavior of Odoo. diff --git a/report_text_format_option/readme/DESCRIPTION.rst b/report_text_format_option/readme/DESCRIPTION.md similarity index 50% rename from report_text_format_option/readme/DESCRIPTION.rst rename to report_text_format_option/readme/DESCRIPTION.md index 3bc8739d6c..b85c101397 100644 --- a/report_text_format_option/readme/DESCRIPTION.rst +++ b/report_text_format_option/readme/DESCRIPTION.md @@ -1 +1,2 @@ -This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports. +This is a technical module designed to add encoding fields to the +ir.actions.report model and is applied to Text type reports. diff --git a/report_text_format_option/static/description/index.html b/report_text_format_option/static/description/index.html index 47da04a553..275c7774e4 100644 --- a/report_text_format_option/static/description/index.html +++ b/report_text_format_option/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -368,8 +369,9 @@

Report Text Format Option

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:37b5b67f110dcd3bf227357ada38dfcd3592d686401c059f8a337ed56881ffca !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

-

This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports.

+

Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

+

This is a technical module designed to add encoding fields to the +ir.actions.report model and is applied to Text type reports.

Table of contents

    @@ -384,18 +386,28 @@

    Report Text Format Option

Configuration

-

In case the exported report should be encoded in another system than UTF-8, following -fields of the report record (Settings > Technical > Reports) should be populated accordingly.

+

In case the exported report should be encoded in another system than +UTF-8, following fields of the report record (Settings > Technical > +Reports) should be populated accordingly.

  • Text Encoding: set an encoding system (such as cp932)
  • -
  • Text Encode Error Handling: select ‘Ignore’ or ‘Replace’ as necessary. -* ‘Ignore’: in case of an encoding error, the problematic character will be removed from the exported file. -* ‘Replace’: in case of an encoding error, the problematic character will be replaced with ‘?’ symbol. -* Leaving the field blank: in case of an encoding error, the report generation fails with an error message.
  • -
  • Line Ending: Select the type of line ending, ‘CRLF’ or ‘CR’, as necessary. -* ‘CRLF’: ‘Carriage Return’ + ‘Line Feed’ (Windows) -* ‘CR’: ‘Carriage Return’ (classic Mac OS) -* Leaving this field blank defaults to using ‘LF’ (Line Feed), the default behavior of Odoo.
  • +
  • Text Encode Error Handling: select ‘Ignore’ or ‘Replace’ as necessary.
      +
    • ‘Ignore’: in case of an encoding error, the problematic character +will be removed from the exported file.
    • +
    • ‘Replace’: in case of an encoding error, the problematic character +will be replaced with ‘?’ symbol.
    • +
    • Leaving the field blank: in case of an encoding error, the report +generation fails with an error message.
    • +
    +
  • +
  • Line Ending: Select the type of line ending, ‘CRLF’ or ‘CR’, as +necessary.
      +
    • ‘CRLF’: ‘Carriage Return’ + ‘Line Feed’ (Windows)
    • +
    • ‘CR’: ‘Carriage Return’ (classic Mac OS)
    • +
    • Leaving this field blank defaults to using ‘LF’ (Line Feed), the +default behavior of Odoo.
    • +
    +
@@ -403,7 +415,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 to smash it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -417,11 +429,13 @@

Authors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +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.

+

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_text_format_option/tests/test_report_format_option.py b/report_text_format_option/tests/test_report_format_option.py index e57a3a4e51..a7d27ead8d 100644 --- a/report_text_format_option/tests/test_report_format_option.py +++ b/report_text_format_option/tests/test_report_format_option.py @@ -8,7 +8,7 @@ class TestReportFormatOption(TransactionCase): @classmethod def setUpClass(cls): - super(TestReportFormatOption, cls).setUpClass() + super().setUpClass() cls.demo_report = cls.env.ref( "report_text_format_option.action_report_demo" ).with_context(lang="en_US") From c349f9fecaf00d2b4601e06b249722de4cbfb658 Mon Sep 17 00:00:00 2001 From: Edilio Escalona Almira Date: Mon, 1 Sep 2025 18:57:14 -0500 Subject: [PATCH 07/38] [MIG] report_text_format_option: Migration to 17.0 --- report_text_format_option/__manifest__.py | 2 +- .../models/ir_actions_report.py | 3 ++- .../views/ir_actions_report_views.xml | 12 +++--------- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/report_text_format_option/__manifest__.py b/report_text_format_option/__manifest__.py index e72d4a85fd..7314fcc508 100644 --- a/report_text_format_option/__manifest__.py +++ b/report_text_format_option/__manifest__.py @@ -5,7 +5,7 @@ "author": "Quartile Limited, Odoo Community Association (OCA)", "website": "https://github.com/OCA/reporting-engine", "category": "Reporting", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "license": "LGPL-3", "depends": ["base"], "data": ["views/ir_actions_report_views.xml"], diff --git a/report_text_format_option/models/ir_actions_report.py b/report_text_format_option/models/ir_actions_report.py index 1350f57cb7..cac12cfd16 100644 --- a/report_text_format_option/models/ir_actions_report.py +++ b/report_text_format_option/models/ir_actions_report.py @@ -32,7 +32,8 @@ def _render_qweb_text(self, report_ref, docids, data=None): content_str = content_str.replace("\n", "\r\n") elif report.line_ending == "cr": content_str = content_str.replace("\n", "\r") - # If specific encoding is set on the report, use it; otherwise, fallback to utf-8 + # If specific encoding is set on the report, + # use it; otherwise, fallback to utf-8 encoding = report.text_encoding or "utf-8" encode_options = {} if report.text_encode_error_handling: diff --git a/report_text_format_option/views/ir_actions_report_views.xml b/report_text_format_option/views/ir_actions_report_views.xml index 9c8b216fdb..91ad619b49 100644 --- a/report_text_format_option/views/ir_actions_report_views.xml +++ b/report_text_format_option/views/ir_actions_report_views.xml @@ -6,18 +6,12 @@ - + - + From 0d51531d5f592f7ee5c4254205fe20928b9b5df2 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 10 Sep 2025 14:23:12 +0000 Subject: [PATCH 08/38] [UPD] Update report_text_format_option.pot --- report_text_format_option/i18n/report_text_format_option.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/report_text_format_option/i18n/report_text_format_option.pot b/report_text_format_option/i18n/report_text_format_option.pot index 6afc1ec3c6..d51b8fd125 100644 --- a/report_text_format_option/i18n/report_text_format_option.pot +++ b/report_text_format_option/i18n/report_text_format_option.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From 8afe8b9be391886505a50b02859c20cf4735c996 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 10 Sep 2025 14:27:23 +0000 Subject: [PATCH 09/38] [BOT] post-merge updates --- report_text_format_option/README.rst | 8 ++++-- .../static/description/index.html | 26 ++++++++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/report_text_format_option/README.rst b/report_text_format_option/README.rst index d438f49b93..c7cfddf47d 100644 --- a/report_text_format_option/README.rst +++ b/report_text_format_option/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ========================= Report Text Format Option ========================= @@ -7,13 +11,13 @@ Report Text Format Option !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:37b5b67f110dcd3bf227357ada38dfcd3592d686401c059f8a337ed56881ffca + !! source digest: sha256:fd45d700b6b4a6ecf0ec20d05ceb159dca5c9671a5d495b07e028dbeacd79a1e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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-LGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github diff --git a/report_text_format_option/static/description/index.html b/report_text_format_option/static/description/index.html index 275c7774e4..0ccf093a0f 100644 --- a/report_text_format_option/static/description/index.html +++ b/report_text_format_option/static/description/index.html @@ -3,7 +3,7 @@ -Report Text Format Option +README.rst -
-

Report Text Format Option

+
+ + +Odoo Community Association + +
+

Report Text Format Option

-

Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

+

Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports.

Table of contents

@@ -385,7 +390,7 @@

Report Text Format Option

-

Configuration

+

Configuration

In case the exported report should be encoded in another system than UTF-8, following fields of the report record (Settings > Technical > Reports) should be populated accordingly.

@@ -411,7 +416,7 @@

Configuration

-

Bug Tracker

+

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 to smash it by providing a detailed and welcomed @@ -419,15 +424,15 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Quartile Limited
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -440,5 +445,6 @@

Maintainers

+
From e8e4155cb9da839d0a78a32cdd7954f457f346a8 Mon Sep 17 00:00:00 2001 From: Aungkokolin1997 Date: Wed, 19 Nov 2025 08:29:16 +0000 Subject: [PATCH 10/38] [MIG] report_text_format_option: Migration to 18.0 --- report_text_format_option/README.rst | 66 ++++++++++++------- report_text_format_option/__manifest__.py | 7 +- .../models/ir_actions_report.py | 2 +- .../readme/CONTRIBUTORS.md | 3 + .../static/description/index.html | 48 ++++++++------ .../tests/test_report_format_option.py | 2 +- 6 files changed, 78 insertions(+), 50 deletions(-) create mode 100644 report_text_format_option/readme/CONTRIBUTORS.md diff --git a/report_text_format_option/README.rst b/report_text_format_option/README.rst index c7cfddf47d..a000071d01 100644 --- a/report_text_format_option/README.rst +++ b/report_text_format_option/README.rst @@ -1,7 +1,3 @@ -.. image:: https://odoo-community.org/readme-banner-image - :target: https://odoo-community.org/get-involved?utm_source=readme - :alt: Odoo Community Association - ========================= Report Text Format Option ========================= @@ -17,17 +13,17 @@ Report Text Format Option .. |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/license-LGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github - :target: https://github.com/OCA/reporting-engine/tree/17.0/report_text_format_option + :target: https://github.com/OCA/reporting-engine/tree/18.0/report_text_format_option :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-17-0/reporting-engine-17-0-report_text_format_option + :target: https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-report_text_format_option :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -47,23 +43,24 @@ In case the exported report should be encoded in another system than UTF-8, following fields of the report record (*Settings > Technical > Reports*) should be populated accordingly. -- Text Encoding: set an encoding system (such as cp932) -- Text Encode Error Handling: select 'Ignore' or 'Replace' as necessary. +- Text Encoding: set an encoding system (such as cp932) +- Text Encode Error Handling: select 'Ignore' or 'Replace' as + necessary. - - 'Ignore': in case of an encoding error, the problematic character - will be removed from the exported file. - - 'Replace': in case of an encoding error, the problematic character - will be replaced with '?' symbol. - - Leaving the field blank: in case of an encoding error, the report - generation fails with an error message. + - 'Ignore': in case of an encoding error, the problematic character + will be removed from the exported file. + - 'Replace': in case of an encoding error, the problematic character + will be replaced with '?' symbol. + - Leaving the field blank: in case of an encoding error, the report + generation fails with an error message. -- Line Ending: Select the type of line ending, 'CRLF' or 'CR', as - necessary. +- Line Ending: Select the type of line ending, 'CRLF' or 'CR', as + necessary. - - 'CRLF': 'Carriage Return' + 'Line Feed' (Windows) - - 'CR': 'Carriage Return' (classic Mac OS) - - Leaving this field blank defaults to using 'LF' (Line Feed), the - default behavior of Odoo. + - 'CRLF': 'Carriage Return' + 'Line Feed' (Windows) + - 'CR': 'Carriage Return' (classic Mac OS) + - Leaving this field blank defaults to using 'LF' (Line Feed), the + default behavior of Odoo. Bug Tracker =========== @@ -71,7 +68,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -81,7 +78,15 @@ Credits Authors ------- -* Quartile Limited +* Quartile + +Contributors +------------ + +- Quartile + + - Aung Ko Ko Lin + - Yoshi Tashiro Maintainers ----------- @@ -96,6 +101,17 @@ 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. +.. |maintainer-yostashiro| image:: https://github.com/yostashiro.png?size=40px + :target: https://github.com/yostashiro + :alt: yostashiro +.. |maintainer-aungkokolin1997| image:: https://github.com/aungkokolin1997.png?size=40px + :target: https://github.com/aungkokolin1997 + :alt: aungkokolin1997 + +Current `maintainers `__: + +|maintainer-yostashiro| |maintainer-aungkokolin1997| + +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_text_format_option/__manifest__.py b/report_text_format_option/__manifest__.py index 7314fcc508..21eab39b8f 100644 --- a/report_text_format_option/__manifest__.py +++ b/report_text_format_option/__manifest__.py @@ -1,14 +1,15 @@ -# Copyright 2024 Quartile Limited +# Copyright 2024 Quartile (https://www.quartile.co) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). { "name": "Report Text Format Option", - "author": "Quartile Limited, Odoo Community Association (OCA)", + "author": "Quartile, Odoo Community Association (OCA)", "website": "https://github.com/OCA/reporting-engine", "category": "Reporting", - "version": "17.0.1.0.0", + "version": "18.0.1.0.0", "license": "LGPL-3", "depends": ["base"], "data": ["views/ir_actions_report_views.xml"], + "maintainers": ["yostashiro", "aungkokolin1997"], "demo": ["demo/report_demo.xml"], "installable": True, } diff --git a/report_text_format_option/models/ir_actions_report.py b/report_text_format_option/models/ir_actions_report.py index cac12cfd16..a4a9fe91fc 100644 --- a/report_text_format_option/models/ir_actions_report.py +++ b/report_text_format_option/models/ir_actions_report.py @@ -1,4 +1,4 @@ -# Copyright 2024 Quartile Limited +# Copyright 2024 Quartile (https://www.quartile.co) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). from odoo import api, fields, models diff --git a/report_text_format_option/readme/CONTRIBUTORS.md b/report_text_format_option/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..f6444ad9ec --- /dev/null +++ b/report_text_format_option/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- Quartile \<\> + - Aung Ko Ko Lin + - Yoshi Tashiro diff --git a/report_text_format_option/static/description/index.html b/report_text_format_option/static/description/index.html index 0ccf093a0f..4807800616 100644 --- a/report_text_format_option/static/description/index.html +++ b/report_text_format_option/static/description/index.html @@ -3,7 +3,7 @@ -README.rst +Report Text Format Option -
+
+

Report Text Format Option

- - -Odoo Community Association - -
-

Report Text Format Option

-

Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

+

Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports.

Table of contents

@@ -384,19 +379,21 @@

Report Text Format Option

  • Bug Tracker
  • Credits
  • -

    Configuration

    +

    Configuration

    In case the exported report should be encoded in another system than UTF-8, following fields of the report record (Settings > Technical > Reports) should be populated accordingly.

    • Text Encoding: set an encoding system (such as cp932)
    • -
    • Text Encode Error Handling: select ‘Ignore’ or ‘Replace’ as necessary.
        +
      • Text Encode Error Handling: select ‘Ignore’ or ‘Replace’ as +necessary.
        • ‘Ignore’: in case of an encoding error, the problematic character will be removed from the exported file.
        • ‘Replace’: in case of an encoding error, the problematic character @@ -416,23 +413,33 @@

          Configuration

    -

    Bug Tracker

    +

    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 to smash it by providing a detailed and welcomed -feedback.

    +feedback.

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

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

      -
    • Quartile Limited
    • +
    • Quartile
    • +
    +
    +
    +

    Contributors

    +
    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -440,11 +447,12 @@

    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.

    +

    Current maintainers:

    +

    yostashiro aungkokolin1997

    +

    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_text_format_option/tests/test_report_format_option.py b/report_text_format_option/tests/test_report_format_option.py index a7d27ead8d..ccc910c7ac 100644 --- a/report_text_format_option/tests/test_report_format_option.py +++ b/report_text_format_option/tests/test_report_format_option.py @@ -1,4 +1,4 @@ -# Copyright 2024 Quartile Limited +# Copyright 2024 Quartile (https://www.quartile.co) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). From 1537f0ce45c039f0ca0298aafc59cb8162aa8797 Mon Sep 17 00:00:00 2001 From: ??? Date: Fri, 9 Jan 2026 09:15:41 +0100 Subject: [PATCH 11/38] [FIX] report_csv: add None check for docids in _render_csv --- report_csv/README.rst | 4 ++++ report_csv/models/ir_report.py | 2 +- report_csv/readme/CONTRIBUTORS.md | 2 ++ report_csv/static/description/index.html | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/report_csv/README.rst b/report_csv/README.rst index 149cad3f9c..f07466d5d9 100644 --- a/report_csv/README.rst +++ b/report_csv/README.rst @@ -128,6 +128,10 @@ Contributors - Aung Ko Ko Lin +- `NuoBiT `__: + + - Deniz Gallo dgallo@nuobit.com + Maintainers ----------- diff --git a/report_csv/models/ir_report.py b/report_csv/models/ir_report.py index 629108272c..5ae7a9b214 100644 --- a/report_csv/models/ir_report.py +++ b/report_csv/models/ir_report.py @@ -55,7 +55,7 @@ def _render_csv(self, report_ref, docids, data): report_sudo = self._get_report(report_ref) report_model_name = f"report.{report_sudo.report_name}" report_model = self.env[report_model_name] - res_id = len(docids) == 1 and docids[0] + res_id = docids and len(docids) == 1 and docids[0] if not res_id or not report_sudo.attachment or not report_sudo.attachment_use: return report_model.with_context( **{ diff --git a/report_csv/readme/CONTRIBUTORS.md b/report_csv/readme/CONTRIBUTORS.md index b80f61ba30..f624d77643 100644 --- a/report_csv/readme/CONTRIBUTORS.md +++ b/report_csv/readme/CONTRIBUTORS.md @@ -3,3 +3,5 @@ - Rattapong Chokmasermkul \<\> - [Quartile](https://www.quartile.co): - Aung Ko Ko Lin +- [NuoBiT](https://www.nuobit.com): + - Deniz Gallo diff --git a/report_csv/static/description/index.html b/report_csv/static/description/index.html index 46b8f8d7e3..a2f11cef34 100644 --- a/report_csv/static/description/index.html +++ b/report_csv/static/description/index.html @@ -471,6 +471,10 @@

    Contributors

  • Aung Ko Ko Lin
  • +
  • NuoBiT: +
  • From c64b9a4fc9d2aba42d16433274ff0b0fd550da5c Mon Sep 17 00:00:00 2001 From: Tonow-c2c Date: Tue, 18 Aug 2020 17:35:30 +0200 Subject: [PATCH 12/38] [ADD][13.0] new module report_layout_config --- report_layout_config/README.rst | 82 ++++ report_layout_config/__init__.py | 4 + report_layout_config/__manifest__.py | 20 + report_layout_config/data/report_layout.xml | 14 + .../i18n/report_layout_config.pot | 106 +++++ report_layout_config/models/__init__.py | 2 + .../models/base_document_layout.py | 46 ++ report_layout_config/models/res_company.py | 19 + report_layout_config/readme/CONTRIBUTORS.rst | 1 + report_layout_config/readme/DESCRIPTION.rst | 2 + report_layout_config/readme/USAGE.rst | 4 + .../static/description/index.html | 436 ++++++++++++++++++ .../static/img/preview_standard.png | Bin 0 -> 5686 bytes .../static/pdf/preview_standard.pdf | Bin 0 -> 27399 bytes .../templates/report_templates.xml | 109 +++++ .../views/document_layout.xml | 53 +++ 16 files changed, 898 insertions(+) create mode 100644 report_layout_config/README.rst create mode 100644 report_layout_config/__init__.py create mode 100644 report_layout_config/__manifest__.py create mode 100644 report_layout_config/data/report_layout.xml create mode 100644 report_layout_config/i18n/report_layout_config.pot create mode 100644 report_layout_config/models/__init__.py create mode 100644 report_layout_config/models/base_document_layout.py create mode 100644 report_layout_config/models/res_company.py create mode 100644 report_layout_config/readme/CONTRIBUTORS.rst create mode 100644 report_layout_config/readme/DESCRIPTION.rst create mode 100644 report_layout_config/readme/USAGE.rst create mode 100644 report_layout_config/static/description/index.html create mode 100644 report_layout_config/static/img/preview_standard.png create mode 100644 report_layout_config/static/pdf/preview_standard.pdf create mode 100644 report_layout_config/templates/report_templates.xml create mode 100644 report_layout_config/views/document_layout.xml diff --git a/report_layout_config/README.rst b/report_layout_config/README.rst new file mode 100644 index 0000000000..6c46ba656a --- /dev/null +++ b/report_layout_config/README.rst @@ -0,0 +1,82 @@ +=========================== +Report layout configuration +=========================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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/13.0/report_layout_config + :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-13-0/reporting-engine-13-0-report_layout_config + :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/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module provides new report template +with possibility to add image to replace header and footer. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* In Setting/General Setting/Business Documents: + * Click on Configure Document Layout + * On the wizard choose Layout images + * Set the `Full header image` + `Full footer image` + +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 +~~~~~~~ + +* Camptocamp + +Contributors +~~~~~~~~~~~~ + +* Thomas Nowicki + +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_layout_config/__init__.py b/report_layout_config/__init__.py new file mode 100644 index 0000000000..9a14fd06d7 --- /dev/null +++ b/report_layout_config/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2020 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/report_layout_config/__manifest__.py b/report_layout_config/__manifest__.py new file mode 100644 index 0000000000..3d5e7cc267 --- /dev/null +++ b/report_layout_config/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2020 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "Report layout configuration", + "summary": "Add possibility to easily modify the global report layout", + "version": "13.0.1.0.0", + "category": "Reporting", + "website": "http://github.com/OCA/reporting-engine", + "author": "Camptocamp, " "Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": ["web", "base"], + "data": [ + "views/document_layout.xml", + "templates/report_templates.xml", + "data/report_layout.xml", + ], + "application": False, + "installable": True, +} diff --git a/report_layout_config/data/report_layout.xml b/report_layout_config/data/report_layout.xml new file mode 100644 index 0000000000..480a10408f --- /dev/null +++ b/report_layout_config/data/report_layout.xml @@ -0,0 +1,14 @@ + + + + Layout images + + /report_layout_config/static/img/preview_standard.png + /report_layout_config/static/pdf/preview_standard.pdf + + diff --git a/report_layout_config/i18n/report_layout_config.pot b/report_layout_config/i18n/report_layout_config.pot new file mode 100644 index 0000000000..cd3e98a9d4 --- /dev/null +++ b/report_layout_config/i18n/report_layout_config.pot @@ -0,0 +1,106 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * report_layout_config +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.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_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +"&.o_report_layout_standard {\n" +" h2 {\n" +" color:" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" }\n" +" #informations strong {\n" +" color:" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" }\n" +" #total strong{\n" +" color:" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" }\n" +" table {\n" +" thead {\n" +" color:" +msgstr "" + +#. module: report_layout_config +#: model:ir.model,name:report_layout_config.model_res_company +msgid "Companies" +msgstr "" + +#. module: report_layout_config +#: model:ir.model,name:report_layout_config.model_base_document_layout +msgid "Company Document Layout" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_layout_images_template +#: model_terms:ir.ui.view,arch_db:report_layout_config.footer_image +msgid "Footer logo" +msgstr "" + +#. module: report_layout_config +#: model:ir.model.fields,field_description:report_layout_config.field_base_document_layout__full_footer_img +#: model:ir.model.fields,field_description:report_layout_config.field_res_company__full_footer_img +msgid "Full footer image" +msgstr "" + +#. module: report_layout_config +#: model:ir.model.fields,field_description:report_layout_config.field_base_document_layout__full_header_img +#: model:ir.model.fields,field_description:report_layout_config.field_res_company__full_header_img +msgid "Full header image" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_layout_images_template +#: model_terms:ir.ui.view,arch_db:report_layout_config.header_image +msgid "Logo" +msgstr "" + +#. module: report_layout_config +#: model:ir.model.fields,field_description:report_layout_config.field_base_document_layout__need_images_layout +msgid "Need Images Layout" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_layout_images_template +msgid "Page: / " +msgstr "" + +#. module: report_layout_config +#: model:ir.model.fields,help:report_layout_config.field_base_document_layout__full_footer_img +#: model:ir.model.fields,help:report_layout_config.field_res_company__full_footer_img +msgid "This image will replace all footer." +msgstr "" + +#. module: report_layout_config +#: model:ir.model.fields,help:report_layout_config.field_base_document_layout__full_header_img +#: model:ir.model.fields,help:report_layout_config.field_res_company__full_header_img +msgid "This image will replace all header." +msgstr "" diff --git a/report_layout_config/models/__init__.py b/report_layout_config/models/__init__.py new file mode 100644 index 0000000000..290c7e1384 --- /dev/null +++ b/report_layout_config/models/__init__.py @@ -0,0 +1,2 @@ +from . import res_company +from . import base_document_layout diff --git a/report_layout_config/models/base_document_layout.py b/report_layout_config/models/base_document_layout.py new file mode 100644 index 0000000000..f2579cc777 --- /dev/null +++ b/report_layout_config/models/base_document_layout.py @@ -0,0 +1,46 @@ +# Copyright 2020 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models + + +class BaseDocumentLayout(models.TransientModel): + _inherit = "base.document.layout" + + full_header_img = fields.Binary( + related="company_id.full_header_img", readonly=False + ) + full_footer_img = fields.Binary( + related="company_id.full_footer_img", readonly=False + ) + + need_images_layout = fields.Boolean( + compute="_compute_need_images_layout", readonly=True + ) + + @api.depends("report_layout_id") + def _compute_need_images_layout(self): + self.ensure_one() + img_lay = self.env.ref("report_layout_config.external_layout_images").view_id + self.need_images_layout = self.external_report_layout_id == img_lay + + @api.depends( + "report_layout_id", + "logo", + "font", + "primary_color", + "secondary_color", + "full_footer_img", + "full_header_img", + ) + def _compute_preview(self): + self.ensure_one() + if not self.need_images_layout or not self.report_layout_id: + super()._compute_preview() + else: + ir_qweb = self.env["ir.qweb"] + qweb_ctx = self.env["ir.ui.view"]._prepare_qcontext() + qweb_ctx.update({"company": self}) + self.preview = ir_qweb.render( + "report_layout_config.layout_preview", qweb_ctx + ) diff --git a/report_layout_config/models/res_company.py b/report_layout_config/models/res_company.py new file mode 100644 index 0000000000..f2ff4f40bc --- /dev/null +++ b/report_layout_config/models/res_company.py @@ -0,0 +1,19 @@ +# Copyright 2020 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + full_header_img = fields.Binary( + string="Full header image", + help="This image will replace all header.", + attachment=True, + ) + full_footer_img = fields.Binary( + string="Full footer image", + help="This image will replace all footer.", + attachment=True, + ) diff --git a/report_layout_config/readme/CONTRIBUTORS.rst b/report_layout_config/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..0a9139f765 --- /dev/null +++ b/report_layout_config/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Thomas Nowicki diff --git a/report_layout_config/readme/DESCRIPTION.rst b/report_layout_config/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..1283e67d0a --- /dev/null +++ b/report_layout_config/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module provides new report template +with possibility to add image to replace header and footer. diff --git a/report_layout_config/readme/USAGE.rst b/report_layout_config/readme/USAGE.rst new file mode 100644 index 0000000000..32584e7b94 --- /dev/null +++ b/report_layout_config/readme/USAGE.rst @@ -0,0 +1,4 @@ +* In Setting/General Setting/Business Documents: + * Click on Configure Document Layout + * On the wizard choose Layout images + * Set the `Full header image` + `Full footer image` diff --git a/report_layout_config/static/description/index.html b/report_layout_config/static/description/index.html new file mode 100644 index 0000000000..7e457c7afc --- /dev/null +++ b/report_layout_config/static/description/index.html @@ -0,0 +1,436 @@ + + + + + + +Report layout configuration + + + +
    +

    Report layout configuration

    + + +

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

    +

    This module provides new report template +with possibility to add image to replace header and footer.

    +

    Table of contents

    + +
    +

    Usage

    +
      +
    • +
      In Setting/General Setting/Business Documents:
      +
        +
      • Click on Configure Document Layout
      • +
      • On the wizard choose Layout images
      • +
      • Set the Full header image + Full footer image
      • +
      +
      +
      +
    • +
    +
    +
    +

    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

    +
      +
    • Camptocamp
    • +
    +
    + +
    +

    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_layout_config/static/img/preview_standard.png b/report_layout_config/static/img/preview_standard.png new file mode 100644 index 0000000000000000000000000000000000000000..0bd596ed9b53069e6cdb26d450c218a123f7df12 GIT binary patch literal 5686 zcmV-67Rl*}P)qa00004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px%Qcz4(MgRZ*_4W1n`T5Mu%=-HJ`1ttz{QUR#_x=6- z{{H^^`}^+h?(gsK_V)JB(9rYq^Q^3_%+;wY9az#>U0P#o5`}+uPgM*VoU_&(YD*$jHd*>gv0@yX@@juCA`q($cG| ztG&Iw=;-L!*x1Cx#KOYD!NI}H%gesLzTx5F-rnB8z`(7ot-rs&)z#Iqva;Xb-^$9$ z;Nalm;^NcO)7skF*4Easv9aCV-KVFgxw*Nzy1MD<>9)4E)YR1D!^6Y4 zxVW^mw7k5$udlDFs;a4}skgVcqN1Xtq@>Bo$()>=u&}VRv$LR}prfOsnwpxXrly;l zo0*xJp`oFlpP!hRn5CtqsHmu&ot>VZo|cxDl9G~_mzRr+i-m=SlarH`m6ef^k$Zc4 ze0+R}h=`Dokcx_mjEszrkB@bAb&ZXUfq{W=aBzNpeu9F6j*gCcdU}V4hkbp0czAe* zhK7lWiFS5&ZfC@x<`TKx? zfLU2t`SbVn>hfl0X4kLGzJ07=VPSG|a{c@Lo1C2a`1$(y`rEhB!Gf@^U6|3M#I$Uo zl$4bB?)9~6q0YU@<;vZvtgF+g$l=4;u3VR?Q<3}j`OTZZu9m2upr5T=m(0t{yLzd@ zg|V$#m&?k_1Tem3U)a!c)^JwB==7)hg#nVz2Ro*n=gVu&HmusAAc`i3$gJklTj z(zk!`6@XmgrP(qelk#&YKrC8C8ey>i%scOV@25ZdT4`gY{vf5P>{hl7sAYSz)?5?< z`_F#)o8SG}KYsH4ubR+&t6{HdaLe9UQx8)qIrQGMLB$kK;s6P0$o7xZGL`~hfJA#g z@P%*vxGg__`o$01_xmc95&&Se#-R-WqFe8S_!uKAhK$!z$kq8^jvF)cCL=xX8w(j% zy&_9aeEEUTf9L0a1pe^5zx*-}Am!q^69%*!hQqcBnyG>BJ$=*q?qx+p73#4GM;o`GEl9cM#jxF$bxaRPz-X6zpuXozz<=o)YAJ^?xlNMukdn!G#*$g!jyuKJt935>st2N8uYaW`V zWiX6WG^kY4VkHeJZ5RT{AQ_{fk-?|0a+3}X%H)@l3??B-frUy?Z#lEF?Mi!RcAba& zwT4Y#VV)&RG{JcSu^6v5NXIw_an8FL{H}l#>b8%i?i{$z>4JNcM1diO7~);pJ!v)jQw z{lX|r7#N=f#0$!NU=iX*03`^R5-9BsFib#9iQE9RFd+1&#yvAyR;FFENP|gUDdJGT zy!BSm)4D-B`I)Wi4d<0D)zv`kq#2vIyXC5F)TXY~k<`@zp)YUUJ#03zCp-1)^1XER z>KzNf9p8OWEIaL26ya!M6#BdJknZNqrYLiJ zFXO)Q#(giq-8kglK8QYS#W?=TWLa8suZnyd2V2R*==R=Reb2LV|Fus$27`WRHDtC# zBC(UhA|F`^IOR5Aw!98kBlsiBsA}V$bMz=eSVzTsTg#wfd&a!&_iSX9Cf9&iUO0N1 zsDwc{0bu}wwB6FSM~b5WNx%do0||@-Z~}lJ7$7KupxU>hXK8*z3^BwI|9^ljOB!)> zHa22g$av=FMlPmGS|;+6MaFK4Eltt`>7;_UUVY__YoGe$OLwh%FMRwXFY_0|)~@T1 zKlkR^-s@j{>xHIj5b2W!wN*4x2pMwP%yOnAieJcMkWP&2c$>YD@%cRB!IT~f#25x) zWHK1Kv|xZx5X>Mj#V`=08OZ#|HEYQb*`LTbm;I$kckGc5d8PB=bwkP-;tB(~Dm53j z>sP}WyH7u+AMd80QyXWB_B5aInT@7_jH}`Zh)@WGK`@S9%Fsqh90Exg!eA5^TvT|7 zA%+-Yhz}re$&=k&1PtJCe`_Y#CpF_x*Mvtxog8Tf!^tipy>m2_BmfgQfCFT&iF5LJ zH|?4#Rno2FUDt{e>mU7G%f*-Lt!8~cz??7lmXCM#jQ6h|9N7<+o)tr_){fnkN_Xv4 zWgn%z*PYeMX62;U9@glMdw1^N+OI$Q*lRCdy>=w&AARY`%eQX5aQxDp2lp;yUxYt& z@Ab#rp|g6s`ilBoxwZP{)lrom3sd$2BH8QY| zJ{7LA*~Ba;VYS?aS`mkmp)mxdSXOpkejufUrInIyyPRch5}8Coiptm3Y6?6l@iND}UBH)wxgnCyH`0rv&Zsi*Uv?z_6m;8Rwe zOHWw!=wgXgloRO_zA<2yFIb|ZYR}S$FHTEX4bunrit=l$27Q6O+-g>9V8QQIJd^R9 z*UgD|Z?}NM^R|&OzkbAH(Dza++H{~~P47=FGlB7q(nPrAHP2>u>sjYvqYutG-I!i( zIU|>K1|qN7$K;#IXE6hRQ95xDni}u=t57}Ha2`~odY7(OOx_kS*`gYEeA*bCi$&*R zc_x<+#uO5jD&L2BfYj1jg?8j}KN4<-mR2Z~=hVJi;#R3xH`S#8lB~w9S`^#ds$NlT z5(WsMlWFiY-JKvhJ8p;$`msZ}T}`|G-WS?0B)STEycRgUv2&pZ{j*_xeuyJa$9x~O z5B5BTh9DPTfIL_Col)zh_ZbZ+R$?>*fEreUPzdS}s#_)1t;>9OcZCr!7P&$) zdAGQkF2(~=wcmApak2^*&dEIIDwPAPEKhvm=H+RBn6D{GNs`Mwu62HXaMb4q(sbUH z&xY0Hhv-Xx07e%0VY#?sMGPhK&7H-@orMYcE4Ase#(xnW!go#tEXK_#ziP~5_mVh@ zA)q~CMIp78L1+VjK@e7(Gzp?OPN^H{ zj;P)1icZ%=lE4+Wuj)JCJ`X=V3j_Rq^5hErF&u^<1i?Y|`)M}r+Gbu^PXmUiCl7%k zTphE&(2gRQ*5^M;#BsG`?Vu2HPx9*QBgn(-u$qh@kb3r4*8xv?IZP(fO1xmX45rNN z)?nKciP7P-m&ya7s5$EkN5y)NFKoYL41qa3#lF;kRG%wiEL^iyD&_v&puuj8QtnBy z_pp7^@tD8SaZGykL{wo`HQf(xPLzAyi<(%D+ZOY~?(tD6N=dUf7Z>9`7pQti8TaP# z$E58=cgREeez(ebA0|$gbdP@%&T+?g%94D~l1<8-^x!bWS%)j+d&*wOy*pi{Kx~t; z8;AkXDZn@rp<|xGc4S~jsDal>Kr~^ctN>$&^V=RD{u1?3)NCd^j||r!LNXqY+8>zj z*?oXu2(uZbANJ?K_z^m<0@JHumGa;B=ECm^th;aP=-gd%zM`hP%Jg8b z2Ho)J=;-LYT2hv;AX>go3tAWTL59(8u#xJMu|9>}YGoM4stPgRb=vbAaktr4IUF)p zGEWA;vPTIQYq5kSUo#v=*QfSyfBXB-|NYNj{`HT4cb^h7|5R8sOMAO>(Ld*6>!ZGJ z6c#KYv1M^QIROYKoat0uNK>&CORdj}4Gc%Hs|SKTJ$sC3H)j##dY*Z0)W<>a*AA1f zZvTO>Hs`QDl_%dsw8_Nh1(AxKN_U#(RAszI%Y7QwDl%hX! zD1zWH4nhD(#AL#iU~XLSxE&FiAlCXjAj8bz+uh{J zA8dOYCx6~QnAuq8aogxR|Kn+=Sbg7)SJ&E)!^FUO-s?%R<_NsadbWuzHNi)d+xY=X zjFlbKSL1a`ybSg zpEtyV-PZ|U*=IJ>_se-)?pL{YEP|$q8}3W22sDHEs9PE}OP*EnQtU=Ru!yeBd{DHE z3Zkp!a@DCV$B0#>*p2bn=-3R^1&hTJ$hkr}M~Cu;M6Z`E2-JpG*ecWn)*GN$uZp^% z0*T7jM%^38H@Dcjutj;*hk6ioAKU1#H$odiI^oJ~jdD4oqf=QfH-j~oqgJalsXKg6 zdI6J%=R1DcDAn5Rz37KvxhPj{@?~|Jwd97=ENd|F#$~4i){?VuW=GEFo5P?e zk2gbs-_jCHICkUEU@~bd98I|PKMt7bX0;=B_o}`@5X_*xxeCUD8*XDrVPFi$5M0Y- zy7m#*)|n$Fg9-DfS#B4eYh`FbGE7?ZsVkwY_%2$`o02fx^fIpsjBx@H5=g1)!3L+# zN;^pd;~Nm9)e6MahQ%N;b1G&AFn}bquruTUF)^gw>!i00fG-mB#bDY;ry|=vz+kXz zZZp@#Ml|0U92@|!odyxm0O9s++Q6hRl6Im_JK(!+o8RiI%w+eD+d0?i#IGFL+n>fTn=8%QvEo5nmZwDUXx>a)DtV5RlNFjQW_@Qi~SR>JR4T)Y*tZo8!1H@52sReGPL=Y@h~k^V{Ar_XIrhKY4rc? zU0rY5FceK74R#tzLm)sK0tq2NfTUponr0Bv(4vO2wWS{_U+dOYlPazMVE=tix|cl< zX+q+@ShB2ZU+W(GJ{%v{u4l88E9T#}KgeJJ!%PiCmx3II1R1sf1WY{yf)E?;oF7Pq zkCq7#h`a^k5N0TnAVElp01*NKfkJ4A1rkQc)4Q86>rp?XLVqMca|Y^z0IcB`Ti6q$ z41-H!64E$sIeyw!sIgn}EQO`h15s)x#55ym8PC?Vb`fG@n~3?%9%mMtSW{CSpW$3f zmM&Bt!+g5RDuM11B=$TMe!3I^#0Ujcm4IobEY%xGm%bASApwwD2Zsgk2+Pio_WtU7 zewjC)hIid*x4QrO+SYorfU^m^vq#BhCi*~D8r;$;ul4`S%)VM-c&f2<~^QdC0 zAG5uJa3n~FwnxR=Q6qOOqFdCD^U~3TxlB4z*3bnr$;aKvZn{@;F8GKUZ57&Xqx>Ja z*6@$~Scsa_|{hf_lKHU^s4`q{L=?tc9o}3XX5Ac2}JQ=Yqk!)*Q c+uC3D8x__jv`ci8DgXcg07*qoM6N<$g6P_WO%ggb;agaw2Pge`;(_}d=B0m1~r3<3bb1n~ia83G9YW(8{~I@z1J z8k_#5q68KMK(KWlZS&TfKlv|i-d{`SQC*^MF`;H*g^w(ZUN(EqM zXyg1x#?aXsz$kBTXZqjfS^sWchf&ec#l_Ug4!|gC>Sk$dsw^R_`;QHr{|GSw7&W!D z0YJ_VoJ@Z{001I86W0g!zfYL{qr&w+%+^#evNAPx0o&?o_8SoMoCjka|;&$GZz;kqp+omv!bb!h`p@?*kU^u04I1<_BQrTDh`ImU^o0_ri7EB z2O^`ashv5v4Q3{AugZvw;+8hxp#T`gZNOdKUCe)sydv8}C6#c=W3YF8_6Rh^MN40~A4 z%uL;G?HA0)Ku$SLokgPAeD%{&Ljm<)%Z`f`a^-9KB7By%w)iuY8mG~Q0>-vSwzh6C zFF5&h^{95Xo-i+1`T2PisaQA$GYboY3zvw`G^!UnShG7CrwZ+u&UAgDMs_f`N<(D; zvhW5>6H(^+fUnd$>M?J-mk@#3NjgH}7+|5W|1X6WxvxhEMWQEro*yTh%<8`)AbJb??RF_PVb)$0q9aj{4n27!`7+BY!#e-t#5* zQw5i=#ra_^x9(2D`IL3~gF-H3-ht(QtO-k7Lqo& zHFX!0_3{iu!^2Ns038f-cuV{whA3O>Hj;Ub1#DH@Ju~ZNDxaO5KRyk|O!iV=~~9B&i*5<-1rfD@oY=AbcJWE#xU0^e9BJ#kixuL z?Zz=w)r5g*wlXFG#>F1KT+$2Q`D6Umyj9W9&{jRnW}!ux<6r87-7wFci^z^@J{%Q* zhV%rz@1C7X0za>QG3e2+ruIb$Zr#rB)u_=9peUYYcF7Z6AOSv(BqAr~!|Js3h_>KyTSQaN%P{185GB9WqPiDj zYgoWLfS$;%sHeCJ)yZx-l52TSBJ5K)o+FV?*??-WQRauyVuk?V7t@35?(T;c?PHYC zO6E1}%hK?u8;vh-{-~$*lPeJZR%^EyZbDjrP^tsnC$97zNNzjs{9Tua&ox^g6wP&F z1#;{jo4F(TdhKB0uvAysY24x>`&CLk#;(Uvoq_GePGUml)C$;pLxacxjps?<=czZ4 z+lE#YFTO2qXO6{POfE%eKQ?~2{y z(Jd8u8*tmHss^+BC8*avN-+^Rfrz2a(<&TRTn^Z?eVWtFdt1Sat_R{}1EZ_mYyru( zKeMr0pqdZdLbNwBC)H#qQDrV%o^Az&7 zhxxGIa+Pl+}&IE0uv2y!!tqK)loaZAgY__QEk-!n*=S@2R)O&+QylS}3y z7on2o%}j2>6Zp5v8)yE?Ae88NhXZG9LrAW{H{@AN&XTm}N}4`#a?>muNY-=Vq!Ot5 zi1W=h)G{=0<3#WgFLKKyZSAWU9|x)~snp09=}T^HmvP|x6~fM=WBtlKO#;u^NT4SvI5V`$V4hZ8UbMc7m*ii z;oZIzw@|vERd41Ll5u)JeWvGvMvCI*4a8DY9+5M7v_AX$<^Jk=d9q$2;OQzM7nP*I zYG0%P-pVifOdo0OTMv34*If)N`O)Z`9dE;I7D&6;ZJmmb4l?H5J%up~j{U>9K(7e> z7MkD>4M4xe;Ki@k+urR3aWa#1nBIw%q#lt$9MW@Fq*mFs(`Pk|d1GSOsxg<3ni{mX zU$1l9_pfTuHdhBVW1BnN8LhPOu$AMw>MP8dqZ)@6B)zPAxb4I%^cKkIO}hE=?vA^* zit`RI=5-$T`lwyF_^i$keIJ;u?Z}pc40y|N-2lx6dPCtXgfH{K{c0Dh4xFd@ryCLi z9l^>K!goI;=5!v9#D}U6wzsHTP}PgzwHR;4P`k1ZW&w6h@~GFU z&na#6ES1Ox>p4MCffYo2MvZF%UTgP)3KerFDds9T&Q~Tqocl^s+GiE8zZi)f$Dnj9 z#&SXj=NJ$D^^@Y2E#b0dJ=LYgYy()@m-C#v;U9wA zRj!akJ-kw)X#coCU2SBv-^3sfCm)ycNeXwt+|1KwjsQ_%TJ5Y@#MvHBcWRVR44I&6 z#aYE7MJWNVHrn}A@|Jes@&~7tl68S})HGfAcqA>IF!K5|tNrB~R>EczS82Y}-OmnbJ4!td+5;9i|GNPpG#Zw6`TlufECm0GR1B9KULo7_Ql?udF?a!vM8ZHno zp)MwP*>3Y&FY z=aUZmm7vVVMG|e7aTI+h#}xRvt^DBSDsB*BrRD zYDI50nD*HqBI(%Ud300ut460#+x>7$+^&yl6enehk=XQw?H$0@lmI~sVKj<|SrH{z z=5addH72s8U({b4%k6`Cg-kOS(QdbC4=CdO--$fgz+d7O5LZDIHgo>iVs_@6ee(m| zDf;p^b=%D%HDq4NtxZ^SdkB#vGNYS;8fj9D2&rROt62DIJ7&okhjzD+A(kf}R^Ln* z5&FO&oWEW=3J;*kZ^G781nG8#FaJ$HEWTCYO5|vWUxu9C4`W&fi?|6CJP*NZi_UPQ zkB88DxrLIgf%S%=;q?dOcC86YBmvSjNIx(mE&LH?o~nK?*_a`EyF!Z|e%Z^*~8zcFS6FVF=&4+-$@0Rg5LB#(j|>UncDx*>(HqZ zDas(tOjlnuYnA$$UFYb$$qK8@Mdvm+G;CD`sRsC*dPg}PuFYHzGgsK)kCaq)KPrZI`ptGi66NEbBTnY(|HYk6ox9?vCcY;cH`eVT(s+Wk4p) z-~j_wn50u_R6n$IkYF)xi~Rc-S@R3gDXhDFZDPZ)uY=tTZOjhw;-#(ny)-m?bFg_+ z0{{LSdxsnK-%IrJKQ5De>F>=JaH`%s;2EvL?=9mxLYZCCda2)wqFvkZ5%a9l;>AL( zcEmPlsy9S5LD9?#pQAAJJBcHgP1d%|S$eh6!+$$~*dxAHQz6+yABa2X9b z95X(GXJwJT8iSdi%0jZD;)C}WmqFPpoh%{wF*`Q~rC`bt?S=2=z`;lz^VLealBDY< zatsnLwc!nQ|H^~GIQ#KHP{zb{;X)9>2T_R6sk%LVF-tAD7N!@$D4&GA>!B~35%^}l z`sv}ncj|*eV{+$2(%wtk&%rIEvqrKibiq&i1X*tL4QEU#_|zs$)JC~Eiw@r52Q!x< zG^o&n6$&#$YD>)O{3IVRmNW+CC2%K$FMEjy6w$DS(vF0r!w}lYA(VutoX1$^VG2X+ z``!Y{=Mt)YWz)CPnT>$actDs~;V&PH8!W-Il?A(xsP`6V5kVRW$+uM)7=}n1DV7lQ zSfR56p`wD6RrSs9=9l`xR1E9J4+d7b&z^lsa09}QmFiS*_E63|8~m5jsaW0{*1=F> zdRK3t#iB=DC8spo_=ThJR^-WcF<-8?P%-%Usay=o ze<+~QPPHs%ON+kH;hzW3)d%?Esq9w=IDLYH`Q&OjmIpi8zH9RyuK>tbIELmKmR83i zsQ=3xR<+zBlmp{^$Opvf3Oe8?SJS6)0`90+p=fUWX9{&iiqMK=J_p7u{FSv$u#}j( zwQ^v>;tea`VcVCtzRo+L!-i-1ccY#`da1oSKirDrROoB8&rypnJaF9GH0%tG6t7g1 zngmLGLAq(ILQ_u=`ge@?mHTsP6p z9ra^9o)vLw6?bYTe`VcNDuco1ot_lgWpOP~^3m(~K}pj>TRvRm*xj%9Bx@_1b1)jj zM$t@CT)9Z-04i&HFj$?DF5pB!Dc1ZL@RK6}N7$m^?m$>mXzE8#pFvl7)!RLjhtJ{r zM2e&gcG-j@L--{|K>q$=Yz{Ouy8P5 zF1p;bv=U~*)|l#C;%T~MK*AV4tqE<2(Kxh1ZJnxF)lCO+v@wrtY`aN8nqgb7b$Org zlbS=bE25^Zib@et*GV|GrjFT)kUCQDdl$#RLXWkNyqiizkKd&A?SUAAEhJ;q^e5=7 z4jpa|>D0;09L~rOeFX$;%wHiab@$vyUCjoBzz5U2c=e8lI8M>qUWTj`1zT>^U? z2*!ARDGsj2EFzLg6}YqR8eg#tt-Hi>Lv5m**SDrEjZ)Kirax)ZyH4_yL} zKjIUdDnv*;7km_XSAx2=>uTuJx`{Q~E+FcTh^-~<<97z@boPQo?8#RkH8y-sTDO?u zH_wu}gCx`L1H!=iZnf4dMC9#?4#8-dGAoqJO8a4zb&bZVX$rm?Czs>2#3bc+EC-)y zUf?onT|hK!)Vwt4lRdzFYcF6fsa05cjbqp3W<14o#xQv3H}O&&y%?SUg!OYS;PzXR zYD_`SPO|IVPmZlwI&3kgi}N?h+rtP-zv%^d_GyZjCIuDF2XuleOV6!UeJDRvv`F3A zs#S1#NY#&SPg)Eh4B2{#$hX|fofqek4(2Oy)ue$Ynn^PCo+v%~HJ4*0a$Mikc!QJ` z+U(UTK;_%brN?vTNtq$!W_(Tb*NL99!bDydMtZnA1qh3q#7z2*l4gm)%laTWeyVhl ziVyzSUg9+A(*ZfH0qMQT$*xTLC%R4y_#Utoj~;+ z>DBKCbhG#E!Jcf=g%df&cR~4CLp(MUEg_l5pvy*0Pgv#m>E>yHp72V_JAvu`(yos` zJJqiSh_@-TsDSNKc8L3fNSkBoMdch84+nV@B$V72VS<@y6eQeC+z};{rgd?IQ@!Y` zes9)TcUh_rfjjH90euYA5g_~U;?2CvZU|vFD_k`e8s4nJS(JAyOm(P;u;yK*f%0}? zBSC3UjybHjkcP?$n$R$=+B?{?+0v-7&9zZS<%(GuoQ5^?_e&e| z6(&{+py+iV?v9=Hg@~u?o!k-1t}y&rqzwE@S?LJe^>VQ66f8g0yOq-3BgXMZyqzio4VcUynSJxfn^)FFT(PpnHk!dwCQPH}&6{%@u@PQBKnE12;_<+CG zMfpnQ?c3OE`C=bhQqt}#tNeokQc`7=-oFZ9Tu*ZU6hx*Jg@s8X<;WMCf#qE1*i>Hi zXoQDVMMZOC|Eiq)s}i#?IXo=*Wl}}1a8aX8kwgRu{ z|Cb7qcJ^%}Cv7iFb%&FK+b;EddxOmkW&HPrb+P=fd zi*1*O-NEOhJMQcG#h1tH2Q)8v*CTt*A(3f|pEI31%F;Bhj3u-Y%&wzVPlVR#bc@@T zkG{{Br79ZMSiJxcAQCA5;V@n~1S?JmdkTUy-@WY@r&+HxjB+Mwxs~17lxZPH%|`@8Qm`ak*EtM zp2LHmHS)jT@YLYUsVzhjCNa)VmW-;5*B)sxToFCY9fWX7XjY+CW;C(6`N&rdPK2iu z&o5S7+!`RYP!;E0xASMnDw-jFSQ4M95jQg5hi}5*tEwUIn-HH?7O0FS(Yd|bp!+rC z*@^*Dyqm+U>=?l`zg7Ca`cPW8xQYPs%bM#&L3NrbwOXmkpdsWjz;ip@nS)%!({DgO zTiA;_0@{p%a^KGNBEp#+FAd0-?(QM-*igI8ae{K?mPTefmWmeh@-pZd|MCcKuWp{q>!yK9%-lGzs^(&2e03iO+@CRymhX@h#=1Kkge%HBzuZsvXAIr<?5NL&12qI2i&{P7H0zWzKrTM07b4)vW$~ewKSM8r&4i| zA80l|2ZBuLSX7s&J=LTWTwxU3Ib4+wQ63OfuTv5{itPa{;d#}KM%wM`*Sek+G?neG zjGcOA=P?KPGT%LmN>}DE$6w4_d-Z(rw=T9X&yDd{=^YK<>%1BbUu z(ViX?EI-7xVqUrxUCvnBq5K@&U%ch+nl0&M?A6i(i;sp*C^+PlPLAr%U(ds&du(jQOVW62qActVqV(^_K$&jwz;NuR5u zGZ79i3QsO_fvOA5cXr&%C6m;0c$SnCGF^hy0`_{m=`ky*$8y<^{^LGW%D*tfgua>z z{m|0H$omdmMV=(=UIjF4;i~ikEu)O)0l!&3R&mUnLy?7CNXFA>#^+Rw^#>6()2IXC zI@&XR+w~+DVaPJ`<0h$*qJtAg$w*-BRU?i!cHX8q!~UJaLS>@`GTX=#k|R-fbe+%vocQp_tWKRf6;FD4kCY{L|XKGIkZ~`45sx@ z(Tu==jKq+m-1ja5%f3zr9(i0r(bkE(kc+|g42tUhAqW1WzhajCpXEb7RDL;Xtp+(K zdxR)}G8VH^DACX_`ujv8n{&$=Vd z66qULcMfd%;{GWE<9x;wXO8ZhTlz?owr-VQ4o_lkCrPm1(2<}^M(<8q=APiuTK`ol zZj?|flhuR7-XnckSj;{l{N&;%qqDS(-72oouXbE~V`UQU_S~M(?s{!U$segAXg`?v z!JWIXC53sz!sAb`_=~NR2+ETE%Kx>$_jU+#cd%}7m}<dCl3@3Dl$WaMsoHlmJf-ApzMz{yvLP# zQ_95XN5%7P#ogru#mTABTY=G<#5B0y*|?IZC+15g@6%UuNZF(t4{iPZ5@&60NY=^i z)ghV^YG&CC{J<-w5ZTAAeG?o@i1Wv{G#mKort&gWF>#ZjzL{&^6=9N8>rG^c1^N9X zHB`W|Ca19rnIhBN4C!+mlcDDMw-l<7l+z6J6L2wTfQf08~jrVnA^7b(lj#6JvVAIY@a~mb~x@nC;TR zbP`w!0wMKzNas2$>7+bgAa^zW0cu9paRz}gXlTKnurx^Pp$safQeLJESHQN|O!_zC zYs;nYeK3GN(bGwk-t6}I(~L>-vM(Q%Sn>>l!AdmoF=t+-J*?|BDKtU*e3CcODcX!U zcM8L-Y~Fphd{`!g)%zm(o*#DN_WSpvKPP{{k@iGQ4rz{IF)f%*3gJy<@rh@UhhUBWO~nj} z4!cT={Ar+W-`XrfhO0r8CJFdrBJ!I&5?NQH;@+LyrL6d*$NE+!eMqW79ePV=GUFqY z6$BmtTRuYO6#_f_=IX?>EW%%E6kxRyX1QCN7spfg&jd@i4LF|(2u8WrgJZNF7=pi5 z?#p9e>%ajFC%uf1U)1!+rq4$c9(3{{t@AmJI=XbR|G8BbpS*nLE?vH!Q5lyP%n~=% z=&|gc!%;Hp9qKZkw7gMo2H#eYl5>~lD>8S3`T6>=ZTz<+gq1e5n>~ZeUY@0&z}nJ<5pu$!6x&?U3v3X^10rjQ=4&tA)S=6ibj)@*yq zB>l*$d8uXBEd5Bhxl30AVsNG|8Ovwka`+ZTC0Z}Su*GR47){o*?h=w*d?@kP;bqKx zN(P@CKC=|*p#gEr6Hdb?=`-}wQ081wv_yWt(wKH__lfG8%Y~KRhg(lpgR?Xlq9h_^ zn6HL|Oy^kz(!_$&eyVM7UTm#4o{K97%OOFMSKocuIv_ zRBLZmYlr%207DEFiP`kI@k~<3h~OWJjSlh#W?7BEFHs4(XB-?ab})8_EfkiY-=F*} zi-N96H2basL^bY0wmc~$bxO!BX%Fg=dw2SCzvlybN+wRjAPq_;^F4tYC#tavXKvUp zX6-gHw*@3W(a;7)&xc*8Uv#vPntom^E9sF%LWMi#P0^v#LKQ!q_Ft%>Dz-&eU_`g$S>FqPplvjx#^+E^ooE zhs`sW6q>WbiR)w5`O$I7Oji3d{QSc@1eFXOfr(vc&V_(*W=sQN*vQ=}uX6(a+7XIx zYRAOlsZqm|A;jQO<3%+3*1JNXB=%YD<@b@FNjjrjHfxv) z+XS&zdmqB;*>(sx%M-iapiD=je+kCPr9*u$vJ%2-J42Ex>^5<@@bHNklCdU|Zn(ff zD;S?iBfj+arVVZ}oZaRdj>%t77)w$WC>1eIO>-aH3#N!vyO?Xb5NT&DzMKl#jw1Rx z;Z@cR(VvN+miS)=RK>1U&c>_pggJCDEC!FVBH@l?xxKj_wLz z+-d4cd!puWlY)L{#6=9q&q=vN1@Pgk)rp{PHsF*bqqf;zbCX#k``=)9_s+PBFTrr_ z^WuXawWs^G8`#k8a{Tu6tEs<-8LC529ezM(rVOAo}R@= z>0af8-lyarF${yY8$>UplLha&+|mqwXl1JK!u|X)3*zUpX4NO$Wv|pF9(-n9*4nBF zZTF0ItIo$mxVn4_W*%m5PDwf|_PwqiM%I^8!;&%`MpW!Q!<9|X#B-S_ zz}}E~o~PrWQfF&3HjhajNWm

    g4E~E2G+mEm@<#z8?C~-A8 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 F{{hiX;28h_ literal 0 HcmV?d00001 diff --git a/report_layout_config/templates/report_templates.xml b/report_layout_config/templates/report_templates.xml new file mode 100644 index 0000000000..e3f142b63d --- /dev/null +++ b/report_layout_config/templates/report_templates.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + diff --git a/report_layout_config/views/document_layout.xml b/report_layout_config/views/document_layout.xml new file mode 100644 index 0000000000..07e4609d9c --- /dev/null +++ b/report_layout_config/views/document_layout.xml @@ -0,0 +1,53 @@ + + + + base.document.layout + base.document.layout + + + + {'invisible': [('need_images_layout', '=', True)]} + + + {'invisible': [('need_images_layout', '=', True)]} + + + {'invisible': [('need_images_layout', '=', True)]} + + + {'invisible': [('need_images_layout', '=', True)]} + + + {'invisible': [('need_images_layout', '=', True)]} + + + + + + + + max-width: 450px; + + + + From 3f7be3e3209aa18bd30205398571443e77bbac3b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 18 Aug 2020 16:39:30 +0000 Subject: [PATCH 13/38] [ADD] icon.png --- report_layout_config/static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 report_layout_config/static/description/icon.png diff --git a/report_layout_config/static/description/icon.png b/report_layout_config/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 From 7b0982fcb05f0cc5f594255d6c62c1f3f5226447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Tue, 27 Jul 2021 15:26:50 +0200 Subject: [PATCH 14/38] Apply dotfiles --- report_layout_config/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/report_layout_config/__manifest__.py b/report_layout_config/__manifest__.py index 3d5e7cc267..1fac33aefa 100644 --- a/report_layout_config/__manifest__.py +++ b/report_layout_config/__manifest__.py @@ -6,7 +6,7 @@ "summary": "Add possibility to easily modify the global report layout", "version": "13.0.1.0.0", "category": "Reporting", - "website": "http://github.com/OCA/reporting-engine", + "website": "https://github.com/OCA/reporting-engine", "author": "Camptocamp, " "Odoo Community Association (OCA)", "license": "AGPL-3", "depends": ["web", "base"], From 4963bb08ebd4a45f7fed4b8f32f2ca07a40a2ee2 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 27 Jul 2021 14:00:10 +0000 Subject: [PATCH 15/38] report_layout_config 13.0.1.0.1 --- report_layout_config/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/report_layout_config/__manifest__.py b/report_layout_config/__manifest__.py index 1fac33aefa..b87609451f 100644 --- a/report_layout_config/__manifest__.py +++ b/report_layout_config/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Report layout configuration", "summary": "Add possibility to easily modify the global report layout", - "version": "13.0.1.0.0", + "version": "13.0.1.0.1", "category": "Reporting", "website": "https://github.com/OCA/reporting-engine", "author": "Camptocamp, " "Odoo Community Association (OCA)", From 85d6ca95141feb2b7277ca812f061a954385f532 Mon Sep 17 00:00:00 2001 From: Iryna Vyshnevska Date: Thu, 30 Dec 2021 10:58:06 +0200 Subject: [PATCH 16/38] [14.0][MIG] report_layout_config --- report_layout_config/__manifest__.py | 2 +- .../models/base_document_layout.py | 16 +------------- .../templates/report_templates.xml | 22 +------------------ .../views/document_layout.xml | 7 +----- 4 files changed, 4 insertions(+), 43 deletions(-) diff --git a/report_layout_config/__manifest__.py b/report_layout_config/__manifest__.py index b87609451f..e27c0401e2 100644 --- a/report_layout_config/__manifest__.py +++ b/report_layout_config/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Report layout configuration", "summary": "Add possibility to easily modify the global report layout", - "version": "13.0.1.0.1", + "version": "14.0.1.0.0", "category": "Reporting", "website": "https://github.com/OCA/reporting-engine", "author": "Camptocamp, " "Odoo Community Association (OCA)", diff --git a/report_layout_config/models/base_document_layout.py b/report_layout_config/models/base_document_layout.py index f2579cc777..387ce0ba4f 100644 --- a/report_layout_config/models/base_document_layout.py +++ b/report_layout_config/models/base_document_layout.py @@ -25,22 +25,8 @@ def _compute_need_images_layout(self): self.need_images_layout = self.external_report_layout_id == img_lay @api.depends( - "report_layout_id", - "logo", - "font", - "primary_color", - "secondary_color", "full_footer_img", "full_header_img", ) def _compute_preview(self): - self.ensure_one() - if not self.need_images_layout or not self.report_layout_id: - super()._compute_preview() - else: - ir_qweb = self.env["ir.qweb"] - qweb_ctx = self.env["ir.ui.view"]._prepare_qcontext() - qweb_ctx.update({"company": self}) - self.preview = ir_qweb.render( - "report_layout_config.layout_preview", qweb_ctx - ) + super()._compute_preview() diff --git a/report_layout_config/templates/report_templates.xml b/report_layout_config/templates/report_templates.xml index e3f142b63d..e9665acd09 100644 --- a/report_layout_config/templates/report_templates.xml +++ b/report_layout_config/templates/report_templates.xml @@ -85,25 +85,5 @@ />

    - - - - + diff --git a/report_layout_config/views/document_layout.xml b/report_layout_config/views/document_layout.xml index 07e4609d9c..8900c36c73 100644 --- a/report_layout_config/views/document_layout.xml +++ b/report_layout_config/views/document_layout.xml @@ -3,7 +3,7 @@ base.document.layout base.document.layout - + {'invisible': [('need_images_layout', '=', True)]} - - {'invisible': [('need_images_layout', '=', True)]} - Date: Thu, 30 Dec 2021 11:44:08 +0200 Subject: [PATCH 17/38] [14.0][IMP] add layout for clean template --- report_layout_config/README.rst | 24 +-- report_layout_config/__manifest__.py | 1 + report_layout_config/data/report_layout.xml | 19 ++- .../i18n/report_layout_config.pot | 146 ++++++++++++++--- .../migrations/14.0.1.0.0/pre-migrate.py | 18 +++ .../models/base_document_layout.py | 18 +-- report_layout_config/readme/CONTRIBUTORS.rst | 1 + .../static/description/index.html | 43 ++--- .../static/src/scss/style.scss | 11 ++ report_layout_config/templates/assets.xml | 14 ++ .../templates/report_templates.xml | 147 +++++++++++++----- .../views/document_layout.xml | 35 +---- 12 files changed, 336 insertions(+), 141 deletions(-) create mode 100644 report_layout_config/migrations/14.0.1.0.0/pre-migrate.py create mode 100644 report_layout_config/static/src/scss/style.scss create mode 100644 report_layout_config/templates/assets.xml diff --git a/report_layout_config/README.rst b/report_layout_config/README.rst index 6c46ba656a..c5a1872cb7 100644 --- a/report_layout_config/README.rst +++ b/report_layout_config/README.rst @@ -2,10 +2,13 @@ Report layout configuration =========================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:b3b41741aeb7edc57c143d58911a9c2496218b8731d56e52f9510e6a979967a0 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -14,16 +17,16 @@ Report layout configuration :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/13.0/report_layout_config + :target: https://github.com/OCA/reporting-engine/tree/14.0/report_layout_config :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-13-0/reporting-engine-13-0-report_layout_config + :target: https://translation.odoo-community.org/projects/reporting-engine-14-0/reporting-engine-14-0-report_layout_config :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/13.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=14.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module provides new report template with possibility to add image to replace header and footer. @@ -46,8 +49,8 @@ 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 `_. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -63,6 +66,7 @@ Contributors ~~~~~~~~~~~~ * Thomas Nowicki +* Iryna Vyshnevska Maintainers ~~~~~~~~~~~ @@ -77,6 +81,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_layout_config/__manifest__.py b/report_layout_config/__manifest__.py index e27c0401e2..6524f68fa4 100644 --- a/report_layout_config/__manifest__.py +++ b/report_layout_config/__manifest__.py @@ -12,6 +12,7 @@ "depends": ["web", "base"], "data": [ "views/document_layout.xml", + "templates/assets.xml", "templates/report_templates.xml", "data/report_layout.xml", ], diff --git a/report_layout_config/data/report_layout.xml b/report_layout_config/data/report_layout.xml index 480a10408f..1d41271b81 100644 --- a/report_layout_config/data/report_layout.xml +++ b/report_layout_config/data/report_layout.xml @@ -1,14 +1,27 @@ - - Layout images + + Layout images standard /report_layout_config/static/img/preview_standard.png /report_layout_config/static/pdf/preview_standard.pdf + + + Layout images clean + + /report_layout_config/static/img/preview_standard.png + /report_layout_config/static/pdf/preview_standard.pdf + + diff --git a/report_layout_config/i18n/report_layout_config.pot b/report_layout_config/i18n/report_layout_config.pot index cd3e98a9d4..f237ae3ecd 100644 --- a/report_layout_config/i18n/report_layout_config.pot +++ b/report_layout_config/i18n/report_layout_config.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,42 +13,124 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +"!important;\n" +" }\n" +" }\n" +" tbody {\n" +" tr:last-child td {\n" +" border-bottom: 3px solid" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +"&.o_clean_footer {\n" +" border-top: 3px solid" +msgstr "" + #. module: report_layout_config #: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report msgid "" "&.o_report_layout_standard {\n" -" h2 {\n" -" color:" +" h2 {\n" +" color:" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" background-color:" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" tr th {\n" +" border-top: 3px solid" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" #total {\n" +" strong {\n" +" color:" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" h4 {\n" +" color:" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" }\n" +" .pagenumber {\n" +" border: 3px solid" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" }\n" +" }\n" +" &.o_report_layout_clean {\n" +" h1, h2, h3 {\n" +" color:" msgstr "" #. module: report_layout_config #: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report msgid "" ";\n" -" }\n" -" #informations strong {\n" -" color:" +" }\n" +" #informations strong {\n" +" color:" msgstr "" #. module: report_layout_config #: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report msgid "" ";\n" -" }\n" -" #total strong{\n" -" color:" +" }\n" +" #total strong{\n" +" color:" msgstr "" #. module: report_layout_config #: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report msgid "" ";\n" -" }\n" -" table {\n" -" thead {\n" +" }\n" +" strong {\n" " color:" msgstr "" +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.styles_company_report +msgid "" +";\n" +" }\n" +" table {\n" +" thead {\n" +" color:" +msgstr "" + #. module: report_layout_config #: model:ir.model,name:report_layout_config.model_res_company msgid "Companies" @@ -60,8 +142,14 @@ msgid "Company Document Layout" msgstr "" #. module: report_layout_config -#: model_terms:ir.ui.view,arch_db:report_layout_config.external_layout_images_template -#: model_terms:ir.ui.view,arch_db:report_layout_config.footer_image +#: model:ir.model.fields,field_description:report_layout_config.field_base_document_layout__display_name +#: model:ir.model.fields,field_description:report_layout_config.field_res_company__display_name +msgid "Display Name" +msgstr "" + +#. module: report_layout_config +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_clean_layout_images_template +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_standard_layout_images_template msgid "Footer logo" msgstr "" @@ -78,29 +166,45 @@ msgid "Full header image" msgstr "" #. module: report_layout_config -#: model_terms:ir.ui.view,arch_db:report_layout_config.external_layout_images_template -#: model_terms:ir.ui.view,arch_db:report_layout_config.header_image -msgid "Logo" +#: model:ir.model.fields,field_description:report_layout_config.field_base_document_layout__id +#: model:ir.model.fields,field_description:report_layout_config.field_res_company__id +msgid "ID" +msgstr "" + +#. module: report_layout_config +#: model:ir.model.fields,field_description:report_layout_config.field_base_document_layout____last_update +#: model:ir.model.fields,field_description:report_layout_config.field_res_company____last_update +msgid "Last Modified on" msgstr "" #. module: report_layout_config -#: model:ir.model.fields,field_description:report_layout_config.field_base_document_layout__need_images_layout -msgid "Need Images Layout" +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_clean_layout_images_template +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_standard_layout_images_template +msgid "Logo" msgstr "" #. module: report_layout_config -#: model_terms:ir.ui.view,arch_db:report_layout_config.external_layout_images_template +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_clean_layout_images_template +#: model_terms:ir.ui.view,arch_db:report_layout_config.external_standard_layout_images_template msgid "Page: / " msgstr "" #. module: report_layout_config #: model:ir.model.fields,help:report_layout_config.field_base_document_layout__full_footer_img +msgid "Replaces whole footer, disables footer logo" +msgstr "" + +#. module: report_layout_config +#: model:ir.model.fields,help:report_layout_config.field_base_document_layout__full_header_img +msgid "Replaces whole header with image" +msgstr "" + +#. module: report_layout_config #: model:ir.model.fields,help:report_layout_config.field_res_company__full_footer_img msgid "This image will replace all footer." msgstr "" #. module: report_layout_config -#: model:ir.model.fields,help:report_layout_config.field_base_document_layout__full_header_img #: model:ir.model.fields,help:report_layout_config.field_res_company__full_header_img msgid "This image will replace all header." msgstr "" diff --git a/report_layout_config/migrations/14.0.1.0.0/pre-migrate.py b/report_layout_config/migrations/14.0.1.0.0/pre-migrate.py new file mode 100644 index 0000000000..fd4459fee9 --- /dev/null +++ b/report_layout_config/migrations/14.0.1.0.0/pre-migrate.py @@ -0,0 +1,18 @@ +# Copyright 2021 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + +from openupgradelib.openupgrade import rename_xmlids + + +def migrate(cr, version): + + rename_xmlids( + cr, + [ + ( + "report_layout_config.external_layout_images", + "report_layout_config.external_standard_layout_images_template", + ) + ], + ) diff --git a/report_layout_config/models/base_document_layout.py b/report_layout_config/models/base_document_layout.py index 387ce0ba4f..11a353d1f2 100644 --- a/report_layout_config/models/base_document_layout.py +++ b/report_layout_config/models/base_document_layout.py @@ -8,22 +8,16 @@ class BaseDocumentLayout(models.TransientModel): _inherit = "base.document.layout" full_header_img = fields.Binary( - related="company_id.full_header_img", readonly=False + related="company_id.full_header_img", + readonly=False, + help="Replaces whole header with image", ) full_footer_img = fields.Binary( - related="company_id.full_footer_img", readonly=False + related="company_id.full_footer_img", + readonly=False, + help="Replaces whole footer, disables footer logo", ) - need_images_layout = fields.Boolean( - compute="_compute_need_images_layout", readonly=True - ) - - @api.depends("report_layout_id") - def _compute_need_images_layout(self): - self.ensure_one() - img_lay = self.env.ref("report_layout_config.external_layout_images").view_id - self.need_images_layout = self.external_report_layout_id == img_lay - @api.depends( "full_footer_img", "full_header_img", diff --git a/report_layout_config/readme/CONTRIBUTORS.rst b/report_layout_config/readme/CONTRIBUTORS.rst index 0a9139f765..429d075308 100644 --- a/report_layout_config/readme/CONTRIBUTORS.rst +++ b/report_layout_config/readme/CONTRIBUTORS.rst @@ -1 +1,2 @@ * Thomas Nowicki +* Iryna Vyshnevska diff --git a/report_layout_config/static/description/index.html b/report_layout_config/static/description/index.html index 7e457c7afc..b944681506 100644 --- a/report_layout_config/static/description/index.html +++ b/report_layout_config/static/description/index.html @@ -1,20 +1,20 @@ - + - + Report layout configuration -
    -

    Report Text Format Option

    +
    + + +Odoo Community Association + +
    +

    Report Text Format Option

    -

    Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

    +

    Beta License: LGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

    This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports.

    Table of contents

    @@ -386,14 +391,13 @@

    Report Text Format Option

    -

    Configuration

    +

    Configuration

    In case the exported report should be encoded in another system than UTF-8, following fields of the report record (Settings > Technical > Reports) should be populated accordingly.

    • Text Encoding: set an encoding system (such as cp932)
    • -
    • Text Encode Error Handling: select ‘Ignore’ or ‘Replace’ as -necessary.
        +
      • Text Encode Error Handling: select ‘Ignore’ or ‘Replace’ as necessary.
        • ‘Ignore’: in case of an encoding error, the problematic character will be removed from the exported file.
        • ‘Replace’: in case of an encoding error, the problematic character @@ -413,7 +417,7 @@

          Configuration

    -

    Bug Tracker

    +

    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 to smash it by providing a detailed and welcomed @@ -421,15 +425,15 @@

    Bug Tracker

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

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Quartile
    -

    Contributors

    +

    Contributors

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -454,5 +458,6 @@

    Maintainers

    +
    diff --git a/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index 459bdf6922..fb920d0285 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-reporting-engine" -version = "18.0.20260202.0" +version = "18.0.20260320.0" dependencies = [ "odoo-addon-base_comment_template==18.0.*", "odoo-addon-bi_sql_editor==18.0.*", @@ -22,6 +22,7 @@ dependencies = [ "odoo-addon-report_qweb_pdf_cover==18.0.*", "odoo-addon-report_qweb_pdf_watermark==18.0.*", "odoo-addon-report_substitute==18.0.*", + "odoo-addon-report_text_format_option==18.0.*", "odoo-addon-report_wkhtmltopdf_param==18.0.*", "odoo-addon-report_xlsx==18.0.*", "odoo-addon-report_xlsx_helper==18.0.*", From a1f9c9cb37af758c71c054b71eb46a53c538c26c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 20 Mar 2026 12:51:21 +0000 Subject: [PATCH 34/38] [BOT] post-merge updates --- README.md | 2 +- report_csv/README.rst | 8 +++++-- report_csv/__manifest__.py | 2 +- report_csv/static/description/index.html | 30 ++++++++++++++---------- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 14fdbefec8..374bbedf50 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ addon | version | maintainers | summary [bi_sql_editor](bi_sql_editor/) | 18.0.1.0.4 | legalsylvain | BI Views builder, based on Materialized or Normal SQL Views [pdf_xml_attachment](pdf_xml_attachment/) | 18.0.1.0.0 | simahawk alexis-via | Provides helpers to work w/ PDFs and XML attachments [report_context](report_context/) | 18.0.1.0.0 | | Adding context to reports -[report_csv](report_csv/) | 18.0.1.0.0 | | Base module to create csv report +[report_csv](report_csv/) | 18.0.1.0.1 | | Base module to create csv report [report_display_name_in_footer](report_display_name_in_footer/) | 18.0.1.0.0 | Shide rafaelbn | Show document name in report footer [report_footer_html](report_footer_html/) | 18.0.1.0.0 | Shide rafaelbn | Show HTML content in desired Footer Reports [report_partner_address](report_partner_address/) | 18.0.1.0.0 | yostashiro aungkokolin1997 | Translatable partner address details for reports and portal diff --git a/report_csv/README.rst b/report_csv/README.rst index f07466d5d9..712c9302c1 100644 --- a/report_csv/README.rst +++ b/report_csv/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =============== Base report csv =============== @@ -7,13 +11,13 @@ Base report csv !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:380b9dc8c98a77b37a8e5e5846b3ddc471dcbf470c9805cc5f9a04f2e4913f12 + !! source digest: sha256:c8264f75280695c8d3a022c1ad23f3f5ed98e47a9d050ff33053b720649ebf8c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status :alt: Production/Stable -.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-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 diff --git a/report_csv/__manifest__.py b/report_csv/__manifest__.py index 77bf4dcba7..7f214f33b6 100644 --- a/report_csv/__manifest__.py +++ b/report_csv/__manifest__.py @@ -6,7 +6,7 @@ "author": "Creu Blanca, Odoo Community Association (OCA)", "website": "https://github.com/OCA/reporting-engine", "category": "Reporting", - "version": "18.0.1.0.0", + "version": "18.0.1.0.1", "license": "AGPL-3", "depends": ["base", "web"], "demo": ["demo/report.xml"], diff --git a/report_csv/static/description/index.html b/report_csv/static/description/index.html index a2f11cef34..bda00f8c83 100644 --- a/report_csv/static/description/index.html +++ b/report_csv/static/description/index.html @@ -3,7 +3,7 @@ -Base report csv +README.rst -
    -

    Base report csv

    +
    + + +Odoo Community Association + +
    +

    Base report csv

    -

    Production/Stable License: AGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

    +

    Production/Stable License: AGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

    This module provides a basic report class to generate csv report.

    Table of contents

    @@ -386,7 +391,7 @@

    Base report csv

    -

    Configuration

    +

    Configuration

    In case the exported CSV report should be encoded in another system than UTF-8, following fields of the report record (Settings > Technical > Reports) should be populated accordingly.

    @@ -404,7 +409,7 @@

    Configuration

    -

    Usage

    +

    Usage

    An example of CSV report for partners on a module called `module_name`:

    A python class :

    @@ -446,7 +451,7 @@

    Usage

    Update encoding with an appropriate value (e.g. cp932) as necessary.

    -

    Bug Tracker

    +

    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 to smash it by providing a detailed and welcomed @@ -454,15 +459,15 @@

    Bug Tracker

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

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Creu Blanca
    -

    Contributors

    +

    Contributors

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -491,5 +496,6 @@

    Maintainers

    +
    From 02c614456a55d58096c930158fbce9f325ba7319 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 20 Mar 2026 12:57:48 +0000 Subject: [PATCH 35/38] [UPD] Update report_layout_config.pot --- report_layout_config/i18n/report_layout_config.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/report_layout_config/i18n/report_layout_config.pot b/report_layout_config/i18n/report_layout_config.pot index 5d601c45f2..67fbbb271a 100644 --- a/report_layout_config/i18n/report_layout_config.pot +++ b/report_layout_config/i18n/report_layout_config.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 17.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From cb19222615ca89453026d879ce148ff2bb85f8c7 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 20 Mar 2026 13:01:07 +0000 Subject: [PATCH 36/38] [BOT] post-merge updates --- README.md | 1 + report_layout_config/README.rst | 32 ++++++++------ .../static/description/index.html | 43 +++++++++++-------- setup/_metapackage/pyproject.toml | 3 +- 4 files changed, 47 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 374bbedf50..6a335ebcca 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ addon | version | maintainers | summary [report_csv](report_csv/) | 18.0.1.0.1 | | Base module to create csv report [report_display_name_in_footer](report_display_name_in_footer/) | 18.0.1.0.0 | Shide rafaelbn | Show document name in report footer [report_footer_html](report_footer_html/) | 18.0.1.0.0 | Shide rafaelbn | Show HTML content in desired Footer Reports +[report_layout_config](report_layout_config/) | 18.0.1.0.0 | | Add possibility to easily modify the global report layout [report_partner_address](report_partner_address/) | 18.0.1.0.0 | yostashiro aungkokolin1997 | Translatable partner address details for reports and portal [report_pdf_form](report_pdf_form/) | 18.0.1.0.0 | grindtildeath | Fill custom PDF form reports [report_pdf_zip_download](report_pdf_zip_download/) | 18.0.1.0.0 | | Report PDF ZIP Download diff --git a/report_layout_config/README.rst b/report_layout_config/README.rst index e4bd47cf74..a4998a313d 100644 --- a/report_layout_config/README.rst +++ b/report_layout_config/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + =========================== Report layout configuration =========================== @@ -7,23 +11,23 @@ Report layout configuration !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:f861b788cd3d9bdede8435efac7d631c6b767aa7900d2114f81277101364079f + !! source digest: sha256:f1064f4ab436ff220954da0d47e14964791f2f0a8f1ffed8ea9761d75d2f01f6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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 +.. |badge2| image:: https://img.shields.io/badge/license-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/17.0/report_layout_config + :target: https://github.com/OCA/reporting-engine/tree/18.0/report_layout_config :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-17-0/reporting-engine-17-0-report_layout_config + :target: https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-report_layout_config :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -39,11 +43,11 @@ to replace header and footer. Usage ===== -- In Setting/General Setting/Document Layout: +- In Setting/General Setting/Document Layout: - - Click on Configure Document Layout - - On the wizard choose Layout images - - Set the Full header image + Full footer image + - Click on Configure Document Layout + - On the wizard choose Layout images + - Set the Full header image + Full footer image Bug Tracker =========== @@ -51,7 +55,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -66,9 +70,9 @@ Authors Contributors ------------ -- Thomas Nowicki -- Iryna Vyshnevska -- Do Anh Duy +- Thomas Nowicki +- Iryna Vyshnevska +- Do Anh Duy Maintainers ----------- @@ -83,6 +87,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_layout_config/static/description/index.html b/report_layout_config/static/description/index.html index 2fa80c43aa..4dcf461217 100644 --- a/report_layout_config/static/description/index.html +++ b/report_layout_config/static/description/index.html @@ -3,15 +3,16 @@ -Report layout configuration +README.rst -
    -

    Report layout configuration

    +
    + + +Odoo Community Association + +
    +

    Report layout configuration

    -

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

    +

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

    This module provides new report template with possibility to add image to replace header and footer.

    Table of contents

    @@ -385,7 +391,7 @@

    Report layout configuration

    -

    Usage

    +

    Usage

    • In Setting/General Setting/Document Layout:
      • Click on Configure Document Layout
      • @@ -396,23 +402,23 @@

        Usage

    -

    Bug Tracker

    +

    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 to smash it by providing a detailed and welcomed -feedback.

    +feedback.

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

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Camptocamp
    -

    Contributors

    +

    Contributors

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    -Odoo Community Association + +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.

    +

    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/setup/_metapackage/pyproject.toml b/setup/_metapackage/pyproject.toml index fb920d0285..1113fa16fb 100644 --- a/setup/_metapackage/pyproject.toml +++ b/setup/_metapackage/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "odoo-addons-oca-reporting-engine" -version = "18.0.20260320.0" +version = "18.0.20260320.1" dependencies = [ "odoo-addon-base_comment_template==18.0.*", "odoo-addon-bi_sql_editor==18.0.*", @@ -9,6 +9,7 @@ dependencies = [ "odoo-addon-report_csv==18.0.*", "odoo-addon-report_display_name_in_footer==18.0.*", "odoo-addon-report_footer_html==18.0.*", + "odoo-addon-report_layout_config==18.0.*", "odoo-addon-report_partner_address==18.0.*", "odoo-addon-report_pdf_form==18.0.*", "odoo-addon-report_pdf_zip_download==18.0.*", From 9fdd865a20f2b262c18e0fcc36e09cb7f6406e0a Mon Sep 17 00:00:00 2001 From: Weblate Date: Fri, 20 Mar 2026 13:01:31 +0000 Subject: [PATCH 37/38] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: reporting-engine-18.0/reporting-engine-18.0-report_pdf_form Translate-URL: https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-report_pdf_form/ --- report_pdf_form/i18n/it.po | 59 +++++++++++++++++++++++++++++--------- report_pdf_form/i18n/nl.po | 54 +++++++++++++++++++++++++++------- 2 files changed, 90 insertions(+), 23 deletions(-) diff --git a/report_pdf_form/i18n/it.po b/report_pdf_form/i18n/it.po index 393b68368e..9b38ba617b 100644 --- a/report_pdf_form/i18n/it.po +++ b/report_pdf_form/i18n/it.po @@ -88,8 +88,7 @@ msgstr "Valore context" #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__context -msgid "" -"Context dictionary as Python expression, empty by default (Default: {})" +msgid "Context dictionary as Python expression, empty by default (Default: {})" msgstr "" "Dizionario context come espressione Python, predefinito come vuoto (Default: " "{})" @@ -118,8 +117,8 @@ msgstr "Nome visualizzato" #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form_field__odoo_field_value msgid "" -"Dot-separated path to field from the record, e.g. partner_id.name, or python" -" code" +"Dot-separated path to field from the record, e.g. partner_id.name, or python " +"code" msgstr "" "Percorso separato da punti al campo dal record, ad esempio partner_id.name o " "codice Python" @@ -153,6 +152,11 @@ msgstr "Codifica" msgid "Encoding to be applied to the generated CSV file. e.g. cp932" msgstr "Codifica da applicare al file CSV generato. Es. cp932" +#. module: report_pdf_form +#: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__text_encoding +msgid "Encoding to be applied to the generated Text file. e.g. cp932" +msgstr "" + #. module: report_pdf_form #: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__xml_id msgid "External ID" @@ -218,6 +222,13 @@ msgstr "" "Se non è selezionato nulla, l'esportazione del CSV fallirà con un messaggio " "di errore qando c'è un carattere che non può essere codificato." +#. module: report_pdf_form +#: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__text_encode_error_handling +msgid "" +"If nothing is selected, text export will fail with an error message when " +"there is a character that fail to be encoded." +msgstr "" + #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__multi msgid "" @@ -229,8 +240,7 @@ msgstr "" #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__domain -msgid "" -"If set, the action will only appear on records that matches the domain." +msgid "If set, the action will only appear on records that matches the domain." msgstr "" "Se impostata, l'azione apparirà solo sui record che corrispondono al dominio." @@ -254,6 +264,11 @@ msgstr "Ultimo aggiornamento di" msgid "Last Updated on" msgstr "Ultimo aggiornamento il" +#. module: report_pdf_form +#: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__line_ending +msgid "Line Ending" +msgstr "" + #. module: report_pdf_form #: model:ir.model,name:report_pdf_form.model_report_pdf_form_field msgid "Mapping of Odoo field to PDF form field" @@ -298,8 +313,8 @@ msgstr "Su documenti multipli" #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__help msgid "" -"Optional help text for the users with a description of the target view, such" -" as its usage and purpose." +"Optional help text for the users with a description of the target view, such " +"as its usage and purpose." msgstr "" "Testo di aiuto opzionale per l'utente con una descrizione della vista " "obiettivo, come il suo utilizzo e obiettivo." @@ -401,6 +416,13 @@ msgstr "Variabile riutilizzabile da valutare nel codice dei campi del modulo" msgid "Save as Attachment Prefix" msgstr "Salva come prefisso allegato" +#. module: report_pdf_form +#: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__line_ending +msgid "" +"Select the type of line ending in case the report needs to be output with " +"other line ending than 'LF'." +msgstr "" + #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__binding_model_id msgid "" @@ -420,6 +442,16 @@ msgstr "Testo statico" msgid "Template Name" msgstr "Nome modello" +#. module: report_pdf_form +#: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__text_encode_error_handling +msgid "Text Encode Error Handling" +msgstr "" + +#. module: report_pdf_form +#: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__text_encoding +msgid "Text Encoding" +msgstr "" + #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__report_file msgid "" @@ -451,13 +483,14 @@ msgstr "Esistono due modi per recuperare il valore dall'oggetto:" #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__footer_html msgid "" "This HTML will be displayed in the footer of this report.\n" -"It's recommended to change Paper Format to a new one that fits correctly to this report by adjusting 'Bottom Margin (mm)' accordingly." +"It's recommended to change Paper Format to a new one that fits correctly to " +"this report by adjusting 'Bottom Margin (mm)' accordingly." msgstr "" -"Questo codice HTML verrà visualizzato nel piè di pagina di questo resoconto." -"\n" +"Questo codice HTML verrà visualizzato nel piè di pagina di questo " +"resoconto.\n" "Si consiglia di modificare il formato cartaceo in modo che si adatti " -"correttamente a questo resoconto, modificando di conseguenza il " -"\"Margine inferiore (mm)\"." +"correttamente a questo resoconto, modificando di conseguenza il \"Margine " +"inferiore (mm)\"." #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__attachment diff --git a/report_pdf_form/i18n/nl.po b/report_pdf_form/i18n/nl.po index b6ad41c17f..3683b19c1c 100644 --- a/report_pdf_form/i18n/nl.po +++ b/report_pdf_form/i18n/nl.po @@ -88,9 +88,9 @@ msgstr "Contextwaarde" #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__context -msgid "" -"Context dictionary as Python expression, empty by default (Default: {})" -msgstr "Context dictionary als Python expressie, standaard leeg (Standaard: {})" +msgid "Context dictionary as Python expression, empty by default (Default: {})" +msgstr "" +"Context dictionary als Python expressie, standaard leeg (Standaard: {})" #. module: report_pdf_form #: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__create_uid @@ -116,8 +116,8 @@ msgstr "Schermnaam" #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form_field__odoo_field_value msgid "" -"Dot-separated path to field from the record, e.g. partner_id.name, or python" -" code" +"Dot-separated path to field from the record, e.g. partner_id.name, or python " +"code" msgstr "" "Pad naar veld gescheiden door punten, bijv. partner_id.name, of python code" @@ -153,6 +153,11 @@ msgstr "" "Codering die moet worden toegepast op het gegenereerde CSV-bestand, bijv. " "cp932" +#. module: report_pdf_form +#: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__text_encoding +msgid "Encoding to be applied to the generated Text file. e.g. cp932" +msgstr "" + #. module: report_pdf_form #: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__xml_id msgid "External ID" @@ -218,6 +223,13 @@ msgstr "" "Indien niets is geselecteerd, zal de CSV-export mislukken met een " "foutmelding wanneer een teken niet kan worden gecodeerd." +#. module: report_pdf_form +#: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__text_encode_error_handling +msgid "" +"If nothing is selected, text export will fail with an error message when " +"there is a character that fail to be encoded." +msgstr "" + #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__multi msgid "" @@ -229,8 +241,7 @@ msgstr "" #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__domain -msgid "" -"If set, the action will only appear on records that matches the domain." +msgid "If set, the action will only appear on records that matches the domain." msgstr "" "Indien ingesteld, verschijnt de actie alleen bij records die aan het domein " "voldoen." @@ -255,6 +266,11 @@ msgstr "Laatst bijgewerkt door" msgid "Last Updated on" msgstr "Laatst bijgewerkt op" +#. module: report_pdf_form +#: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__line_ending +msgid "Line Ending" +msgstr "" + #. module: report_pdf_form #: model:ir.model,name:report_pdf_form.model_report_pdf_form_field msgid "Mapping of Odoo field to PDF form field" @@ -299,8 +315,8 @@ msgstr "Op meerdere doc." #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__help msgid "" -"Optional help text for the users with a description of the target view, such" -" as its usage and purpose." +"Optional help text for the users with a description of the target view, such " +"as its usage and purpose." msgstr "" "Optionele helptekst voor de gebruikers met een beschrijving van de " "doelweergave, zoals het gebruik en het doel ervan." @@ -404,6 +420,13 @@ msgstr "" msgid "Save as Attachment Prefix" msgstr "Opslaan als bijlage voorvoegsel" +#. module: report_pdf_form +#: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__line_ending +msgid "" +"Select the type of line ending in case the report needs to be output with " +"other line ending than 'LF'." +msgstr "" + #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__binding_model_id msgid "" @@ -423,6 +446,16 @@ msgstr "Statische tekst" msgid "Template Name" msgstr "Sjabloonnaam" +#. module: report_pdf_form +#: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__text_encode_error_handling +msgid "Text Encode Error Handling" +msgstr "" + +#. module: report_pdf_form +#: model:ir.model.fields,field_description:report_pdf_form.field_report_pdf_form__text_encoding +msgid "Text Encoding" +msgstr "" + #. module: report_pdf_form #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__report_file msgid "" @@ -454,7 +487,8 @@ msgstr "Er zijn twee manieren om een waarde uit het object op te halen:" #: model:ir.model.fields,help:report_pdf_form.field_report_pdf_form__footer_html msgid "" "This HTML will be displayed in the footer of this report.\n" -"It's recommended to change Paper Format to a new one that fits correctly to this report by adjusting 'Bottom Margin (mm)' accordingly." +"It's recommended to change Paper Format to a new one that fits correctly to " +"this report by adjusting 'Bottom Margin (mm)' accordingly." msgstr "" "Deze HTML wordt weergegeven in de voettekst van dit rapport.\n" "Het wordt aanbevolen om het papierformaat te wijzigen naar een formaat dat " From ed654924efbc589d5d7c6a20ccbc3ff7b67dec6b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 20 Mar 2026 13:06:44 +0000 Subject: [PATCH 38/38] [BOT] post-merge updates --- README.md | 2 +- report_csv/README.rst | 2 +- report_csv/__manifest__.py | 2 +- report_csv/static/description/index.html | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6a335ebcca..6b0f25b989 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ addon | version | maintainers | summary [bi_sql_editor](bi_sql_editor/) | 18.0.1.0.4 | legalsylvain | BI Views builder, based on Materialized or Normal SQL Views [pdf_xml_attachment](pdf_xml_attachment/) | 18.0.1.0.0 | simahawk alexis-via | Provides helpers to work w/ PDFs and XML attachments [report_context](report_context/) | 18.0.1.0.0 | | Adding context to reports -[report_csv](report_csv/) | 18.0.1.0.1 | | Base module to create csv report +[report_csv](report_csv/) | 18.0.1.0.2 | | Base module to create csv report [report_display_name_in_footer](report_display_name_in_footer/) | 18.0.1.0.0 | Shide rafaelbn | Show document name in report footer [report_footer_html](report_footer_html/) | 18.0.1.0.0 | Shide rafaelbn | Show HTML content in desired Footer Reports [report_layout_config](report_layout_config/) | 18.0.1.0.0 | | Add possibility to easily modify the global report layout diff --git a/report_csv/README.rst b/report_csv/README.rst index 712c9302c1..ab72aec439 100644 --- a/report_csv/README.rst +++ b/report_csv/README.rst @@ -11,7 +11,7 @@ Base report csv !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:c8264f75280695c8d3a022c1ad23f3f5ed98e47a9d050ff33053b720649ebf8c + !! source digest: sha256:bc658cd69105f9a3c0e300b2c63a034ed67aa439a5b6b6b05c3155e092a4ac5c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png diff --git a/report_csv/__manifest__.py b/report_csv/__manifest__.py index 7f214f33b6..4fd5fb9be8 100644 --- a/report_csv/__manifest__.py +++ b/report_csv/__manifest__.py @@ -6,7 +6,7 @@ "author": "Creu Blanca, Odoo Community Association (OCA)", "website": "https://github.com/OCA/reporting-engine", "category": "Reporting", - "version": "18.0.1.0.1", + "version": "18.0.1.0.2", "license": "AGPL-3", "depends": ["base", "web"], "demo": ["demo/report.xml"], diff --git a/report_csv/static/description/index.html b/report_csv/static/description/index.html index bda00f8c83..4ee713fc85 100644 --- a/report_csv/static/description/index.html +++ b/report_csv/static/description/index.html @@ -372,7 +372,7 @@

    Base report csv

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:c8264f75280695c8d3a022c1ad23f3f5ed98e47a9d050ff33053b720649ebf8c +!! source digest: sha256:bc658cd69105f9a3c0e300b2c63a034ed67aa439a5b6b6b05c3155e092a4ac5c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Production/Stable License: AGPL-3 OCA/reporting-engine Translate me on Weblate Try me on Runboat

    This module provides a basic report class to generate csv report.