Browse Source

[MIG] report_xlsx - Backport from the 9.0 branch

pull/50/head
sebalix 8 years ago
parent
commit
3c2802f157
  1. 16
      report_xlsx/README.rst
  2. 2
      report_xlsx/models/ir_report.py
  3. 13
      report_xlsx/report/report_xlsx.py
  4. BIN
      report_xlsx/static/description/icon.png
  5. 2
      requirements.txt

16
report_xlsx/README.rst

@ -8,6 +8,13 @@ Base report xlsx
This module provides a basic report class to generate xlsx report. This module provides a basic report class to generate xlsx report.
Installation
============
Make sure you have ``xlsxwriter`` Python module installed::
$ pip install xlsxwriter
Usage Usage
===== =====
@ -31,6 +38,9 @@ A python class ::
partner_xlsx('report.res.partner.xlsx', partner_xlsx('report.res.partner.xlsx',
'res.partner') 'res.partner')
To manipulate the ``workbook`` and ``sheet`` objects, refer to the
`documentation <http://xlsxwriter.readthedocs.org/>`_ of ``xlsxwriter``.
A report XML record :: A report XML record ::
<report <report
@ -45,7 +55,7 @@ A report XML record ::
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot :alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/143/9.0
:target: https://runbot.odoo-community.org/runbot/143/8.0
Bug Tracker Bug Tracker
=========== ===========
@ -53,11 +63,13 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/reporting-engine/issues>`_. 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. 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 If you spotted it first, help us smashing it by providing a detailed and welcomed feedback
`here <https://github.com/OCA/reporting-engine/issues/new?body=module:%20report_xlsx%0Aversion:%209.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`here <https://github.com/OCA/reporting-engine/issues/new?body=module:%20report_xlsx%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits Credits
======= =======
* Icon taken from http://www.icons101.com/icon/id_67712/setid_2096/Boxed_Metal_by_Martin/xlsx.
Contributors Contributors
------------ ------------

2
report_xlsx/models/ir_report.py

@ -2,7 +2,7 @@
# Copyright 2015 ACSONE SA/NV (<http://acsone.eu>) # Copyright 2015 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import api, fields, models
from openerp import fields, models
class IrActionsReportXml(models.Model): class IrActionsReportXml(models.Model):

13
report_xlsx/report/report_xlsx.py

@ -2,9 +2,10 @@
# Copyright 2015 ACSONE SA/NV (<http://acsone.eu>) # Copyright 2015 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from cStringIO import StringIO
from openerp.report.report_sxw import report_sxw from openerp.report.report_sxw import report_sxw
from openerp.api import Environment from openerp.api import Environment
from cStringIO import StringIO
import logging import logging
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@ -24,11 +25,15 @@ class ReportXlsx(report_sxw):
if report.ids: if report.ids:
self.title = report.name self.title = report.name
if report.report_type == 'xlsx': if report.report_type == 'xlsx':
objs = self.env[self.table].browse(ids)
return self.create_xlsx_report(data, objs)
return self.create_xlsx_report(ids, data, report)
return super(ReportXlsx, self).create(cr, uid, ids, data, context) return super(ReportXlsx, self).create(cr, uid, ids, data, context)
def create_xlsx_report(self, data, objs):
def create_xlsx_report(self, ids, data, report):
self.parser_instance = self.parser(
self.env.cr, self.env.uid, self.name2, self.env.context)
objs = self.getObjects(
self.env.cr, self.env.uid, ids, self.env.context)
self.parser_instance.set_context(objs, data, ids, 'xlsx')
file_data = StringIO() file_data = StringIO()
workbook = xlsxwriter.Workbook(file_data) workbook = xlsxwriter.Workbook(file_data)
self.generate_xlsx_report(workbook, data, objs) self.generate_xlsx_report(workbook, data, objs)

BIN
report_xlsx/static/description/icon.png

Before

Width: 128  |  Height: 128  |  Size: 9.2 KiB

After

Width: 128  |  Height: 128  |  Size: 15 KiB

2
requirements.txt

@ -1 +1 @@
xlwt
xlwt xlsxwriter
Loading…
Cancel
Save