bemade-addons/bemade_sports_clinic/models/res_partner.py

29 lines
1.3 KiB
Python
Raw Normal View History

2023-10-10 21:52:42 -04:00
from odoo import models, fields, api, _
from odoo.exceptions import UserError
from odoo.exceptions import ValidationError
2023-10-10 21:52:42 -04:00
class Partner(models.Model):
_inherit = 'res.partner'
owned_team_ids = fields.One2many(comodel_name='sports.team',
inverse_name='parent_id')
staff_ids = fields.One2many(comodel_name='sports.team.staff',
inverse_name='team_id')
team_staff_rel_ids = fields.One2many(comodel_name='sports.team.staff',
inverse_name='partner_id',
string='Teams Served',
help='The teams this person works for.')
teams_served_ids = fields.One2many(comodel_name='sports.team', compute='_compute_teams_served')
patient_ids = fields.One2many(comodel_name='sports.patient', inverse_name='partner_id')
def write(self, vals):
if self.patient_ids and 'name' in vals:
raise ValidationError(_("To change a patient's name, change it from the patient form."))
return super().write(vals)
@api.depends('team_staff_rel_ids.team_id')
def _compute_teams_served(self):
for rec in self:
rec.teams_served_ids = rec.team_staff_rel_ids.mapped('team_id')