social/mail_activity_partner/models/mail_activity.py
Adrià Gil Sorribes 4d400ce762 [12.0][ADD] Add module mail_activity_partner
[IMP] Change partner_id to a computed field

[IMP] Add tests to increase coverage
2021-11-30 08:55:30 +01:00

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