From a33736084ab2e452d7cf1e7226e74503f2608907 Mon Sep 17 00:00:00 2001 From: "mga@tinyerp.com" <> Date: Mon, 25 Aug 2008 18:41:10 +0530 Subject: [PATCH] Implement normal operations using eval() method bzr revid: mga@tinyerp.com-20080825131110-kket17k3zdcx2rb5 --- bin/addons/base/ir/ir_actions.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index 9cba2ceeffe..ac15909c014 100755 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -418,7 +418,7 @@ class actions_server(osv.osv): return obj - def merge_message(self, cr, uid, action, context): + def merge_message(self, cr, uid, keystr, action, context): logger = netsvc.Logger() def merge(match): @@ -441,7 +441,7 @@ class actions_server(osv.osv): return str(obj) com = re.compile('\[\[(.+?)\]\]') - message = com.sub(merge, str(action.message)) + message = com.sub(merge, keystr) return message # @@ -471,7 +471,7 @@ class actions_server(osv.osv): user = config['email_from'] subject = action.name - address = self.get_field_value(cr, uid, action, context) + address = self.get_field_value(cr, uid, str(action.message), action, context) body = self.merge_message(cr, uid, action, context) if tools.email_send_attach(user, address, subject, body, debug=False) == True: @@ -508,7 +508,22 @@ class actions_server(osv.osv): exec code in localdict if 'action' in localdict: return localdict['action'] - + if action.state == 'object_write': + res = {} + for exp in action.fields_lines: + euq = exp.value + if exp.type == 'equation': + expr = self.merge_message(cr, uid, euq, action, context) + expr = eval(expr) + else: + expr = exp.value + res[exp.col1.name] = expr + obj_pool = self.pool.get(action.model_id.model) + obj_pool.write(cr, uid, [context.get('active_id')], res) + + if action.state == 'object_create': + pass + return False actions_server()