diff --git a/bemade_sports_clinic/models/res_partner.py b/bemade_sports_clinic/models/res_partner.py
index 2d7f4d1..99841ce 100644
--- a/bemade_sports_clinic/models/res_partner.py
+++ b/bemade_sports_clinic/models/res_partner.py
@@ -19,7 +19,9 @@ class Partner(models.Model):
help="The teams this person works for.",
)
teams_served_ids = fields.One2many(
- comodel_name="sports.team", compute="_compute_teams_served"
+ comodel_name="sports.team",
+ compute="_compute_teams_served",
+ inverse="_inverse_teams_served",
)
patient_ids = fields.One2many(
comodel_name="sports.patient", inverse_name="partner_id"
@@ -36,3 +38,16 @@ class Partner(models.Model):
def _compute_teams_served(self):
for rec in self:
rec.teams_served_ids = rec.team_staff_rel_ids.mapped("team_id")
+
+ @api.depends("team_staff_rel_ids.team_id")
+ def _inverse_teams_served(self):
+ for rec in self:
+ for staff in rec.team_staff_rel_ids:
+ if staff.team_id not in rec.teams_served_ids:
+ staff.unlink()
+ served_teams = rec.team_staff_rel_ids.mapped("team_id")
+ for team in rec.teams_served_ids:
+ if team not in served_teams:
+ raise UserError(
+ "To add a staff member to a team, use the team view."
+ )
diff --git a/bemade_sports_clinic/models/sports_team.py b/bemade_sports_clinic/models/sports_team.py
index 8a0cb53..2fd671d 100644
--- a/bemade_sports_clinic/models/sports_team.py
+++ b/bemade_sports_clinic/models/sports_team.py
@@ -126,6 +126,7 @@ class TeamStaff(models.Model):
domain=[("is_company", "=", False)],
ondelete="cascade",
)
+ active = fields.Boolean(related="partner_id.active")
role = fields.Selection(
selection=[
("head_coach", "Head Coach"),
diff --git a/bemade_sports_clinic/views/res_partner_views.xml b/bemade_sports_clinic/views/res_partner_views.xml
index 5c810f2..961adea 100644
--- a/bemade_sports_clinic/views/res_partner_views.xml
+++ b/bemade_sports_clinic/views/res_partner_views.xml
@@ -12,7 +12,16 @@
string="Teams"/>
+ string="Teams Served">
+
+
+
+
+
+
+
+
+