[FIX] orm,web_services: properly return results of workflow triggers

bzr revid: odo@openerp.com-20121106181507-ss1w425c1omsn3sb
This commit is contained in:
Olivier Dony 2012-11-06 19:15:07 +01:00
parent 4ba1696ce2
commit 0357fddc61
2 changed files with 6 additions and 3 deletions

View File

@ -3861,10 +3861,12 @@ class BaseModel(object):
getattr(wf_service, trigger)(uid, self._name, res_id, cr)
def _workflow_signal(self, cr, uid, ids, signal, context=None):
"""Send given workflow signal"""
"""Send given workflow signal and return a dict mapping ids to workflow results"""
wf_service = netsvc.LocalService("workflow")
result = {}
for res_id in ids:
wf_service.trg_validate(uid, self._name, res_id, signal, cr)
result[res_id] = wf_service.trg_validate(uid, self._name, res_id, signal, cr)
return result
def unlink(self, cr, uid, ids, context=None):
"""

View File

@ -188,7 +188,8 @@ class object_proxy(object):
object = pooler.get_pool(cr.dbname).get(obj)
if not object:
raise except_osv('Object Error', 'Object %s doesn\'t exist' % str(obj))
return object._workflow_signal(cr, uid, [args[0]], signal)
res_id = args[0]
return object._workflow_signal(cr, uid, [res_id], signal)[res_id]
@check
def exec_workflow(self, db, uid, obj, signal, *args):