From 98ac2d25a9f9db96f20885b5cba675b92e297f53 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 17 Jun 2021 09:52:53 +0200 Subject: [PATCH] [FIX] mail_activity_team: archived users - If a user is archived but there's an automatic activity, the team check wouldn't locate him. We have to ensure the context. - When the automatic activity gets a user with no team, we should set the team to a void one as well. TT30470 --- mail_activity_team/models/mail_activity.py | 4 +++- mail_activity_team/models/mail_activity_mixin.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mail_activity_team/models/mail_activity.py b/mail_activity_team/models/mail_activity.py index 2417835..7dc7e86 100644 --- a/mail_activity_team/models/mail_activity.py +++ b/mail_activity_team/models/mail_activity.py @@ -63,10 +63,12 @@ class MailActivity(models.Model): # SUPERUSER is inactive and then even if you add it # to member_ids it's not taken account # To not be blocked we must add it to constraint condition + # We must consider also users that could be archived but come from + # an automatic scheduled activity for _activity in self.filtered( lambda a: a.user_id.id != SUPERUSER_ID and a.team_id and a.user_id - and a.user_id not in a.team_id.member_ids + and a.user_id not in a.team_id.with_context(active_test=True).member_ids ): raise ValidationError(_("The assigned user is not member of the team.")) diff --git a/mail_activity_team/models/mail_activity_mixin.py b/mail_activity_team/models/mail_activity_mixin.py index cf25f4a..f8840ee 100644 --- a/mail_activity_team/models/mail_activity_mixin.py +++ b/mail_activity_team/models/mail_activity_mixin.py @@ -21,8 +21,8 @@ class MailActivityMixin(models.AbstractModel): .with_context(default_res_model=self._name,) ._get_default_team_id(user_id=user_id) ) - if team: - act_values.update({"team_id": team.id}) + # Even if it comes empty, we don't want to mismatch the user's team + act_values.update({"team_id": team.id}) return super().activity_schedule( act_type_xmlid=act_type_xmlid, date_deadline=date_deadline,