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 - - + + - + + +