-
-
Notifications
You must be signed in to change notification settings - Fork 789
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e8df660
commit 16a1b28
Showing
14 changed files
with
691 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <https://github.com/OCA/reporting-engine/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 <https://github.com/OCA/reporting-engine/issues/new?body=module:%20report_text_format_option%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. | ||
|
||
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 <https://github.com/OCA/reporting-engine/tree/16.0/report_text_format_option>`_ project on GitHub. | ||
|
||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<odoo> | ||
<!-- Demo report action --> | ||
<record id="action_report_demo" model="ir.actions.report"> | ||
<field name="name">Demo Text Report</field> | ||
<field name="model">res.partner</field> | ||
<field name="report_type">qweb-text</field> | ||
<field name="report_name">report_text_format_option.demo_report_template</field> | ||
<field name="report_file">report_text_format_option.demo_report_template</field> | ||
<field name="binding_model_id" ref="base.model_res_partner" /> | ||
</record> | ||
|
||
<!-- Demo report template --> | ||
<template id="demo_report_template"> | ||
<t t-foreach="docs" t-as="doc"> | ||
<p>Hello, <t t-esc="doc.name" />!</p> | ||
</t> | ||
</template> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import ir_actions_report |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. |
Oops, something went wrong.