diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py
index 5ae9833acab..20a98c009ca 100644
--- a/addons/email_template/email_template.py
+++ b/addons/email_template/email_template.py
@@ -151,10 +151,6 @@ class email_template(osv.osv):
'body_html': fields.text('HTML', help="Contains HTML version of email. Placeholders can be used here."),
}
- _sql_constraints = [
- ('name', 'unique (name)','The template name must be unique !')
- ]
-
def create_action(self, cr, uid, ids, context=None):
vals = {}
if context is None:
diff --git a/addons/email_template/wizard/email_compose_message.py b/addons/email_template/wizard/email_compose_message.py
index 41cbd9fa146..d5289a4e98f 100644
--- a/addons/email_template/wizard/email_compose_message.py
+++ b/addons/email_template/wizard/email_compose_message.py
@@ -79,6 +79,34 @@ class email_compose_message(osv.osv_memory):
values['attachment_ids'] = att_ids
return {'value': values}
+ def save_as_template(self, cr, uid, ids, context=None):
+ '''
+ create a new template record
+ '''
+ if context is None:
+ context = {}
+ template_pool = self.pool.get('email.template')
+ model_pool = self.pool.get('ir.model')
+ for record in self.browse(cr, uid, ids, context=context):
+ model = model_pool.search(cr, uid, [('model','=', record.model)])[0]
+ model_name = model_pool.browse(cr, uid, model, context=context).name
+ values = {
+ 'name': model_name,
+ 'email_from': record.email_from or False,
+ 'subject': record.subject or False,
+ 'body': record.body or False,
+ 'email_to': record.email_to or False,
+ 'email_cc': record.email_cc or False,
+ 'email_bcc': record.email_bcc or False,
+ 'reply_to': record.reply_to or False,
+ 'auto_delete': record.auto_delete,
+ 'model_id': model or False,
+ 'smtp_server_id': record.smtp_server_id.id or False,
+ 'attachment_ids': [(6, 0, [att.id for att in record.attachment_ids])]
+ }
+ template_pool.create(cr, uid, values, context=context)
+ return True
+
email_compose_message()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/email_template/wizard/email_compose_message_view.xml b/addons/email_template/wizard/email_compose_message_view.xml
index a2776662e0d..22a8191541a 100644
--- a/addons/email_template/wizard/email_compose_message_view.xml
+++ b/addons/email_template/wizard/email_compose_message_view.xml
@@ -8,10 +8,15 @@
form
-
-
+
+
-
+
+
+
+
+
diff --git a/addons/mail/wizard/email_compose_message.py b/addons/mail/wizard/email_compose_message.py
index 1a642f4e6a0..a0a022b9922 100644
--- a/addons/mail/wizard/email_compose_message.py
+++ b/addons/mail/wizard/email_compose_message.py
@@ -175,7 +175,7 @@ class email_compose_message(osv.osv_memory):
if context is None:
context = {}
def merge(match):
- exp = str(match.group()[2:-2]).strip()
+ exp = str(match.group()[2:-1]).strip()
result = eval(exp,
{
'user' : self.pool.get('res.users').browse(cr, uid, uid, context=context),
@@ -186,7 +186,7 @@ class email_compose_message(osv.osv_memory):
return str("--------")
return tools.ustr(result)
- com = re.compile('(\[\[.+?\]\])')
+ com = re.compile('(\$\{.+?\})')
return message and com.sub(merge, message)
email_compose_message()