From d63731b65f7367f83ef4b18a1772b2b25363a11b Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Tue, 26 Apr 2011 17:24:45 +0530 Subject: [PATCH 1/3] [IMP]: email_template: *able to save email as new template to reuse it *evaluating expression type for mail same as email_template bzr revid: rha@tinyerp.com-20110426115445-qpx91w218tyg4jde --- addons/email_template/email_template.py | 4 --- .../wizard/email_compose_message.py | 27 +++++++++++++++++++ .../wizard/email_compose_message_view.xml | 11 +++++--- addons/mail/wizard/email_compose_message.py | 4 +-- 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 192a42314a8..0f35a066f3c 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -152,10 +152,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..1a566830779 100644 --- a/addons/email_template/wizard/email_compose_message.py +++ b/addons/email_template/wizard/email_compose_message.py @@ -79,6 +79,33 @@ class email_compose_message(osv.osv_memory): values['attachment_ids'] = att_ids return {'value': values} + def save_as_new_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, [('name','=', record.model)])[0] + values = { + 'name': record.model, + '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..8c229176c13 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 - - + + - + + +