From ceb689c8e236d94c06c44e96b6291958e43fb76f Mon Sep 17 00:00:00 2001 From: Amit Mendapara Date: Mon, 22 Sep 2008 16:11:44 +0530 Subject: Node with related resource information. bzr revid: ame@tinyerp.com-20080922104144-piob6t3zdt2zgcnj --- addons/process/process.py | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'addons/process/process.py') 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 -- cgit v1.2.3