[MERGE] correction of backlog3: get value from expression on mass mailing

bzr revid: hmo@tinyerp.com-20110425103848-ywy991nthd1mqe5c
This commit is contained in:
Harry (OpenERP)
2011-04-25 16:08:48 +05:30
+17 -5
View File
@@ -23,6 +23,7 @@ from osv import osv
from osv import fields
import tools
from tools.safe_eval import safe_eval as eval
import re
class email_compose_message(osv.osv_memory):
_name = 'email.compose.message'
@@ -171,11 +172,22 @@ class email_compose_message(osv.osv_memory):
def get_template_value(self, cr, uid, message, model, resource_id, context=None):
locals_for_emails = {
'user' : self.pool.get('res.users').browse(cr, uid, uid, context=context),
'object' : self.pool.get(model).browse(cr, uid, resource_id),
}
return message and eval(message, {}, locals_for_emails)
if context is None:
context = {}
def merge(match):
exp = str(match.group()[2:-2]).strip()
result = eval(exp,
{
'user' : self.pool.get('res.users').browse(cr, uid, uid, context=context),
'context': dict(context), # copy context to prevent side-effects of eval
'object' : self.pool.get(model).browse(cr, uid, resource_id),
})
if result in (None, False):
return str("--------")
return tools.ustr(result)
com = re.compile('(\[\[.+?\]\])')
return message and com.sub(merge, message)
email_compose_message()