From 174534ff5ebec7f93d46120db7ecc1f45e4ce53e Mon Sep 17 00:00:00 2001 From: "Yogesh (OpenERP)" Date: Wed, 23 Feb 2011 17:52:28 +0530 Subject: [PATCH] [IMP] email_template, emails:- message id and reference write in message add reference argument in email_send method. bzr revid: ysa@tinyerp.com-20110223122228-iyzw7mdfvw0zrzw8 --- addons/email_template/email_template.py | 4 ++-- .../wizard/email_compose_message.py | 10 +++++++++- addons/emails/email_message.py | 12 +++++++++--- addons/emails/email_view.xml | 1 + addons/emails/wizard/email_compose_message.py | 19 ++++++++++++++++--- 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 0823638c614..3d06fb5915c 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -477,7 +477,7 @@ class email_message(osv.osv): return result def email_send(self, cr, uid, email_from, email_to, subject, body, model=False, email_cc=None, email_bcc=None, reply_to=False, attach=None, - message_id=False, openobject_id=False, debug=False, subtype='plain', x_headers={}, priority='3', smtp_server_id=False, context=None): + message_id=False, references=False, openobject_id=False, debug=False, subtype='plain', x_headers={}, priority='3', smtp_server_id=False, context=None): if context is None: context = {} notemplate = context.get('notemplate', True) @@ -489,7 +489,7 @@ class email_message(osv.osv): return template_pool.generate_email(cr, uid, template_id, openobject_id, context=context) return super(email_message, self).email_send(cr, uid, email_from, email_to, subject, body, model=model, email_cc=email_cc, email_bcc=email_bcc, reply_to=reply_to, attach=attach, - message_id=message_id, openobject_id=openobject_id, debug=debug, subtype=subtype, x_headers=x_headers, priority=priority, smtp_server_id=smtp_server_id, context=context) + message_id=message_id, references=references, openobject_id=openobject_id, debug=debug, subtype=subtype, x_headers=x_headers, priority=priority, smtp_server_id=smtp_server_id, context=context) email_message() diff --git a/addons/email_template/wizard/email_compose_message.py b/addons/email_template/wizard/email_compose_message.py index c18ad815b66..f9902859795 100644 --- a/addons/email_template/wizard/email_compose_message.py +++ b/addons/email_template/wizard/email_compose_message.py @@ -36,7 +36,11 @@ class email_compose_message(osv.osv_memory): record_ids = [] email_temp_pool = self.pool.get('email.template') model = False - if context.get('email_model',False): + if context.get('message_id'): + message_pool = self.pool.get('email.message') + message_data = message_pool.browse(cr, uid, int(context.get('message_id')), context) + model = message_data.model + elif context.get('email_model',False): model = context.get('email_model') elif context.get('active_model',False): model = context.get('active_model') @@ -55,6 +59,10 @@ class email_compose_message(osv.osv_memory): email_temp_previ_pool = self.pool.get('email_template.preview') result = self.on_change_referred_doc(cr, uid, [], model, resource_id, context=context) vals = result.get('value',{}) + if template_id: + email_temp_pool = self.pool.get('email.template') + email_temp_data = email_temp_pool.browse(cr, uid, template_id, context) + vals.update({'smtp_server_id': email_temp_data.smtp_server_id and email_temp_data.smtp_server_id.id or False}) if template_id and resource_id: context.update({'template_id': template_id}) value = email_temp_previ_pool.on_change_ref(cr, uid, [], resource_id, context) diff --git a/addons/emails/email_message.py b/addons/emails/email_message.py index ec2aa7ccca0..f51b19df207 100644 --- a/addons/emails/email_message.py +++ b/addons/emails/email_message.py @@ -85,6 +85,10 @@ class email_message_template(osv.osv_memory): 'description': fields.text('Description', translate=True), 'smtp_server_id':fields.many2one('email.smtp_server', 'SMTP Server'), } + _defaults = { + 'references': lambda * a: None, + } + _sql_constraints = [] email_message_template() @@ -247,7 +251,7 @@ class email_message(osv.osv): _("Error sending mail: %s") % e) def email_send(self, cr, uid, email_from, email_to, subject, body, model=False, email_cc=None, email_bcc=None, reply_to=False, attach=None, - message_id=False, openobject_id=False, debug=False, subtype='plain', x_headers={}, priority='3', smtp_server_id=False, context=None): + message_id=False, references=False, openobject_id=False, debug=False, subtype='plain', x_headers={}, priority='3', smtp_server_id=False, context=None): attachment_obj = self.pool.get('ir.attachment') if email_to and type(email_to) != list: email_to = [email_to] @@ -269,6 +273,7 @@ class email_message(osv.osv): 'reply_to': reply_to, 'res_id': openobject_id, 'message_id': message_id, + 'references': references, 'sub_type': subtype or '', 'headers': x_headers or False, 'priority': priority, @@ -327,7 +332,8 @@ class email_message(osv.osv): email_cc=message.email_cc and message.email_cc.split(',') or [], email_bcc=message.email_bcc and message.email_bcc.split(',') or [], reply_to=message.reply_to, - attach=attachments, message_id=message.message_id, openobject_id=message.res_id, + attach=attachments, message_id=message.message_id, references = message.references, + openobject_id=message.res_id, subtype=message.sub_type, x_headers=message.headers and eval(message.headers) or {}, priority=message.priority, debug=message.debug, @@ -337,7 +343,7 @@ class email_message(osv.osv): smtp_user=smtp_server and smtp_server.smtpuname or None, smtp_password=smtp_server and smtp_server.smtppass or None) if res: - self.write(cr, uid, [message.id], {'state':'sent'}, context) + self.write(cr, uid, [message.id], {'state':'sent', 'message_id': res}, context) else: self.write(cr, uid, [message.id], {'state':'exception'}, context) except Exception, error: diff --git a/addons/emails/email_view.xml b/addons/emails/email_view.xml index 4680ece3ee3..a88764dd883 100644 --- a/addons/emails/email_view.xml +++ b/addons/emails/email_view.xml @@ -37,6 +37,7 @@