feat: Allow registered users to sign up guests via new + GAST button
This commit is contained in:
Binary file not shown.
@@ -341,7 +341,7 @@ class ShiftSignupView(views.APIView):
|
||||
signup = ShiftSignup.objects.create(shift=shift, user=user)
|
||||
return Response({'message': 'Erfolgreich für Schicht eingetragen.', 'signup_id': signup.id}, status=status.HTTP_201_CREATED)
|
||||
|
||||
# Guest flow for visitors
|
||||
# Guest flow for visitors or registered users adding a guest
|
||||
else:
|
||||
if not guest_name:
|
||||
return Response({'error': 'Bitte gib einen Namen an.'}, status=status.HTTP_400_BAD_REQUEST)
|
||||
@@ -350,24 +350,23 @@ class ShiftSignupView(views.APIView):
|
||||
if not is_manager and shift.required_skills.exists():
|
||||
required_names = ", ".join([s.name for s in shift.required_skills.all()])
|
||||
return Response({
|
||||
'error': f'Gäste können keine Fähigkeiten haben. Diese Schicht erfordert: {required_names}. Bitte registriere ein Konto mit den passenden Fähigkeiten.'
|
||||
'error': f'Gäste können keine Fähigkeiten haben. Diese Schicht erfordert: {required_names}. Ein Gast kann nur durch den Veranstaltungs-Manager/Admin eingetragen werden.'
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
if not request.session.session_key:
|
||||
request.session.create()
|
||||
session_key = request.session.session_key
|
||||
request.session['guest_name'] = guest_name
|
||||
|
||||
if ShiftSignup.objects.filter(shift=shift, guest_session_key=session_key).exists():
|
||||
return Response({'error': 'Du bist mit deiner Gast-Sitzung bereits für diese Schicht eingetragen.'}, status=status.HTTP_400_BAD_REQUEST)
|
||||
import uuid
|
||||
guest_session_key = f"user_{user.id}_guest_{uuid.uuid4().hex[:6]}" if user else session_key
|
||||
|
||||
signup = ShiftSignup.objects.create(
|
||||
shift=shift,
|
||||
guest_name=guest_name,
|
||||
guest_session_key=session_key
|
||||
guest_session_key=guest_session_key
|
||||
)
|
||||
return Response({
|
||||
'message': f'Gast "{guest_name}" erfolgreich eingetragen!',
|
||||
'message': f'Gast "{guest_name}" wurde erfolgreich eingetragen!',
|
||||
'signup_id': signup.id
|
||||
}, status=status.HTTP_201_CREATED)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user