diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index ba8ac737866..05b73eeb276 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -61,11 +61,11 @@ class mail_compose_message(osv.TransientModel): _columns = { # incredible hack of the day: size=-1 means we want an int db column instead of an str one 'template_id': fields.selection(_get_templates, 'Template', size=-1), - 'partner_to': fields.char('To (Partner IDs)', readonly=True, + 'partner_to': fields.char('To (Partner IDs)', help="Comma-separated list of recipient partners ids (placeholders may be used here)"), - 'email_to': fields.char('To (Emails)', readonly=True, + 'email_to': fields.char('To (Emails)', help="Comma-separated recipient addresses (placeholders may be used here)",), - 'email_cc': fields.char('Cc (Emails)', readonly=True, + 'email_cc': fields.char('Cc (Emails)', help="Carbon copy recipients (placeholders may be used here)"), } @@ -79,8 +79,9 @@ 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': - values = self.pool.get('email.template').read(cr, uid, template_id, ['subject', 'body_html', 'email_from', 'email_to', 'email_cc', 'partner_to', 'reply_to'], context) - values.pop('id') + fields = ['subject', 'body_html', 'email_from', 'email_to', 'partner_to', 'email_cc', 'reply_to'] + 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)) elif template_id: # FIXME odo: change the mail generation to avoid attachment duplication values = self.generate_email_for_composer(cr, uid, template_id, res_id, context=context) @@ -165,11 +166,10 @@ class mail_compose_message(osv.TransientModel): values = {} # get values to return email_dict = super(mail_compose_message, self).render_message(cr, uid, wizard, res_id, context) - email_dict['email_to'] = self.render_template(cr, uid, wizard.email_to, wizard.model, res_id, context) - email_dict['email_cc'] = self.render_template(cr, uid, wizard.email_cc, wizard.model, res_id, context) - email_dict['partner_to'] = self.render_template(cr, uid, wizard.partner_to, wizard.model, res_id, context) - # transform email_to, email_cc into partner_ids - email_dict['partner_ids'] = self._get_or_create_partners_from_values(cr, uid, email_dict, context=context) + # those values are not managed; they are readonly + email_dict.pop('email_to', None) + email_dict.pop('email_cc', None) + email_dict.pop('partner_to', None) # update template values by wizard values values.update(email_dict) return values diff --git a/addons/email_template/wizard/mail_compose_message_view.xml b/addons/email_template/wizard/mail_compose_message_view.xml index f5ad47e20bc..1b2be68a4a2 100644 --- a/addons/email_template/wizard/mail_compose_message_view.xml +++ b/addons/email_template/wizard/mail_compose_message_view.xml @@ -8,12 +8,20 @@ - /> - /> - /> +