[MIG] report_qweb_txt to 11.0

This commit is contained in:
Daniel Reis
2019-11-08 14:00:45 +00:00
parent 2a59d4d1f0
commit 3a6ebe731c
9 changed files with 48 additions and 85 deletions

View File

@@ -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 <https://github.com/akretion/dilicom>`_ (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
<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 smashing it by providing a detailed and welcomed feedback.
Credits
=======
Contributors
------------
* Alexis de Lattre <alexis.delattre@akretion.com>
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.

View File

@@ -1,3 +1 @@
# -*- coding: utf-8 -*-
from . import models

View File

@@ -1,16 +1,18 @@
# -*- coding: utf-8 -*-
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# 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,
}

View File

@@ -1,4 +1 @@
# -*- coding: utf-8 -*-
from . import ir_actions_report_xml
from . import report
from . import ir_actions_report

View File

@@ -1,17 +1,25 @@
# -*- coding: utf-8 -*-
# © 2016-2018 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# 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)

View File

@@ -1,18 +0,0 @@
# -*- coding: utf-8 -*-
# © 2016-2018 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# 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

View File

@@ -0,0 +1,2 @@
* Alexis de Lattre <alexis.delattre@akretion.com>
* Daniel Reis <dreis@opensourceintegrators.com>

View File

@@ -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, ...).

View File

@@ -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 <https://github.com/akretion/dilicom>`_ (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.