diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py
index f31f10c4060..9a2d720cc1a 100644
--- a/addons/base_action_rule/base_action_rule.py
+++ b/addons/base_action_rule/base_action_rule.py
@@ -113,6 +113,8 @@ the rule to mark CC(mail to any other person defined in actions)."),
'filter_id':fields.many2one('ir.filters', 'Filter', required=False),
'act_email_from' : fields.char('Email From', size=64, required=False,
help="Use a python expression to specify the right field on which one than we will use for the 'From' field of the header"),
+ 'act_email_to' : fields.char('Email To', size=64, required=False,
+ help="Use a python expression to specify the right field on which one than we will use for the 'To' field of the header"),
}
_defaults = {
@@ -356,13 +358,20 @@ the rule to mark CC(mail to any other person defined in actions)."),
emails += (action.act_email_cc or '').split(',')
if action.act_mail_to_email:
emails += (action.act_mail_to_email or '').split(',')
+
+ locals_for_emails = {
+ 'user' : self.pool.get('res.users').browse(cr, uid, uid, context=context),
+ 'obj' : obj,
+ }
+
+ if action.act_email_to:
+ emails.append(safe_eval(action.act_email_to, {}, locals_for_emails))
+
emails = filter(None, emails)
if len(emails) and action.act_mail_body:
emails = list(set(emails))
- email_from = safe_eval(action.act_email_from, {}, {
- 'user' : self.pool.get('res.users').browse(cr, uid, uid, context=context),
- 'obj' : obj,
- })
+ email_from = safe_eval(action.act_email_from, {}, locals_for_emails)
+
def to_email(text):
return re.findall(r'([^ ,<@]+@[^> ,]+)', text or '')
emails = to_email(','.join(filter(None, emails)))
diff --git a/addons/base_action_rule/base_action_rule_view.xml b/addons/base_action_rule/base_action_rule_view.xml
index 755f6680d34..01951b3c9b8 100644
--- a/addons/base_action_rule/base_action_rule_view.xml
+++ b/addons/base_action_rule/base_action_rule_view.xml
@@ -65,12 +65,13 @@
-
+
-
-
-
-
+
+
+
+
+