From 4e7c38d68b258eb3f494d9743067017de1fc3339 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Mon, 26 Jan 2015 11:55:26 +0100 Subject: [PATCH] When get_pdf has no printer, just create the pdf file And do not print anything, instead of raising an error. --- base_report_to_printer/ir_report.py | 10 +++------- base_report_to_printer/report.py | 10 +++++++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/base_report_to_printer/ir_report.py b/base_report_to_printer/ir_report.py index 6e2bca5..7238277 100644 --- a/base_report_to_printer/ir_report.py +++ b/base_report_to_printer/ir_report.py @@ -23,7 +23,7 @@ ############################################################################## import logging -from openerp import models, fields, api, exceptions, _ +from openerp import models, fields, api _logger = logging.getLogger('base_report_to_printer') @@ -62,7 +62,7 @@ class ReportXml(models.Model): report = report_obj._get_report_from_name(report_name) if not report: return {} - result = report.behaviour(raise_if_no_printer=False)[report.id] + result = report.behaviour()[report.id] serializable_result = { 'action': result['action'], 'printer_name': result['printer'].name, @@ -70,7 +70,7 @@ class ReportXml(models.Model): return serializable_result @api.multi - def behaviour(self, raise_if_no_printer=True): + def behaviour(self): result = {} printer_obj = self.env['printing.printer'] printing_act_obj = self.env['printing.report.xml.action'] @@ -109,10 +109,6 @@ class ReportXml(models.Model): if user_action['printer']: printer = user_action['printer'] - if not printer and raise_if_no_printer: - raise exceptions.Warning( - _('No printer configured to print this report.') - ) result[report.id] = {'action': action, 'printer': printer, } diff --git a/base_report_to_printer/report.py b/base_report_to_printer/report.py index d909922..77d4d01 100644 --- a/base_report_to_printer/report.py +++ b/base_report_to_printer/report.py @@ -19,7 +19,7 @@ # ############################################################################## -from openerp import models +from openerp import models, exceptions, _ class Report(models.Model): @@ -34,6 +34,10 @@ class Report(models.Model): report = self._get_report_from_name(cr, uid, report_name) behaviour = report.behaviour()[report.id] printer = behaviour['printer'] + if not printer: + raise exceptions.Warning( + _('No printer configured to print this report.') + ) return printer.print_document(report, document, report.report_type) def get_pdf(self, cr, uid, ids, report_name, html=None, @@ -48,7 +52,7 @@ class Report(models.Model): context=context) report = self._get_report_from_name(cr, uid, report_name) behaviour = report.behaviour()[report.id] - if behaviour['action'] == 'server' and document: - printer = behaviour['printer'] + printer = behaviour['printer'] + if behaviour['action'] == 'server' and printer and document: printer.print_document(report, document, report.report_type) return document