-
-
Notifications
You must be signed in to change notification settings - Fork 795
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ADD][16.0] module report_format_option
- Loading branch information
1 parent
604ec7b
commit e5ed3a7
Showing
16 changed files
with
721 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 @@ | ||
Define report_format_option module as a dependency of this current module |
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,88 @@ | ||
==================== | ||
Report 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_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_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. | ||
The module is expected to be a dependency of other reporting modules (e.g., report_csv). | ||
|
||
**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. | ||
|
||
* Encoding: set an encoding system (such as cp932) | ||
* 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_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_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 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_format_option.demo_report_template</field> | ||
<field name="report_file">report_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,63 @@ | ||
# 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" | ||
|
||
encoding = fields.Char( | ||
help="Encoding to be applied to the generated CSV file. e.g. cp932" | ||
) | ||
encode_error_handling = fields.Selection( | ||
selection=[("ignore", "Ignore"), ("replace", "Replace")], | ||
help="If nothing is selected, CSV export will fail with an error message when " | ||
"there is a character that fail to be encoded.", | ||
) | ||
show_encoding = fields.Boolean( | ||
compute="_compute_show_encoding", | ||
help="Technical field to control the visibility of the encoding field.", | ||
) | ||
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'.", | ||
) | ||
show_line_ending = fields.Boolean( | ||
compute="_compute_show_line_ending", | ||
help="Technical field to control the visibility of the line ending field.", | ||
) | ||
|
||
def _compute_show_encoding(self): | ||
"""Extend this method to show the encoding field in the report form.""" | ||
for report in self: | ||
report.show_encoding = False | ||
if report.report_type == "qweb-text": | ||
report.show_encoding = True | ||
|
||
def _compute_show_line_ending(self): | ||
"""Extend this method to show the line ending field in the report form.""" | ||
for report in self: | ||
report.show_line_ending = False | ||
if report.report_type == "qweb-text": | ||
report.show_line_ending = True | ||
|
||
@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.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.encoding or "utf-8" | ||
encode_options = {} | ||
if report.encode_error_handling: | ||
encode_options["errors"] = report.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. | ||
|
||
* Encoding: set an encoding system (such as cp932) | ||
* 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,2 @@ | ||
This is a technical module designed to add encoding fields to the ir.actions.report model and is applied to Text type reports. | ||
The module is expected to be a dependency of other reporting modules (e.g., report_csv). |
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 @@ | ||
Make this module as a dependency of report_csv |
Oops, something went wrong.