diff options
| author | Olivier Dony <odo@openerp.com> | 2012-12-18 18:55:47 +0100 |
|---|---|---|
| committer | Olivier Dony <odo@openerp.com> | 2012-12-18 18:55:47 +0100 |
| commit | fc0c2942ba12d3f85d437f556311c9f38a00b721 (patch) | |
| tree | 64f3a85c5204b76ce60f471fc3983282357b00d1 /addons/process/process.py | |
| parent | 677b783dc5a7214e47e8a11ec1fb84ea630fee8a (diff) | |
| parent | 45de1864b56fe9202655b3d50caa37ee383ba516 (diff) | |
[MERGE] Another batch of bugfixes from 6.1
bzr revid: odo@openerp.com-20121218175547-7c1uxq4ypbi314gx
Diffstat (limited to 'addons/process/process.py')
| -rw-r--r-- | addons/process/process.py | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/addons/process/process.py b/addons/process/process.py index 09405bfbe67..30b37a8b0e2 100644 --- a/addons/process/process.py +++ b/addons/process/process.py @@ -118,6 +118,7 @@ class process_process(osv.osv): data['active'] = False data['gray'] = False data['url'] = node.help_url + data['model_states'] = node.model_states # get assosiated workflow if data['model']: @@ -131,21 +132,21 @@ class process_process(osv.osv): 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: @@ -198,6 +199,12 @@ class process_process(osv.osv): resource['name'] = pool.get(ref_model).name_get(cr, uid, [ref_id], context=context)[0][1] resource['perm'] = pool.get(ref_model).perm_read(cr, uid, [ref_id], context=context)[0] + ref_expr_context = Env(refobj, current_user) + try: + if not nodes[nid]['gray']: + nodes[nid]['active'] = eval(nodes[nid]['model_states'], ref_expr_context) + except: + pass for r in relatives: node = nodes[r] if 'res' not in node: |
