From 02ae4b76715c2b83f69b8c39ae39547f5d501ba9 Mon Sep 17 00:00:00 2001 From: Guille Date: Fri, 3 Mar 2023 08:22:01 +0100 Subject: [PATCH] [16.0][FIX] base_report_to_printer: Expected singleton Fixes https://github.com/OCA/report-print-send/issues/314 --- .../models/ir_actions_report.py | 18 +++++----- base_report_to_printer/tests/test_report.py | 35 +++++++++++++++---- 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/base_report_to_printer/models/ir_actions_report.py b/base_report_to_printer/models/ir_actions_report.py index 652d6f2..bff6897 100644 --- a/base_report_to_printer/models/ir_actions_report.py +++ b/base_report_to_printer/models/ir_actions_report.py @@ -157,16 +157,16 @@ class IrActionsReport(models.Model): generated document as well. """ document, doc_format = super()._render_qweb_pdf( - report_ref=report_ref, res_ids=res_ids, data=data + report_ref, res_ids=res_ids, data=data ) - - behaviour = self.behaviour() + report = self._get_report(report_ref) + behaviour = report.behaviour() printer = behaviour.pop("printer", None) - can_print_report = self._can_print_report(behaviour, printer, document) + can_print_report = report._can_print_report(behaviour, printer, document) if can_print_report: printer.print_document( - self, document, doc_format=self.report_type, **behaviour + report, document, doc_format=report.report_type, **behaviour ) return document, doc_format @@ -180,14 +180,14 @@ class IrActionsReport(models.Model): document, doc_format = super()._render_qweb_text( report_ref, docids=docids, data=data ) - - behaviour = self.behaviour() + report = self._get_report(report_ref) + behaviour = report.behaviour() printer = behaviour.pop("printer", None) - can_print_report = self._can_print_report(behaviour, printer, document) + can_print_report = report._can_print_report(behaviour, printer, document) if can_print_report: printer.print_document( - self, document, doc_format=self.report_type, **behaviour + report, document, doc_format=report.report_type, **behaviour ) return document, doc_format diff --git a/base_report_to_printer/tests/test_report.py b/base_report_to_printer/tests/test_report.py index 25daf02..e363582 100644 --- a/base_report_to_printer/tests/test_report.py +++ b/base_report_to_printer/tests/test_report.py @@ -18,7 +18,7 @@ class TestReport(common.HttpCase): "model": "ir.actions.report", "report_name": "Test Report", } - self.report_view = self.env["ir.ui.view"].create( + self.report_pdf_view = self.env["ir.ui.view"].create( { "name": "Test", "type": "qweb", @@ -27,15 +27,36 @@ class TestReport(common.HttpCase): """, } ) - self.report_imd = ( + self.report_pdf_imd = ( self.env["ir.model.data"] .sudo() .create( { - "name": "test", + "name": "test_pdf", "module": "base_report_to_printer", "model": "ir.ui.view", - "res_id": self.report_view.id, + "res_id": self.report_pdf_view.id, + } + ) + ) + self.report_text_view = self.env["ir.ui.view"].create( + { + "name": "Test", + "type": "qweb", + "arch": """ + Test + """, + } + ) + self.report_text_imd = ( + self.env["ir.model.data"] + .sudo() + .create( + { + "name": "test_text", + "module": "base_report_to_printer", + "model": "ir.ui.view", + "res_id": self.report_text_view.id, } ) ) @@ -44,7 +65,7 @@ class TestReport(common.HttpCase): "name": "Test", "report_type": "qweb-pdf", "model": "res.partner", - "report_name": "base_report_to_printer.test", + "report_name": "base_report_to_printer.test_pdf", } ) self.report_text = self.Model.create( @@ -52,7 +73,7 @@ class TestReport(common.HttpCase): "name": "Test", "report_type": "qweb-text", "model": "res.partner", - "report_name": "base_report_to_printer.test", + "report_name": "base_report_to_printer.test_text", } ) self.partners = self.env["res.partner"] @@ -133,7 +154,7 @@ class TestReport(common.HttpCase): self.report_text.property_printing_action_id.action_type = "server" self.report_text.printing_printer_id = self.new_printer() document = self.report_text._render_qweb_text( - self.report.report_name, self.partners.ids + self.report_text.report_name, self.partners.ids ) print_document.assert_called_once_with( self.report_text,