|
|
""" Display a warning message to warn user they are about to archive
other memberships. Only valid in mono-membership mode and take into
account only active memberships as we may keep several archived
memberships. """
if all(m.is_membership_multi for m in self):
self.member_warning = False
else:
active = self.filtered('active')
(self - active).member_warning = False
if not active:
return
existing = self.env['crm.team.member'].search([('user_id', 'in', active.user_id.ids)])
user_mapping = dict.fromkeys(existing.user_id, self.env['crm.team'])
for membership in existing:
user_mapping[membership.user_id] |= membership.crm_team_id
for member in active:
teams = user_mapping.get(member.user_id, self.env['crm.team'])
remaining = teams - (member.crm_team_id | member._origin.crm_team_id)
if remaining:
member.member_warning = _("%(user_name)s already in other teams (%(team_names)s).",
user_name=member.user_id.name,
team_names=", ".join(remaining.mapped('name'))
)
else:
member.member_warning = False
|
|