def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) username = serializer.data["username"] photo_consent = serializer.data["photo_consent"] try: user = User.objects.get(username=username) except User.DoesNotExist: raise ValidationError({ "error": f"There is no user with username {username}", "error_code": "no_user", }) try: reg = self.get_queryset().get(user=user) except Registration.DoesNotExist: raise ValidationError({ "error": "The registration does not exist", "error_code": "not_registered", }) if not get_permission_handler(Event).has_perm( request.user, "EDIT", obj=reg.event): raise PermissionDenied() reg.photo_consent = photo_consent reg.save() data = RegistrationSearchReadSerializer(reg).data return Response(data=data, status=status.HTTP_200_OK)
def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) username = serializer.data["username"] try: user = User.objects.get(username=username) except User.DoesNotExist: raise ValidationError( { "error": f"There is no user with username {username}", "error_code": "no_user", } ) try: reg = self.get_queryset().get(user=user) except Registration.DoesNotExist: raise ValidationError( { "error": "The registration does not exist", "error_code": "not_registered", } ) if not get_permission_handler(Event).has_perm( request.user, "EDIT", obj=reg.event ): raise PermissionDenied() if reg.status != constants.SUCCESS_REGISTER: raise ValidationError( { "error": f"User {reg.user.username} is _not_ properly registerd. " f"The registration status for the user is: {reg.status}", "error_code": "already_present", } ) if reg.pool is None: raise ValidationError( { "error": f"User {reg.user.username} is on the waiting list... " "You can set the presence manualy on the 'Påmeldinger' tab", "error_code": "already_present", } ) if reg.presence != constants.UNKNOWN: raise ValidationError( { "error": f"User {reg.user.username} is already present.", "error_code": "already_present", } ) reg.presence = constants.PRESENT reg.save() data = RegistrationSearchReadSerializer(reg).data return Response(data=data, status=status.HTTP_200_OK)
def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) username = serializer.data['username'] try: user = User.objects.get(username=username) except User.DoesNotExist: raise ValidationError( { 'error': f'There is no user with username {username}', 'error_code': 'no_user' } ) try: reg = self.get_queryset().get(user=user) except Registration.DoesNotExist: raise ValidationError( { 'error': 'The registration does not exist', 'error_code': 'not_registered' } ) if not get_permission_handler(Event).has_perm(request.user, 'EDIT', obj=reg.event): raise PermissionDenied() if reg.presence != constants.UNKNOWN: raise ValidationError( { 'error': f'User {reg.user.username} is already present.', 'error_code': 'already_present' } ) reg.presence = constants.PRESENT reg.save() data = RegistrationSearchReadSerializer(reg).data return Response(data=data, status=status.HTTP_200_OK)