Ejemplo n.º 1
0
Archivo: views.py Proyecto: webkom/lego
    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)
Ejemplo n.º 2
0
Archivo: views.py Proyecto: mklarz/lego
    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)
Ejemplo n.º 3
0
    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)