bemade_sport_clinic: improve facility for deactivating team staff
This commit is contained in:
parent
c9690d46b1
commit
75e986a4a2
3 changed files with 27 additions and 2 deletions
|
|
@ -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."
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -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"),
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue