[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:
parent
710e5029ac
commit
f5ec8210a5
|
@ -361,7 +361,10 @@ class report_sxw(report_rml, preprocess.report):
|
||||||
fnct = self.create_source_html2html
|
fnct = self.create_source_html2html
|
||||||
else:
|
else:
|
||||||
raise 'Unknown Report Type'
|
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):
|
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 {})
|
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'))
|
results.append((d,'pdf'))
|
||||||
continue
|
continue
|
||||||
result = self.create_single_pdf(cr, uid, [obj.id], data, report_xml, context)
|
result = self.create_single_pdf(cr, uid, [obj.id], data, report_xml, context)
|
||||||
|
if not result:
|
||||||
|
return False
|
||||||
try:
|
try:
|
||||||
if aname:
|
if aname:
|
||||||
name = aname+'.'+result[1]
|
name = aname+'.'+result[1]
|
||||||
|
@ -427,6 +432,9 @@ class report_sxw(report_rml, preprocess.report):
|
||||||
context = context.copy()
|
context = context.copy()
|
||||||
title = report_xml.name
|
title = report_xml.name
|
||||||
rml = report_xml.report_rml_content
|
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)
|
rml_parser = self.parser(cr, uid, self.name2, context=context)
|
||||||
objs = self.getObjects(cr, uid, ids, context)
|
objs = self.getObjects(cr, uid, ids, context)
|
||||||
rml_parser.set_context(objs, data, ids, report_xml.report_type)
|
rml_parser.set_context(objs, data, ids, report_xml.report_type)
|
||||||
|
|
|
@ -696,15 +696,19 @@ class report_spool(netsvc.Service):
|
||||||
|
|
||||||
def go(id, uid, ids, datas, context):
|
def go(id, uid, ids, datas, context):
|
||||||
cr = pooler.get_db(db).cursor()
|
cr = pooler.get_db(db).cursor()
|
||||||
|
import traceback
|
||||||
|
import sys
|
||||||
try:
|
try:
|
||||||
obj = netsvc.LocalService('report.'+object)
|
obj = netsvc.LocalService('report.'+object)
|
||||||
(result, format) = obj.create(cr, uid, ids, datas, context)
|
(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]['result'] = result
|
||||||
self._reports[id]['format'] = format
|
self._reports[id]['format'] = format
|
||||||
self._reports[id]['state'] = True
|
self._reports[id]['state'] = True
|
||||||
except Exception, exception:
|
except Exception, exception:
|
||||||
import traceback
|
|
||||||
import sys
|
|
||||||
tb = sys.exc_info()
|
tb = sys.exc_info()
|
||||||
tb_s = "".join(traceback.format_exception(*tb))
|
tb_s = "".join(traceback.format_exception(*tb))
|
||||||
logger = netsvc.Logger()
|
logger = netsvc.Logger()
|
||||||
|
|
Loading…
Reference in New Issue