process = pool.get('process.process').browse(cr, uid, id, context=context)
name = process.name
- resource = None
+ resource = False
state = 'N/A'
expr_context = {}
states = {}
- perm = None
+ perm = False
if res_model:
states = dict(pool.get(res_model).fields_get(cr, uid, context=context).get('state', {}).get('selection', {}))
if node.menu_id:
data['menu'] = {'name': node.menu_id.complete_name, 'id': node.menu_id.id}
- if node.model_id and node.model_id.model == res_model:
- try:
- data['active'] = eval(node.model_states, expr_context)
- except Exception:
- pass
-
- if not data['active']:
- try:
- gray = True
- for cond in node.condition_ids:
- if cond.model_id and cond.model_id.model == res_model:
- gray = gray and eval(cond.model_states, expr_context)
- data['gray'] = not gray
- except:
- pass
+ try:
+ gray = True
+ for cond in node.condition_ids:
+ if cond.model_id and cond.model_id.model == res_model:
+ gray = gray and eval(cond.model_states, expr_context)
+ data['gray'] = not gray
+ except:
+ pass
+
+ if not data['gray']:
+ if node.model_id and node.model_id.model == res_model:
+ try:
+ data['active'] = eval(node.model_states, expr_context)
+ except Exception:
+ pass
nodes[node.id] = data
if node.flow_start:
for k, v in nodes.items():
y = v['y']
v['y'] = min(y - miny + 10, y)
-
+
+ nodes = dict([str(n_key), n_val] for n_key, n_val in nodes.iteritems())
+ transitions = dict([str(t_key), t_val] for t_key, t_val in transitions.iteritems())
return dict(name=name, resource=resource, state=state, perm=perm, notes=notes, nodes=nodes, transitions=transitions)
def copy(self, cr, uid, id, default=None, context=None):