Enhance GroupAddMemberView to support adding multiple members and improve error handling for non-existent users

This commit is contained in:
Edgar P. Burkhart 2025-06-15 16:24:51 +02:00
parent cc38d72df8
commit b30ee77132
Signed by: edpibu
GPG key ID: 9833D3C5A25BD227

View file

@ -139,19 +139,24 @@ class GroupAddMemberView(MemberFilterMixin, SingleObjectMixin, View):
group = self.get_object()
if not group.is_leader(request.user):
raise PermissionDenied()
username = request.POST.get("username")
user = User.objects.get(username=username)
if user == group.owner:
messages.add_message(
request, messages.WARNING, f"{user} est le propriétaire du groupe."
)
return redirect(group)
if user in group.members.all():
messages.add_message(
request, messages.WARNING, f"{user} est déjà membre du groupe."
)
usernames = request.POST.get("username")
for username in usernames.split():
user = User.objects.filter(username=username).first()
if not user:
messages.add_message(
request, messages.ERROR, f"{username} n'existe pas."
)
elif user == group.owner:
messages.add_message(
request, messages.WARNING, f"{user} est le propriétaire du groupe."
)
elif user in group.members.all():
messages.add_message(
request, messages.WARNING, f"{user} est déjà membre du groupe."
)
else:
group.members.add(user)
group.members.add(user)
return redirect(group)