From 64db9a1176b895b54ce6b4b29a70480abab5795d Mon Sep 17 00:00:00 2001 From: Marc Durepos Date: Wed, 18 Sep 2024 14:35:51 -0400 Subject: [PATCH] fix patient injury rights --- bemade_sports_clinic/models/patient.py | 4 ++-- bemade_sports_clinic/models/patient_injury.py | 21 ++----------------- bemade_sports_clinic/models/sports_team.py | 5 +++-- 3 files changed, 7 insertions(+), 23 deletions(-) diff --git a/bemade_sports_clinic/models/patient.py b/bemade_sports_clinic/models/patient.py index c247e06..bafc132 100644 --- a/bemade_sports_clinic/models/patient.py +++ b/bemade_sports_clinic/models/patient.py @@ -132,7 +132,7 @@ class Patient(models.Model): def write(self, values): res = super().write(values) if "team_ids" in values: - self.recompute_followers() + self.sudo().recompute_followers() return res @api.model_create_multi @@ -151,7 +151,7 @@ class Patient(models.Model): .id ) res = super().create(vals_list) - res.recompute_followers() + res.sudo().recompute_followers() return res @api.constrains("match_status", "practice_status") diff --git a/bemade_sports_clinic/models/patient_injury.py b/bemade_sports_clinic/models/patient_injury.py index 6ecf50d..06fa51e 100644 --- a/bemade_sports_clinic/models/patient_injury.py +++ b/bemade_sports_clinic/models/patient_injury.py @@ -103,28 +103,11 @@ class PatientInjury(models.Model): else: rec.stage = "active" - def write(self, vals): - super().write(vals) - if "treatment_professional_ids" in vals: - to_subscribe = self.treatment_professional_ids.mapped( - "partner_id" - ) - self.message_follower_ids.mapped("partner_id") - self.message_subscribe(to_subscribe.ids) - @api.model_create_multi def create(self, vals_list): res = super().create(vals_list) - for rec in res: - to_subscribe = rec.treatment_professional_ids.mapped( - "partner_id" - ) - rec.message_follower_ids.mapped("partner_id") - _logger.debug( - f"Created injury {res.id}: {res.diagnosis}. Subscribing followers {to_subscribe}" - ) - rec.message_subscribe(to_subscribe.ids) - _logger.debug( - f"Injury {res.id} now has followers {res.message_partner_ids}" - ) + for rec in res.sudo(): + rec.message_subscribe(rec.patient_id.message_partner_ids) msg_body = _("A new injury was created for this patient.") if rec.diagnosis: msg_body += _(" Diagnosis: %s." % rec.diagnosis) diff --git a/bemade_sports_clinic/models/sports_team.py b/bemade_sports_clinic/models/sports_team.py index 2fd671d..e355be1 100644 --- a/bemade_sports_clinic/models/sports_team.py +++ b/bemade_sports_clinic/models/sports_team.py @@ -63,6 +63,7 @@ class SportsTeam(models.Model): previous_patient_ids = self.patient_ids res = super().write(vals) if "staff_ids" in vals or "patient_ids" in vals: + self = self.sudo() self._allow_access_for_staff_internal_users() (self.patient_ids | previous_patient_ids).recompute_followers() return res @@ -72,8 +73,8 @@ class SportsTeam(models.Model): res = super().create(vals_list) for index, rec in enumerate(res): if "staff_ids" in vals_list[index]: - rec._allow_access_for_staff_internal_users() - rec.patient_ids.recompute_followers() + rec.sudo()._allow_access_for_staff_internal_users() + rec.sudo().patient_ids.recompute_followers() return res def unlink(self):