[FIX] Report : Proper Message notification when RML file is not found

lp bug: https://launchpad.net/bugs/499501 fixed

bzr revid: jvo@tinyerp.com-20100106063308-dh5ktjs7mkvvhky1
This commit is contained in:
Jay (Open ERP) 2010-01-06 12:03:08 +05:30
parent 710e5029ac
commit f5ec8210a5
2 changed files with 15 additions and 3 deletions

View File

@ -361,7 +361,10 @@ class report_sxw(report_rml, preprocess.report):
fnct = self.create_source_html2html
else:
raise 'Unknown Report Type'
return fnct(cr, uid, ids, data, report_xml, context)
fnct_ret = fnct(cr, uid, ids, data, report_xml, context)
if not fnct_ret:
return (False,False)
return fnct_ret
def create_source_odt(self, cr, uid, ids, data, report_xml, context=None):
return self.create_single_odt(cr, uid, ids, data, report_xml, context or {})
@ -390,6 +393,8 @@ class report_sxw(report_rml, preprocess.report):
results.append((d,'pdf'))
continue
result = self.create_single_pdf(cr, uid, [obj.id], data, report_xml, context)
if not result:
return False
try:
if aname:
name = aname+'.'+result[1]
@ -427,6 +432,9 @@ class report_sxw(report_rml, preprocess.report):
context = context.copy()
title = report_xml.name
rml = report_xml.report_rml_content
# if no rml file is found
if not rml:
return False
rml_parser = self.parser(cr, uid, self.name2, context=context)
objs = self.getObjects(cr, uid, ids, context)
rml_parser.set_context(objs, data, ids, report_xml.report_type)

View File

@ -696,15 +696,19 @@ class report_spool(netsvc.Service):
def go(id, uid, ids, datas, context):
cr = pooler.get_db(db).cursor()
import traceback
import sys
try:
obj = netsvc.LocalService('report.'+object)
(result, format) = obj.create(cr, uid, ids, datas, context)
if not result:
tb = sys.exc_info()
self._reports[id]['exception'] = ExceptionWithTraceback('RML is not available at specified location or not enough data to print!', tb)
self._reports[id]['result'] = result
self._reports[id]['format'] = format
self._reports[id]['state'] = True
except Exception, exception:
import traceback
import sys
tb = sys.exc_info()
tb_s = "".join(traceback.format_exception(*tb))
logger = netsvc.Logger()