37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
![]() |
# Copyright 2018 Eficent Business and IT Consulting Services, S.L.
|
||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||
|
from odoo import api, models, fields
|
||
|
|
||
|
|
||
|
class MailActivity(models.Model):
|
||
|
_inherit = 'mail.activity'
|
||
|
|
||
|
partner_id = fields.Many2one(
|
||
|
comodel_name='res.partner',
|
||
|
index=True,
|
||
|
compute='_compute_res_partner_id',
|
||
|
store=True,
|
||
|
)
|
||
|
|
||
|
commercial_partner_id = fields.Many2one(
|
||
|
related='partner_id.commercial_partner_id',
|
||
|
string='Commercial Entity',
|
||
|
store=True,
|
||
|
related_sudo=True,
|
||
|
readonly=True)
|
||
|
|
||
|
@api.depends('res_model', 'res_id')
|
||
|
def _compute_res_partner_id(self):
|
||
|
for obj in self:
|
||
|
res_model = obj.res_model
|
||
|
res_id = obj.res_id
|
||
|
if res_model == 'res.partner':
|
||
|
obj.partner_id = res_id
|
||
|
else:
|
||
|
res_model_id = obj.env[res_model].search([('id', '=', res_id)])
|
||
|
if 'partner_id' in res_model_id._fields and \
|
||
|
res_model_id.partner_id:
|
||
|
obj.partner_id = res_model_id.partner_id
|
||
|
else:
|
||
|
obj.partner_id = None
|