diff options
| author | Thibault Delavallée <tde@openerp.com> | 2013-03-05 16:15:03 +0100 |
|---|---|---|
| committer | Thibault Delavallée <tde@openerp.com> | 2013-03-05 16:15:03 +0100 |
| commit | f8481a83d0af37e4e2865e8e7052caa16ad1c644 (patch) | |
| tree | 546454364110cf3102e8694a3b3227334a8adc3f /addons/email_template/wizard/mail_compose_message.py | |
| parent | 7daec12ef68097870a78d51f9aabb5e173818aa8 (diff) | |
[IMP] email_template: cleaned a bit duplicated code.
bzr revid: tde@openerp.com-20130305151503-t99tu53x35d3ea29
Diffstat (limited to 'addons/email_template/wizard/mail_compose_message.py')
| -rw-r--r-- | addons/email_template/wizard/mail_compose_message.py | 47 |
1 files changed, 20 insertions, 27 deletions
diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py index b7da6ccc236..ba8ac737866 100644 --- a/addons/email_template/wizard/mail_compose_message.py +++ b/addons/email_template/wizard/mail_compose_message.py @@ -131,6 +131,19 @@ class mail_compose_message(osv.TransientModel): # Wizard validation and send #------------------------------------------------------ + def _get_or_create_partners_from_values(self, cr, uid, rendered_values, context=None): + """ Check for email_to, email_cc, partner_to """ + partner_ids = [] + mails = tools.email_split(rendered_values.pop('email_to', '') + ' ' + rendered_values.pop('email_cc', '')) + for mail in mails: + partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context) + partner_ids.append(partner_id) + partner_to = rendered_values.pop('partner_to', '') + if partner_to: + for partner_id in partner_to.split(','): + partner_ids.append(int(partner_id)) + return partner_ids + def generate_email_for_composer(self, cr, uid, template_id, res_id, context=None): """ Call email_template.generate_email(), get fields relevant for mail.compose.message, transform email_cc and email_to into partner_ids """ @@ -140,19 +153,7 @@ class mail_compose_message(osv.TransientModel): 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 - values['partner_ids'] = [] - - mails = tools.email_split(values.pop('email_to', '') + ' ' + values.pop('email_cc', '')) - for mail in mails: - partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context) - values['partner_ids'].append(partner_id) - partner_to = values.pop('partner_to', '') - if partner_to: - for partner_id in partner_to.split(','): - values['partner_ids'].append(int(partner_id)) - - values['partner_ids'] = list(set(values['partner_ids'])) - + values['partner_ids'] = self._get_or_create_partners_from_values(cr, uid, values, context=context) return values def render_message(self, cr, uid, wizard, res_id, context=None): @@ -164,20 +165,12 @@ 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_to = self.render_template(cr, uid, wizard.email_to, wizard.model, res_id, context) - email_cc = self.render_template(cr, uid, wizard.email_cc, wizard.model, res_id, context) - partner_to = self.render_template(cr, uid, wizard.partner_to, wizard.model, res_id, context) - email_dict['partner_ids'] = [] - - mails = tools.email_split((email_to or '') + ' ' + (email_cc or '')) - for mail in mails: - partner_id = self.pool.get('res.partner').find_or_create(cr, uid, mail, context=context) - email_dict['partner_ids'].append(partner_id) - if partner_to: - for partner_id in partner_to.split(','): - email_dict['partner_ids'].append(int(partner_id)) - + 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) + # update template values by wizard values values.update(email_dict) return values |
