You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.2 KiB
35 lines
1.2 KiB
# -*- coding: utf-8 -*-
|
|
# Copyright 2018 Camptocamp
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
from odoo import models, api
|
|
|
|
|
|
class MailTemplate(models.Model):
|
|
|
|
_inherit = 'mail.template'
|
|
|
|
@api.multi
|
|
def generate_recipients(self, results, res_ids):
|
|
"""
|
|
Modify the code that set the default recipient in an email to the first
|
|
partner having an email set following the parents tree.
|
|
If no parent with an email is found,
|
|
it reverts to the popup asking to set an email for the current partner
|
|
"""
|
|
results = super(MailTemplate, self).generate_recipients(
|
|
results,
|
|
res_ids
|
|
)
|
|
for res_id, values in results.iteritems():
|
|
partner_ids = values.get('partner_ids', [])
|
|
partners_with_emails = []
|
|
for partner in self.env['res.partner'].sudo().browse(partner_ids):
|
|
current = partner
|
|
while current:
|
|
if current.email:
|
|
break
|
|
current = current.parent_id
|
|
partners_with_emails.append(current.id or partner.id)
|
|
|
|
results[res_id]['partner_ids'] = partners_with_emails
|
|
return results
|