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.", help="The teams this person works for.",
) )
teams_served_ids = fields.One2many( 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( patient_ids = fields.One2many(
comodel_name="sports.patient", inverse_name="partner_id" comodel_name="sports.patient", inverse_name="partner_id"
@ -36,3 +38,16 @@ class Partner(models.Model):
def _compute_teams_served(self): def _compute_teams_served(self):
for rec in self: for rec in self:
rec.teams_served_ids = rec.team_staff_rel_ids.mapped("team_id") 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)], domain=[("is_company", "=", False)],
ondelete="cascade", ondelete="cascade",
) )
active = fields.Boolean(related="partner_id.active")
role = fields.Selection( role = fields.Selection(
selection=[ selection=[
("head_coach", "Head Coach"), ("head_coach", "Head Coach"),

View file

@ -12,7 +12,16 @@
string="Teams"/> string="Teams"/>
<field name="teams_served_ids" <field name="teams_served_ids"
attrs="{'invisible': [('is_company', '=', True)]}" 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>
</page> </page>
</field> </field>