summaryrefslogtreecommitdiff
path: root/bin/workflow
diff options
context:
space:
mode:
authorP. Christeas <p_christ@hol.gr>2009-07-09 21:12:53 +0300
committerP. Christeas <p_christ@hol.gr>2009-07-09 21:12:53 +0300
commit2d64ce69d07a55f827548e43cfcc73cd459dc39a (patch)
treeb217b2afe155395280d27a4c6cc0c43c89396c3b /bin/workflow
parentcb5e80507f5a8330ed4e0f2526343b97f8d506e6 (diff)
parenta2db1c09ba3a279a8d791c8914a19d2f0dbb2c18 (diff)
Merge origin/master into mdv-gpl3-py26
Conflicts: bin/addons/base_setup/i18n/base_setup.pot bin/openerp-server.py bin/report/preprocess.py bin/report/report_sxw.py bin/tools/translate.py bzr revid: p_christ@hol.gr-20090709181253-fu8nxy9b3ykrrd1c
Diffstat (limited to 'bin/workflow')
-rw-r--r--bin/workflow/workitem.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/bin/workflow/workitem.py b/bin/workflow/workitem.py
index fe098bdefb9..f9cf812c16c 100644
--- a/bin/workflow/workitem.py
+++ b/bin/workflow/workitem.py
@@ -88,10 +88,11 @@ def _execute(cr, workitem, activity, ident, stack):
#
# send a signal to parent workflow (signal: subflow.signal_name)
#
+ signal_todo = []
if (workitem['state']=='active') and activity['signal_send']:
cr.execute("select i.id,w.osv,i.res_id from wkf_instance i left join wkf w on (i.wkf_id=w.id) where i.id in (select inst_id from wkf_workitem where subflow_id=%s)", (workitem['inst_id'],))
for i in cr.fetchall():
- instance.validate(cr, i[0], (ident[0],i[1],i[2]), activity['signal_send'], force_running=True)
+ signal_todo.append((i[0], (ident[0],i[1],i[2]), activity['signal_send']))
if activity['kind']=='dummy':
if workitem['state']=='active':
@@ -139,6 +140,9 @@ def _execute(cr, workitem, activity, ident, stack):
state= cr.fetchone()[0]
if state=='complete':
_state_set(cr, workitem, activity, 'complete', ident)
+ for t in signal_todo:
+ instance.validate(cr, t[0], t[1], t[2], force_running=True)
+
return result
def _split_test(cr, workitem, split_mode, ident, signal=None, stack=None):