From b7fe61abe9d0369de3c4a064bd89d0266a0d1d41 Mon Sep 17 00:00:00 2001 From: "P. Christeas" Date: Tue, 5 May 2009 00:18:03 +0300 Subject: [PATCH] Workflows: tolerate non-ending, missing instances. bzr revid: p_christ@hol.gr-20090504211803-pcqu4w9x50v693p8 --- bin/addons/base/ir/workflow/print_instance.py | 5 ++++- bin/workflow/instance.py | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/addons/base/ir/workflow/print_instance.py b/bin/addons/base/ir/workflow/print_instance.py index 7a12e5902d3..495c4a2f5a8 100644 --- a/bin/addons/base/ir/workflow/print_instance.py +++ b/bin/addons/base/ir/workflow/print_instance.py @@ -82,7 +82,10 @@ def graph_get(cr, graph, wkf_id, nested=False, workitem={}): start = cr.fetchone()[0] cr.execute("select 'subflow.'||name,id from wkf_activity where flow_stop=True and wkf_id=%s", (wkf_id,)) stop = cr.fetchall() - stop = (stop[0][1], dict(stop)) + if (stop): + stop = (stop[0][1], dict(stop)) + else: + stop = ("stop",{}) return ((start,{}),stop) diff --git a/bin/workflow/instance.py b/bin/workflow/instance.py index 99e041ab860..8f1c8455598 100644 --- a/bin/workflow/instance.py +++ b/bin/workflow/instance.py @@ -43,6 +43,7 @@ def delete(cr, ident): def validate(cr, inst_id, ident, signal, force_running=False): cr.execute("select * from wkf_workitem where inst_id=%s", (inst_id,)) + stack = None for witem in cr.dictfetchall(): stack = [] workitem.process(cr, witem, ident, signal, force_running, stack=stack)