summaryrefslogtreecommitdiff
path: root/addons/email_template/wizard/mail_compose_message.py
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2013-03-05 16:15:03 +0100
committerThibault Delavallée <tde@openerp.com>2013-03-05 16:15:03 +0100
commitf8481a83d0af37e4e2865e8e7052caa16ad1c644 (patch)
tree546454364110cf3102e8694a3b3227334a8adc3f /addons/email_template/wizard/mail_compose_message.py
parent7daec12ef68097870a78d51f9aabb5e173818aa8 (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.py47
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