[IMP] email_template: cleaned a bit duplicated code.

bzr revid: tde@openerp.com-20130305151503-t99tu53x35d3ea29
This commit is contained in:
Thibault Delavallée
2013-03-05 16:15:03 +01:00
parent 7daec12ef6
commit f8481a83d0
@@ -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