From 5231d53a21ed895dccdcbf6f7dd30b6890b873af Mon Sep 17 00:00:00 2001 From: Alex Cuellar Date: Mon, 19 Oct 2020 15:42:11 -0500 Subject: [PATCH] [MIG] report_xlsx: Migration to 14.0 --- report_xlsx/__manifest__.py | 4 ++-- report_xlsx/controllers/main.py | 2 +- report_xlsx/demo/report.xml | 16 +++++++--------- report_xlsx/models/ir_report.py | 6 ++++-- report_xlsx/report/report_partner_xlsx.py | 6 ++++-- report_xlsx/tests/test_report.py | 10 +++++----- requirements.txt | 3 +++ 7 files changed, 26 insertions(+), 21 deletions(-) create mode 100644 requirements.txt diff --git a/report_xlsx/__manifest__.py b/report_xlsx/__manifest__.py index 707aa1c2..47cba116 100644 --- a/report_xlsx/__manifest__.py +++ b/report_xlsx/__manifest__.py @@ -4,9 +4,9 @@ "name": "Base report xlsx", "summary": "Base module to create xlsx report", "author": "ACSONE SA/NV," "Creu Blanca," "Odoo Community Association (OCA)", - "website": "https://github.com/oca/reporting-engine", + "website": "https://github.com/OCA/reporting-engine", "category": "Reporting", - "version": "13.0.1.0.1", + "version": "14.0.1.0.0", "license": "AGPL-3", "external_dependencies": {"python": ["xlsxwriter", "xlrd"]}, "depends": ["base", "web"], diff --git a/report_xlsx/controllers/main.py b/report_xlsx/controllers/main.py index 9436da37..ab2eb864 100644 --- a/report_xlsx/controllers/main.py +++ b/report_xlsx/controllers/main.py @@ -28,7 +28,7 @@ class ReportController(report.ReportController): if data["context"].get("lang"): del data["context"]["lang"] context.update(data["context"]) - xlsx = report.with_context(context).render_xlsx(docids, data=data)[0] + xlsx = report.with_context(context)._render_xlsx(docids, data=data)[0] report_name = report.report_file if report.print_report_name and not len(docids) > 1: obj = request.env[report.model].browse(docids[0]) diff --git a/report_xlsx/demo/report.xml b/report_xlsx/demo/report.xml index 9f82fbf8..e2694047 100644 --- a/report_xlsx/demo/report.xml +++ b/report_xlsx/demo/report.xml @@ -4,13 +4,11 @@ © 2017 Creu Blanca License AGPL-3.0 or later (https://www.gnuorg/licenses/agpl.html). --> - + + Print to XLSX + res.partner + xlsx + report_xlsx.partner_xlsx + res_partner + diff --git a/report_xlsx/models/ir_report.py b/report_xlsx/models/ir_report.py index 3f5db2fb..260ac600 100644 --- a/report_xlsx/models/ir_report.py +++ b/report_xlsx/models/ir_report.py @@ -8,10 +8,12 @@ from odoo.exceptions import UserError class ReportAction(models.Model): _inherit = "ir.actions.report" - report_type = fields.Selection(selection_add=[("xlsx", "XLSX")]) + report_type = fields.Selection( + selection_add=[("xlsx", "XLSX")], ondelete={"xlsx": "set default"} + ) @api.model - def render_xlsx(self, docids, data): + def _render_xlsx(self, docids, data): report_model_name = "report.%s" % self.report_name report_model = self.env.get(report_model_name) if report_model is None: diff --git a/report_xlsx/report/report_partner_xlsx.py b/report_xlsx/report/report_partner_xlsx.py index 14022f35..e92ec672 100644 --- a/report_xlsx/report/report_partner_xlsx.py +++ b/report_xlsx/report/report_partner_xlsx.py @@ -10,7 +10,9 @@ class PartnerXlsx(models.AbstractModel): _description = "Partner XLSX Report" def generate_xlsx_report(self, workbook, data, partners): + sheet = workbook.add_worksheet("Report") + i = 0 for obj in partners: - sheet = workbook.add_worksheet("Report") bold = workbook.add_format({"bold": True}) - sheet.write(0, 0, obj.name, bold) + sheet.write(i, 0, obj.name, bold) + i += 1 diff --git a/report_xlsx/tests/test_report.py b/report_xlsx/tests/test_report.py index 74e7db95..da001f47 100644 --- a/report_xlsx/tests/test_report.py +++ b/report_xlsx/tests/test_report.py @@ -27,7 +27,7 @@ class TestReport(common.TransactionCase): def test_report(self): report = self.report self.assertEqual(report.report_type, "xlsx") - rep = report.render(self.docs.ids, {}) + rep = report._render(self.docs.ids, {}) wb = open_workbook(file_contents=rep[0]) sheet = wb.sheet_by_index(0) self.assertEqual(sheet.cell(0, 0).value, self.docs.name) @@ -38,20 +38,20 @@ class TestReport(common.TransactionCase): objs = self.xlsx_report._get_objs_for_report( False, {"context": {"active_ids": self.docs.ids}} ) - self.assertEquals(objs, self.docs) + self.assertEqual(objs, self.docs) # Typical call from within code not to report_action objs = self.xlsx_report.with_context( active_ids=self.docs.ids )._get_objs_for_report(False, False) - self.assertEquals(objs, self.docs) + self.assertEqual(objs, self.docs) # Typical call from WebUI objs = self.xlsx_report._get_objs_for_report( self.docs.ids, {"data": [self.report_name, self.report.report_type]} ) - self.assertEquals(objs, self.docs) + self.assertEqual(objs, self.docs) # Typical call from render objs = self.xlsx_report._get_objs_for_report(self.docs.ids, {}) - self.assertEquals(objs, self.docs) + self.assertEqual(objs, self.docs) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..c208f5bc --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +# generated from manifests external_dependencies +xlrd +xlsxwriter