When get_pdf has no printer, just create the pdf file

And do not print anything, instead of raising an error.
This commit is contained in:
Guewen Baconnier
2015-01-26 11:55:26 +01:00
committed by Graeme Gellatly
parent e027233638
commit c96f82cb40
2 changed files with 10 additions and 10 deletions

View File

@@ -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,
}

View File

@@ -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']
if behaviour['action'] == 'server' and printer and document:
printer.print_document(report, document, report.report_type)
return document