[MERGE] [FIX] email_template: effectively support 'user signature'
authorThibault Delavallée <tde@openerp.com>
Thu, 24 Apr 2014 10:28:01 +0000 (12:28 +0200)
committerThibault Delavallée <tde@openerp.com>
Thu, 24 Apr 2014 10:28:01 +0000 (12:28 +0200)
in the mail composer when using templates.

bzr revid: tde@openerp.com-20140424102801-j1qbqdvbyo9wv48e

addons/email_template/tests/test_mail.py
addons/email_template/wizard/mail_compose_message.py

index 580421f..62291d7 100644 (file)
@@ -62,7 +62,7 @@ class test_message_compose(TestMail):
             'name': 'Pigs Template',
             'subject': '${object.name}',
             'body_html': '${object.description}',
-            'user_signature': True,
+            'user_signature': False,
             'attachment_ids': [(0, 0, _attachments[0]), (0, 0, _attachments[1])],
             'email_to': 'b@b.b, c@c.c',
             'email_cc': 'd@d.d'
@@ -157,7 +157,7 @@ class test_message_compose(TestMail):
         message_pids = [partner.id for partner in compose.partner_ids]
         partner_ids = [p_a_id]
         self.assertEqual(compose.subject, '${object.name}', 'mail.compose.message subject incorrect')
-        self.assertEqual(compose.body, '<p>${object.description}</p>', 'mail.compose.message body incorrect')
+        self.assertEqual(compose.body, '<p>${object.description}</p>', 'mail.compose.message body incorrect')  # todo: check signature
         self.assertEqual(set(message_pids), set(partner_ids), 'mail.compose.message partner_ids incorrect')
 
         # 2. Post the comment, get created message
index 71f9947..18b8f09 100644 (file)
@@ -92,9 +92,16 @@ class mail_compose_message(osv.TransientModel):
         """ - mass_mailing: we cannot render, so return the template values
             - normal mode: return rendered values """
         if template_id and composition_mode == 'mass_mail':
-            fields = ['subject', 'body_html', 'email_from', 'email_to', 'partner_to', 'email_cc', 'reply_to', 'attachment_ids', 'mail_server_id']
-            template_values = self.pool.get('email.template').read(cr, uid, template_id, fields, context)
-            values = dict((field, template_values[field]) for field in fields if template_values.get(field))
+            fields = ['subject', 'body_html', 'email_from', 'email_to', 'partner_to', 'email_cc', 'reply_to']
+            template = self.pool['email.template'].browse(cr, uid, template_id, context=context)
+            values = dict((field, getattr(template, field)) for field in fields if getattr(template, field))
+            if template.attachment_ids:
+                values['attachment_ids'] = [att.id for att in template.attachment_ids]
+            if template.mail_server_id:
+                values['mail_server_id'] = template.mail_server_id.id
+            if template.user_signature and 'body_html' in values:
+                signature = self.pool.get('res.users').browse(cr, uid, uid, context).signature
+                values['body_html'] = tools.append_content_to_html(values['body_html'], signature)
         elif template_id:
             values = self.generate_email_for_composer_batch(cr, uid, template_id, [res_id], context=context)[res_id]
             # transform attachments into attachment_ids; not attached to the document because this will