summaryrefslogtreecommitdiff
path: root/addons/process
diff options
context:
space:
mode:
authorAmit Mendapara <ame@tinyerp.com>2008-09-22 16:11:44 +0530
committerAmit Mendapara <ame@tinyerp.com>2008-09-22 16:11:44 +0530
commitceb689c8e236d94c06c44e96b6291958e43fb76f (patch)
tree4c2285cde1aee41a2a5fb4b329522a540345eb51 /addons/process
parent1d155900cfa11b1401717bfa7be1cab52300fb39 (diff)
Node with related resource information.
bzr revid: ame@tinyerp.com-20080922104144-piob6t3zdt2zgcnj
Diffstat (limited to 'addons/process')
-rw-r--r--addons/process/process.py32
1 files changed, 24 insertions, 8 deletions
diff --git a/addons/process/process.py b/addons/process/process.py
index 636135cc8e6..8cd51798708 100644
--- a/addons/process/process.py
+++ b/addons/process/process.py
@@ -73,18 +73,34 @@ class process_process(osv.osv):
expr_context = Env(current_object, current_user)
- fields = pool.get(res_model).fields_get(cr, uid, context=context)
-
def get_resource_info(node):
ret = False
+ src_model = res_model
+ src_id = res_id
+
+ if node.transition_in:
+ tr = node.transition_in[0]
+ src = nodes.get(tr.source_node_id.id)
+ if src['res']:
+ src_model = src['res']['model']
+ src_id = src['res']['id']
+ else:
+ return False
+
+ fields = pool.get(src_model).fields_get(cr, uid, context=context)
+
for name, field in fields.items():
- if node.model_id and field.get('relation', False) == node.model_id.model and current_object[name]:
- rel = current_object[name][0]
- ret = {}
- ret['name'] = rel.name_get(context)[0][1]
- ret['model'] = field['relation']
- ret['id'] = rel.id
+ if node.model_id and field.get('relation', False) == node.model_id.model:
+ src_obj = pool.get(src_model).browse(cr, uid, [src_id], context)[0]
+ rel = src_obj[name]
+ if rel:
+ if isinstance(rel, (list, tuple)):
+ rel = rel[0]
+ ret = {}
+ ret['name'] = rel.name_get(context)[0][1]
+ ret['model'] = field['relation']
+ ret['id'] = rel.id
return ret