bemade_sport_clinic: improve facility for deactivating team staff

This commit is contained in:
Marc Durepos 2024-09-05 08:24:56 -04:00
parent c9690d46b1
commit 75e986a4a2
3 changed files with 27 additions and 2 deletions

View file

@ -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."
)

View file

@ -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"),

View file

@ -12,7 +12,16 @@
string="Teams"/>
<field name="teams_served_ids"
attrs="{'invisible': [('is_company', '=', True)]}"
string="Teams Served"/>
string="Teams Served">
<tree editable="bottom" create="False" delete="True">
<field name="name"/>
<field name="parent_id"/>
<field name="head_coach_id"/>
<field name="head_therapist_id"/>
<field name="player_count"/>
<field name="injured_count"/>
</tree>
</field>
</page>
</page>
</field>