diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 910e08b3a69..ae0eb0f8bff 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -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): """ diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py index 94f179c7897..7703406ec96 100644 --- a/openerp/osv/osv.py +++ b/openerp/osv/osv.py @@ -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):