diff --git a/report_qweb_txt/README.rst b/report_qweb_txt/README.rst index 645e26885..21cd7854d 100644 --- a/report_qweb_txt/README.rst +++ b/report_qweb_txt/README.rst @@ -1,56 +1,21 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html - :alt: License: AGPL-3 +**This file is going to be generated by oca-gen-addon-readme.** -================= -Qweb Text Reports -================= +*Manual changes will be overwritten.* -This module extends the possibilities of the native Qweb reporting engine to be able to generate any kind of text files (TXT, CSV, ZPL, EPL, ...). +Please provide content in the ``readme`` directory: -Usage -===== +* **DESCRIPTION.rst** (required) +* INSTALL.rst (optional) +* CONFIGURE.rst (optional) +* **USAGE.rst** (optional, highly recommended) +* DEVELOP.rst (optional) +* ROADMAP.rst (optional) +* HISTORY.rst (optional, recommended) +* **CONTRIBUTORS.rst** (optional, highly recommended) +* CREDITS.rst (optional) -To add a text report, you should develop an Odoo module that contains: +Content of this README will also be drawn from the addon manifest, +from keys such as name, authors, maintainers, development_status, +and license. -* a Qweb template, -* a Qweb report definition with *report_type = qweb-txt*. - -This module provides a small demo report on *Users* called *CSV List*. - -The module *purchase_dilicom_csv* available on the `dilicom Github repository `_ (branch *10.0*) is a better example: it adds a report *Dilicom CSV Order* on purchase orders. This report is a CSV file with one line per order line and 2 columns: EAN13 and order quantity. - -.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas - :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/143/10.0 - -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. - -Credits -======= - -Contributors ------------- - -* Alexis de Lattre - -Maintainer ----------- - -.. image:: https://odoo-community.org/logo.png - :alt: Odoo Community Association - :target: https://odoo-community.org - -This module is maintained by the OCA. - -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. - -To contribute to this module, please visit https://odoo-community.org. +A good, one sentence summary in the manifest is also highly recommended. diff --git a/report_qweb_txt/__init__.py b/report_qweb_txt/__init__.py index cde864bae..0650744f6 100644 --- a/report_qweb_txt/__init__.py +++ b/report_qweb_txt/__init__.py @@ -1,3 +1 @@ -# -*- coding: utf-8 -*- - from . import models diff --git a/report_qweb_txt/__manifest__.py b/report_qweb_txt/__manifest__.py index 5e853a694..c7df10408 100644 --- a/report_qweb_txt/__manifest__.py +++ b/report_qweb_txt/__manifest__.py @@ -1,16 +1,18 @@ -# -*- coding: utf-8 -*- # © 2016 Akretion (Alexis de Lattre ) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { 'name': 'Qweb Text Reports', - 'version': '10.0.1.0.0', + 'version': '11.0.1.0.0', 'category': 'Reporting', 'license': 'AGPL-3', 'summary': 'Use Qweb to generate text and CSV reports', 'author': 'Akretion,Odoo Community Association (OCA)', 'website': 'http://www.akretion.com', - 'depends': ['report'], - 'demo': ['demo/report.xml', 'demo/res_users_report.xml'], + 'depends': ['base'], + 'demo': [ + 'demo/report.xml', + 'demo/res_users_report.xml', + ], 'installable': True, } diff --git a/report_qweb_txt/models/__init__.py b/report_qweb_txt/models/__init__.py index 0eb794791..a248cf216 100644 --- a/report_qweb_txt/models/__init__.py +++ b/report_qweb_txt/models/__init__.py @@ -1,4 +1 @@ -# -*- coding: utf-8 -*- - -from . import ir_actions_report_xml -from . import report +from . import ir_actions_report diff --git a/report_qweb_txt/models/ir_actions_report_xml.py b/report_qweb_txt/models/ir_actions_report.py similarity index 63% rename from report_qweb_txt/models/ir_actions_report_xml.py rename to report_qweb_txt/models/ir_actions_report.py index 3f277238d..64c01b3d7 100644 --- a/report_qweb_txt/models/ir_actions_report_xml.py +++ b/report_qweb_txt/models/ir_actions_report.py @@ -1,17 +1,25 @@ -# -*- coding: utf-8 -*- # © 2016-2018 Akretion (Alexis de Lattre ) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import api, fields, models -class IrActionsReportXml(models.Model): - _inherit = 'ir.actions.report.xml' +class IrActionsReport(models.Model): + _inherit = 'ir.actions.report' report_type = fields.Selection(selection_add=[ ('qweb-txt', 'Text'), ('qweb-txt-csv', 'CSV'), - ]) + ]) + + @api.model + def _get_report_from_name(self, report_name): + res = super()._get_report_from_name(report_name) + if not res: + res = self.env['ir.actions.report'].search([ + ('report_type', '!=', False), + ('report_name', '=', report_name)], limit=1) + return res @api.model def render_report(self, res_ids, name, data): @@ -24,5 +32,4 @@ class IrActionsReportXml(models.Model): # selection_add on the field 'report_type') return self.env['report'].get_html(res_ids, name, data=data), ext else: - return super(IrActionsReportXml, self).render_report( - res_ids, name, data) + return super().render_report(res_ids, name, data) diff --git a/report_qweb_txt/models/report.py b/report_qweb_txt/models/report.py deleted file mode 100644 index dc12758d4..000000000 --- a/report_qweb_txt/models/report.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2016-2018 Akretion (Alexis de Lattre ) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import api, models - - -class Report(models.Model): - _inherit = "report" - - @api.model - def _get_report_from_name(self, report_name): - res = super(Report, self)._get_report_from_name(report_name) - if not res: - res = self.env['ir.actions.report.xml'].search([ - ('report_type', '!=', False), - ('report_name', '=', report_name)], limit=1) - return res diff --git a/report_qweb_txt/readme/CONTRIBUTORS.rst b/report_qweb_txt/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..40a47a19f --- /dev/null +++ b/report_qweb_txt/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Alexis de Lattre +* Daniel Reis diff --git a/report_qweb_txt/readme/DESCRIPTION.rst b/report_qweb_txt/readme/DESCRIPTION.rst new file mode 100644 index 000000000..52122907e --- /dev/null +++ b/report_qweb_txt/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module extends the possibilities of the native Qweb reporting engine +to be able to generate any kind of text files (TXT, CSV, ZPL, EPL, ...). diff --git a/report_qweb_txt/readme/USAGE.rst b/report_qweb_txt/readme/USAGE.rst new file mode 100644 index 000000000..3f36921a3 --- /dev/null +++ b/report_qweb_txt/readme/USAGE.rst @@ -0,0 +1,8 @@ +To add a text report, you should develop an Odoo module that contains: + +* a Qweb template, +* a Qweb report definition with *report_type = qweb-txt*. + +This module provides a small demo report on *Users* called *CSV List*. + +The module *purchase_dilicom_csv* available on the `dilicom Github repository `_ (branch *10.0*) is a better example: it adds a report *Dilicom CSV Order* on purchase orders. This report is a CSV file with one line per order line and 2 columns: EAN13 and order quantity.