diff options
| author | Olivier Dony <odo@openerp.com> | 2012-12-18 03:11:23 +0100 |
|---|---|---|
| committer | Olivier Dony <odo@openerp.com> | 2012-12-18 03:11:23 +0100 |
| commit | 84d7987f337ffc8f2dfa94342560c979cc4a5cb1 (patch) | |
| tree | eb5b9b628997ca4b50aa5f67dc2075f4a58afa0e /addons/process | |
| parent | 5b56a77add9a4f92b5cf2f84d419caff9b0dc4e6 (diff) | |
| parent | 9cd7630f1f7e66e195e97eed8fb30de5f3b4d478 (diff) | |
[MERGE] Bugfixes from 6.1 until revision 6900
rev.6900 = xal@openerp.com-20120720134532-t07xr3lp8ouhn2dv
bzr revid: odo@openerp.com-20121218021123-9ligpn7bkr9zo4n7
Diffstat (limited to 'addons/process')
| -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 fa7596287a3..6dc3493231c 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: |
