From 5f746468d49537356b2120d085ce63d5cf145628 Mon Sep 17 00:00:00 2001 From: Luc De Meyer Date: Wed, 25 Nov 2020 12:56:20 -0800 Subject: [PATCH] [MIG] report_xlsx_helper_demo: Migration to 14.0 --- .../report/report_xlsx_abstract.py | 3 - .../report/report_xlsx_format.py | 1 - report_xlsx_helper_demo/__manifest__.py | 24 ++-- report_xlsx_helper_demo/models/res_partner.py | 21 ++-- .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 2 + report_xlsx_helper_demo/readme/INSTALL.rst | 1 + report_xlsx_helper_demo/readme/USAGE.rst | 1 + .../report/partner_export_xlsx.py | 112 ++++++++++-------- report_xlsx_helper_demo/views/res_partner.xml | 11 +- .../odoo/addons/report_xlsx_helper_demo | 1 + setup/report_xlsx_helper_demo/setup.py | 6 + 12 files changed, 103 insertions(+), 81 deletions(-) create mode 100644 report_xlsx_helper_demo/readme/CONTRIBUTORS.rst create mode 100644 report_xlsx_helper_demo/readme/DESCRIPTION.rst create mode 100644 report_xlsx_helper_demo/readme/INSTALL.rst create mode 100644 report_xlsx_helper_demo/readme/USAGE.rst create mode 120000 setup/report_xlsx_helper_demo/odoo/addons/report_xlsx_helper_demo create mode 100644 setup/report_xlsx_helper_demo/setup.py diff --git a/report_xlsx_helper/report/report_xlsx_abstract.py b/report_xlsx_helper/report/report_xlsx_abstract.py index d133952c..b4eb0dfc 100644 --- a/report_xlsx_helper/report/report_xlsx_abstract.py +++ b/report_xlsx_helper/report/report_xlsx_abstract.py @@ -264,7 +264,6 @@ class ReportXlsxAbstract(models.AbstractModel): ) # formats for worksheet table column headers -<<<<<<< HEAD FORMATS["format_theader_grey_left"] = workbook.add_format(theader_grey) FORMATS["format_theader_grey_center"] = workbook.add_format( dict(theader_grey, align="center") @@ -328,8 +327,6 @@ class ReportXlsxAbstract(models.AbstractModel): dict(theader_grey, num_format=int_format_conditional, align="right") ) -======= ->>>>>>> [IMP] format xlsx to global files FORMATS["format_theader_yellow_left"] = workbook.add_format(theader_yellow) FORMATS["format_theader_yellow_center"] = workbook.add_format( dict(theader_yellow, align="center") diff --git a/report_xlsx_helper/report/report_xlsx_format.py b/report_xlsx_helper/report/report_xlsx_format.py index 0ed81f84..9e60acab 100644 --- a/report_xlsx_helper/report/report_xlsx_format.py +++ b/report_xlsx_helper/report/report_xlsx_format.py @@ -162,4 +162,3 @@ FORMATS = { "format_tcell_date_center_bold": False, "format_tcell_date_right_bold": False, } - diff --git a/report_xlsx_helper_demo/__manifest__.py b/report_xlsx_helper_demo/__manifest__.py index 60c07e20..67329cf6 100644 --- a/report_xlsx_helper_demo/__manifest__.py +++ b/report_xlsx_helper_demo/__manifest__.py @@ -1,18 +1,18 @@ -# Copyright 2009-2019 Noviat. +# Copyright 2009-2020 Noviat. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'Report xlsx helpers - demo', - 'author': 'Noviat,' - 'Odoo Community Association (OCA)', - 'category': 'Reporting', - 'version': '12.0.1.1.0', - 'license': 'AGPL-3', - 'depends': [ - 'report_xlsx_helper', + "name": "Report xlsx helpers - demo", + "author": "Noviat, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/reporting-engine", + "category": "Reporting", + "version": "14.0.1.0.0", + "license": "AGPL-3", + "depends": [ + "report_xlsx_helper", ], - 'data': [ - 'views/res_partner.xml', + "data": [ + "views/res_partner.xml", ], - 'installable': True, + "installable": True, } diff --git a/report_xlsx_helper_demo/models/res_partner.py b/report_xlsx_helper_demo/models/res_partner.py index 14fff263..6e4d2b1c 100644 --- a/report_xlsx_helper_demo/models/res_partner.py +++ b/report_xlsx_helper_demo/models/res_partner.py @@ -1,25 +1,24 @@ -# Copyright 2009-2018 Noviat +# Copyright 2009-2020 Noviat # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import api, models +from odoo import models class ResPartner(models.Model): - _inherit = 'res.partner' + _inherit = "res.partner" - @api.multi def export_xls(self): - module = __name__.split('addons.')[1].split('.')[0] - report_name = '{}.partner_export_xlsx'.format(module) + module = __name__.split("addons.")[1].split(".")[0] + report_name = "{}.partner_export_xlsx".format(module) report = { - 'type': 'ir.actions.report', - 'report_type': 'xlsx', - 'report_name': report_name, + "type": "ir.actions.report", + "report_type": "xlsx", + "report_name": report_name, # model name will be used if no report_file passed via context - 'context': dict(self.env.context, report_file='partner'), + "context": dict(self.env.context, report_file="partner"), # report_xlsx doesn't pass the context if the data dict is empty # cf. report_xlsx\static\src\js\report\qwebactionmanager.js # TODO: create PR on report_xlsx to fix this - 'data': {'dynamic_report': True}, + "data": {"dynamic_report": True}, } return report diff --git a/report_xlsx_helper_demo/readme/CONTRIBUTORS.rst b/report_xlsx_helper_demo/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..044d1a00 --- /dev/null +++ b/report_xlsx_helper_demo/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Luc De Meyer diff --git a/report_xlsx_helper_demo/readme/DESCRIPTION.rst b/report_xlsx_helper_demo/readme/DESCRIPTION.rst new file mode 100644 index 00000000..86f329c2 --- /dev/null +++ b/report_xlsx_helper_demo/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module demonstrates the capabilities or the report_xlsx_helper module via +a basic example. diff --git a/report_xlsx_helper_demo/readme/INSTALL.rst b/report_xlsx_helper_demo/readme/INSTALL.rst new file mode 100644 index 00000000..9d94322d --- /dev/null +++ b/report_xlsx_helper_demo/readme/INSTALL.rst @@ -0,0 +1 @@ +There is no specific installation procedure for this module. diff --git a/report_xlsx_helper_demo/readme/USAGE.rst b/report_xlsx_helper_demo/readme/USAGE.rst new file mode 100644 index 00000000..91a2fd5a --- /dev/null +++ b/report_xlsx_helper_demo/readme/USAGE.rst @@ -0,0 +1 @@ +Open a partner record and click on the 'Export XLS' button. diff --git a/report_xlsx_helper_demo/report/partner_export_xlsx.py b/report_xlsx_helper_demo/report/partner_export_xlsx.py index c9cd55ab..31b44289 100644 --- a/report_xlsx_helper_demo/report/partner_export_xlsx.py +++ b/report_xlsx_helper_demo/report/partner_export_xlsx.py @@ -1,64 +1,68 @@ -# Copyright 2009-2018 Noviat. +# Copyright 2009-2020 Noviat. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import models +from odoo.addons.report_xlsx_helper.report.report_xlsx_format import ( + FORMATS, + XLS_HEADERS, +) + class PartnerExportXlsx(models.AbstractModel): - _name = 'report.report_xlsx_helper_demo.partner_export_xlsx' - _inherit = 'report.report_xlsx.abstract' + _name = "report.report_xlsx_helper_demo.partner_export_xlsx" + _description = "Report xlsx helpers" + _inherit = "report.report_xlsx.abstract" def _get_ws_params(self, wb, data, partners): partner_template = { - 'name': { - 'header': { - 'value': 'Name', + "name": { + "header": { + "value": "Name", }, - 'data': { - 'value': self._render("partner.name"), + "data": { + "value": self._render("partner.name"), }, - 'width': 20, + "width": 20, }, - 'number_of_contacts': { - 'header': { - 'value': '# Contacts', + "number_of_contacts": { + "header": { + "value": "# Contacts", }, - 'data': { - 'value': self._render("len(partner.child_ids)"), + "data": { + "value": self._render("len(partner.child_ids)"), }, - 'width': 10, + "width": 10, }, - 'is_customer': { - 'header': { - 'value': 'Customer', + "is_company": { + "header": { + "value": "Company", }, - 'data': { - 'value': self._render("partner.customer"), + "data": { + "value": self._render("partner.is_company"), }, - 'width': 10, + "width": 10, }, - 'is_customer_formula': { - 'header': { - 'value': 'Customer Y/N ?', + "is_company_formula": { + "header": { + "value": "Company Y/N ?", }, - 'data': { - 'type': 'formula', - 'value': self._render("customer_formula"), + "data": { + "type": "formula", + "value": self._render("company_formula"), }, - 'width': 14, + "width": 14, }, } - wanted_list = [ - 'name', 'number_of_contacts', 'is_customer', - 'is_customer_formula'] + wanted_list = ["name", "number_of_contacts", "is_company", "is_company_formula"] ws_params = { - 'ws_name': 'Partners', - 'generate_ws_method': '_partner_report', - 'title': 'Partners', - 'wanted_list': wanted_list, - 'col_specs': partner_template, + "ws_name": "Partners", + "generate_ws_method": "_partner_report", + "title": "Partners", + "wanted_list": wanted_list, + "col_specs": partner_template, } return [ws_params] @@ -67,32 +71,38 @@ class PartnerExportXlsx(models.AbstractModel): ws.set_portrait() ws.fit_to_pages(1, 0) - ws.set_header(self.xls_headers['standard']) - ws.set_footer(self.xls_footers['standard']) + ws.set_header(XLS_HEADERS["xls_headers"]["standard"]) + ws.set_footer(XLS_HEADERS["xls_footers"]["standard"]) self._set_column_width(ws, ws_params) row_pos = 0 if len(partners) == 1: - ws_params['title'] = partners.name + ws_params["title"] = partners.name row_pos = self._write_ws_title(ws, row_pos, ws_params) row_pos = self._write_line( - ws, row_pos, ws_params, col_specs_section='header', - default_format=self.format_theader_yellow_left) + ws, + row_pos, + ws_params, + col_specs_section="header", + default_format=FORMATS["format_theader_yellow_left"], + ) ws.freeze_panes(row_pos, 0) - wl = ws_params['wanted_list'] + wl = ws_params["wanted_list"] for partner in partners: - is_customer_pos = 'is_customer' in wl and \ - wl.index('is_customer') - is_customer_cell = self._rowcol_to_cell( - row_pos, is_customer_pos) - customer_formula = 'IF({},"Y", "N")'.format(is_customer_cell) + is_company_pos = "is_company" in wl and wl.index("is_company") + is_company_cell = self._rowcol_to_cell(row_pos, is_company_pos) + company_formula = 'IF({},"Y", "N")'.format(is_company_cell) row_pos = self._write_line( - ws, row_pos, ws_params, col_specs_section='data', + ws, + row_pos, + ws_params, + col_specs_section="data", render_space={ - 'partner': partner, - 'customer_formula': customer_formula, + "partner": partner, + "company_formula": company_formula, }, - default_format=self.format_tcell_left) + default_format=FORMATS["format_tcell_left"], + ) diff --git a/report_xlsx_helper_demo/views/res_partner.xml b/report_xlsx_helper_demo/views/res_partner.xml index 63f46199..981f4b43 100644 --- a/report_xlsx_helper_demo/views/res_partner.xml +++ b/report_xlsx_helper_demo/views/res_partner.xml @@ -1,13 +1,18 @@ - + res.partner.test_xlsx res.partner - +
-