Skip to content

Commit

Permalink
[4623][UPD][ADD] report_csv, report_text_format_option (#140)
Browse files Browse the repository at this point in the history
* [UPD][ADD] report_csv, report_text_format_option
  • Loading branch information
AungKoKoLin1997 authored Jun 20, 2024
1 parent bd092a5 commit 50fcc8e
Show file tree
Hide file tree
Showing 22 changed files with 907 additions and 14 deletions.
5 changes: 3 additions & 2 deletions report_csv/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
"author": "Creu Blanca, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/reporting-engine",
"category": "Reporting",
"version": "16.0.2.0.0",
"version": "16.0.1.0.0",
"license": "AGPL-3",
"depends": ["base", "web", "report_format_option"],
"depends": ["base", "web"],
"demo": ["demo/report.xml"],
"data": ["views/ir_actions_views.xml"],
"assets": {
"web.assets_backend": [
"report_csv/static/src/js/report/qwebactionmanager.esm.js"
Expand Down
15 changes: 8 additions & 7 deletions report_csv/models/ir_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@ class ReportAction(models.Model):
report_type = fields.Selection(
selection_add=[("csv", "csv")], ondelete={"csv": "set default"}
)

def _compute_show_encoding(self):
super()._compute_show_encoding()
for report in self:
if report.report_type == "csv":
report.show_encoding = True
return
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.",
)

@api.model
def _render_csv(self, report_ref, docids, data):
Expand Down
11 changes: 9 additions & 2 deletions report_csv/readme/CONFIGURE.rst
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
For encoding configuration details, please refer to the `CONFIGURE.rst` file in the report_format_option module.
This document provides comprehensive guidelines and instructions for setting encoding parameters correctly.
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.

* 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.
3 changes: 0 additions & 3 deletions report_csv/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
* Enric Tobella <etobella@creublanca.es>
* Jaime Arroyo <jaime.arroyo@creublanca.es>
* Rattapong Chokmasermkul <rattapongc@ecosoft.co.th>
* `Quartile <https://www.quartile.co>`__:

* Aung Ko Ko Lin
20 changes: 20 additions & 0 deletions report_csv/views/ir_actions_views.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="act_report_xml_view" model="ir.ui.view">
<field name="name">ir.actions.report</field>
<field name="model">ir.actions.report</field>
<field name="inherit_id" ref="base.act_report_xml_view" />
<field name="arch" type="xml">
<xpath expr="//field[@name='report_type']" position="after">
<field
name="encoding"
attrs="{'invisible': [('report_type', '!=', 'csv')]}"
/>
<field
name="encode_error_handling"
attrs="{'invisible': [('encoding', '=', False)]}"
/>
</xpath>
</field>
</record>
</odoo>
87 changes: 87 additions & 0 deletions report_text_format_option/README.rst
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:37b5b67f110dcd3bf227357ada38dfcd3592d686401c059f8a337ed56881ffca
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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.
1 change: 1 addition & 0 deletions report_text_format_option/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
14 changes: 14 additions & 0 deletions report_text_format_option/__manifest__.py
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,
}
18 changes: 18 additions & 0 deletions report_text_format_option/demo/report_demo.xml
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>
93 changes: 93 additions & 0 deletions report_text_format_option/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# 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"
"PO-Revision-Date: 2024-06-07 12:34+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\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 "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 "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 "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 "Salve,"

#. 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 ""
"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 "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 "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 "Sostituisce"

#. module: report_text_format_option
#: model:ir.model,name:report_text_format_option.model_ir_actions_report
msgid "Report Action"
msgstr "Azione resoconto"

#. 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 ""
"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 "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 "Codifica testo"
83 changes: 83 additions & 0 deletions report_text_format_option/i18n/report_text_format_option.pot
Original file line number Diff line number Diff line change
@@ -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 ""
1 change: 1 addition & 0 deletions report_text_format_option/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import ir_actions_report
Loading

0 comments on commit 50fcc8e

Please sign in to comment.