From 355981cf4ef94aff5294bddffb8cb67bdc84f4c9 Mon Sep 17 00:00:00 2001 From: Zina Rasoamanana Date: Tue, 8 Nov 2022 14:35:39 +0100 Subject: [PATCH] [MIG] report_csv: Migration to 16.0 --- report_csv/__manifest__.py | 2 +- report_csv/controllers/main.py | 6 ++++-- report_csv/models/ir_report.py | 18 ++++++++---------- report_csv/tests/test_report.py | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/report_csv/__manifest__.py b/report_csv/__manifest__.py index 0ee668415..cfcad4ad2 100644 --- a/report_csv/__manifest__.py +++ b/report_csv/__manifest__.py @@ -6,7 +6,7 @@ "author": "Creu Blanca, Odoo Community Association (OCA)", "website": "https://github.com/OCA/reporting-engine", "category": "Reporting", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "license": "AGPL-3", "depends": ["base", "web"], "demo": ["demo/report.xml"], diff --git a/report_csv/controllers/main.py b/report_csv/controllers/main.py index 2aa5ad581..41f1bfbf5 100644 --- a/report_csv/controllers/main.py +++ b/report_csv/controllers/main.py @@ -15,7 +15,7 @@ from odoo.http import ( from odoo.tools import html_escape from odoo.tools.safe_eval import safe_eval, time -from odoo.addons.web.controllers import main as report +from odoo.addons.web.controllers import report _logger = logging.getLogger(__name__) @@ -38,7 +38,9 @@ class ReportController(report.ReportController): if data["context"].get("lang"): del data["context"]["lang"] context.update(data["context"]) - csv = report.with_context(**context)._render_csv(docids, data=data)[0] + csv = report.with_context(**context)._render_csv( + reportname, docids, data=data + )[0] csvhttpheaders = [ ("Content-Type", "text/csv"), ("Content-Length", len(csv)), diff --git a/report_csv/models/ir_report.py b/report_csv/models/ir_report.py index 47a7c412d..4a5ad6adf 100644 --- a/report_csv/models/ir_report.py +++ b/report_csv/models/ir_report.py @@ -1,8 +1,7 @@ # Copyright 2019 Creu Blanca # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from odoo import _, api, fields, models -from odoo.exceptions import UserError +from odoo import api, fields, models class ReportAction(models.Model): @@ -13,14 +12,13 @@ class ReportAction(models.Model): ) @api.model - def _render_csv(self, docids, data): - report_model_name = "report.%s" % self.report_name - report_model = self.env.get(report_model_name) - if report_model is None: - raise UserError(_("%s model was not found") % report_model_name) - return report_model.with_context(active_model=self.model).create_csv_report( - docids, data - ) + def _render_csv(self, report_ref, docids, data): + report_sudo = self._get_report(report_ref) + report_model_name = "report.%s" % report_sudo.report_name + report_model = self.env[report_model_name] + return report_model.with_context( + active_model=report_sudo.model + ).create_csv_report(docids, data) @api.model def _get_report_from_name(self, report_name): diff --git a/report_csv/tests/test_report.py b/report_csv/tests/test_report.py index cfaccc4ea..edce4e4db 100644 --- a/report_csv/tests/test_report.py +++ b/report_csv/tests/test_report.py @@ -15,19 +15,19 @@ except ImportError: class TestReport(common.TransactionCase): def setUp(self): super().setUp() - report_object = self.env["ir.actions.report"] + self.report_object = self.env["ir.actions.report"] self.csv_report = self.env["report.report_csv.abstract"].with_context( active_model="res.partner" ) self.report_name = "report_csv.partner_csv" - self.report = report_object._get_report_from_name(self.report_name) + self.report = self.report_object._get_report_from_name(self.report_name) self.docs = self.env["res.company"].search([], limit=1).partner_id def test_report(self): # Test if not res: report = self.report self.assertEqual(report.report_type, "csv") - rep = report._render(self.docs.ids, {}) + rep = self.report_object._render(self.report_name, self.docs.ids, {}) str_io = StringIO(rep[0]) dict_report = list(csv.DictReader(str_io, delimiter=";", quoting=csv.QUOTE_ALL)) self.assertEqual(self.docs.name, dict(dict_report[0])["name"])