[FIX] email_template: change name value and concat test

bzr revid: chm@openerp.com-20121107113925-1nmjicj444nez25c
This commit is contained in:
Christophe Matthieu 2012-11-07 12:39:25 +01:00
parent 11f9b954d2
commit 42dd7711b5
7 changed files with 18 additions and 25 deletions

View File

@ -40,8 +40,7 @@
<field name="name">Automated Invoice Notification Mail</field>
<field name="email_from">${object.user_id.email or object.company_id.email or 'noreply@localhost'}</field>
<field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })</field>
<field name="email_to">${object.partner_id.email or ''}</field>
<field name="email_to_partner">${object.partner_id.id}</field>
<field name="email_recipients">${object.partner_id.id}</field>
<field name="model_id" ref="account.model_account_invoice"/>
<field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[

View File

@ -118,8 +118,8 @@ class email_template(osv.osv):
"of the message"),
'subject': fields.char('Subject', translate=True, help="Subject (placeholders may be used here)",),
'email_from': fields.char('From', help="Sender address (placeholders may be used here)"),
'email_to': fields.char('To', help="Comma-separated recipient addresses (placeholders may be used here)"),
'email_to_partner': fields.char('To partner', help="Comma-separated recipient id partner (placeholders may be used here)"),
'email_to': fields.char('To (Emails)', help="Comma-separated recipient addresses (placeholders may be used here)"),
'email_recipients': fields.char('To (Partners)', help="Comma-separated ids of recipient partners (placeholders may be used here)"),
'email_cc': fields.char('Cc', help="Carbon copy recipients (placeholders may be used here)"),
'reply_to': fields.char('Reply-To', help="Preferred response address (placeholders may be used here)"),
'mail_server_id': fields.many2one('ir.mail_server', 'Outgoing Mail Server', readonly=False,
@ -287,7 +287,7 @@ class email_template(osv.osv):
template = self.get_email_template(cr, uid, template_id, res_id, context)
values = {}
for field in ['subject', 'body_html', 'email_from',
'email_to', 'email_to_partner', 'email_cc', 'reply_to']:
'email_to', 'email_recipients', 'email_cc', 'reply_to']:
values[field] = self.render_template(cr, uid, getattr(template, field),
template.model, res_id, context=context) \
or False

View File

@ -30,7 +30,7 @@
<group string="Addressing">
<field name="email_from" required="1"/>
<field name="email_to"/>
<field name="email_to_partner"/>
<field name="email_recipients"/>
<field name="email_cc"/>
<field name="reply_to"/>
<field name="user_signature"/>

View File

@ -172,20 +172,18 @@ class test_message_compose(test_mail.TestMailMockups):
self.assertEqual(set(message_bird_pids), set(partner_ids), 'mail.message on bird notified_partner_ids incorrect')
def test_10_template_email_for_composer(self):
""" Tests designed for message_post. """
cr, uid = self.cr, self.uid
# ----------------------------------------
# CASE4: Created message with template, test recipients
# ----------------------------------------
# 1 - Bert Tartopoils, with email, object to send message, add his partner_id from email_to
u_a_id = self.res_users.create(cr, uid, {'name': 'Bert Tartopoils', 'email': 'raoul@raoul.fr', 'login': 'raoul'})
p_a_id = self.res_users.browse(cr, uid, u_a_id).partner_id.id
# 2 - Carine Poilvache, with email, add his partner_id from email_to and email_to_partner
# 1 - Admin, with email, object to send message, add his partner_id from email_to
# p_a_id
# 2 - Carine Poilvache, with email, add his partner_id from email_to and email_recipients
p_b_id = self.res_partner.create(cr, uid, {'name': 'Carine Poilvache', 'email': 'c@c'})
# 3 - Dédé Grosbedon, without email, add his partner_id from email_to_partner
# 3 - Dédé Grosbedon, without email, add his partner_id from email_recipients
p_c_id = self.res_partner.create(cr, uid, {'name': 'Dédé Grosbedon'})
# 4 - Truc Much, without email, add his partner_id from email_cc
p_d_id = self.res_partner.create(cr, uid, {'name': 'Truc Much', 'email': 'd@d'})
# Create template on res.users
user_model_id = self.registry('ir.model').search(cr, uid, [('model', '=', 'res.users')])[0]
self.email_template_id = self.email_template.create(cr, uid, {
@ -194,15 +192,12 @@ class test_message_compose(test_mail.TestMailMockups):
'subject': '${object.name}',
'body_html': '${object.login}',
'email_to': '${object.email} c@c',
'email_to_partner': '%i,%i' % (p_b_id, p_c_id),
'email_recipients': '%i,%i' % (p_b_id, p_c_id),
'email_cc': 'd@d'
})
# patner by email + partner by id (no double)
send_to = [p_a_id, p_b_id, p_c_id, p_d_id];
# Generate messsage with default email and partner on template
mail_value = self.mail_compose.generate_email_for_composer(cr, uid, self.email_template_id, u_a_id)
mail_value['partner_ids'].sort()
self.assertEqual(mail_value['partner_ids'], send_to, 'mail.message the partner_ids list create by template is incorrect')
self.assertEqual(set(mail_value['partner_ids']), set(send_to), 'mail.message the partner_ids list create by template is incorrect')

View File

@ -17,7 +17,7 @@
<group>
<field name="email_from" readonly="1"/>
<field name="email_to" readonly="1"/>
<field name="email_to_partner" readonly="1"/>
<field name="email_recipients" readonly="1"/>
<field name="email_cc" readonly="1" attrs="{'invisible':[('email_cc','=',False)]}"/>
<field name="reply_to" readonly="1" attrs="{'invisible':[('reply_to','=',False)]}"/>
<field name="subject" readonly="1"/>

View File

@ -148,7 +148,7 @@ class mail_compose_message(osv.TransientModel):
mail.compose.message, transform email_cc and email_to into partner_ids """
template_values = self.pool.get('email.template').generate_email(cr, uid, template_id, res_id, context=context)
# filter template values
fields = ['body', 'body_html', 'subject', 'email_to', 'email_to_partner', 'email_cc', 'attachments']
fields = ['body', 'body_html', 'subject', 'email_to', 'email_recipients', 'email_cc', 'attachments']
values = dict((field, template_values[field]) for field in fields if template_values.get(field))
values['body'] = values.pop('body_html', '')
# transform email_to, email_cc into partner_ids
@ -159,7 +159,7 @@ class mail_compose_message(osv.TransientModel):
partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context)
values['partner_ids'].append(partner_id)
partner_ids = values.pop('email_to_partner', '').split(',')
partner_ids = values.pop('email_recipients', '').split(',')
for partner_id in partner_ids:
if partner_id:
values['partner_ids'].append(int(partner_id))

View File

@ -40,8 +40,7 @@
<field name="name">Automated Purchase Order Notification Mail</field>
<field name="email_from">${object.validator.email or ''}</field>
<field name="subject">${object.company_id.name} Order (Ref ${object.name or 'n/a' })</field>
<field name="email_to">${object.partner_id.email or ''}</field>
<field name="email_to_partner">${object.partner_id.id}</field>
<field name="email_recipients">${object.partner_id.id}</field>
<field name="model_id" ref="purchase.model_purchase_order"/>
<field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[