def get(request):
     if request.user.id is not None and request.user.is_manager:
         serializer = EventsSerializer(Events.objects.filter(id_manager=request.user.id), many=True)
         return Response(data=serializer.data, status=status.HTTP_200_OK)
     else:
         serializer = EventsSerializer(Events.objects.all(), many=True)
         return Response(data=serializer.data, status=status.HTTP_200_OK)
Esempio n. 2
0
    def get_events(self, request, pk=None):

        selfBaby = self.get_object()
        events = Event.objects.filter(baby=selfBaby.id)
        if (events.count() > 0):
            return (Response(EventsSerializer(events, many=True).data))
        else:
            return Response([])
    def post(request):
        request.data[
            '_id'] = request.user.username + "_" + request.data['id_event']
        serializer = RatingsSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        if serializer.save():
            ratings = RatingsSerializer(
                Ratings.objects.filter(id_event=serializer.data['id_event']),
                many=True)
            number_of_ratings = len(ratings.data)
            event = EventsSerializer(
                Events.objects.get(
                    _id=serializer.data['id_event'])).data.copy()
            if event['ratings'] is None:
                event['ratings'] = serializer.data["rate"]
            else:
                event['ratings'] = (event['ratings'] + serializer.data["rate"]
                                    ) / number_of_ratings
            eserializer = EventsSerializer(data=event)
            eserializer.is_valid(raise_exception=True)
            if eserializer.save():
                reservation = ReservationsSerializer(
                    Reservations.objects.get(
                        _id=request.data['id_event'] + "_" +
                        str(request.user.id))).data.copy()
                reservation['id_review'] = serializer.data["_id"]
                rserializer = ReservationsSerializer(data=reservation)
                rserializer.is_valid(raise_exception=True)
                rserializer.save()

        return Response(data=serializer.data, status=status.HTTP_201_CREATED)
    def get(request):
        print(request.user.id)
        serializer = ReservationsSerializer(
            Reservations.objects.filter(id_user=request.user.id), many=True)
        print(serializer.data)
        reservations = []
        for i in range(len(serializer.data)):
            reservations.append(serializer.data[i]['id_event'])

        print(reservations)

        serializer = EventsSerializer(Events.objects.filter(
            reduce(or_, [Q(_id=c) for c in reservations])),
                                      many=True)
        return Response(data=serializer.data, status=status.HTTP_200_OK)
    def put(self, request, *args, **kwargs):
        event_id = self.kwargs['id']
        try:
            event = Events.objects.get(_id=event_id)
        except Events.DoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND)

        serializer = EventsSerializer(event, data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()
        return Response(status=status.HTTP_200_OK)
    def put(self, request, *args, **kwargs):
        rating_id = self.kwargs['id']
        try:
            rating = Ratings.objects.get(_id=rating_id)
        except Events.DoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND)

        number_of_ratings = len(
            RatingsSerializer(Ratings.objects.filter(id_event=rating.id_event),
                              many=True).data)
        event = EventsSerializer(
            Events.objects.get(_id=rating.id_event)).data.copy()
        event['ratings'] -= rating.rate
        event['ratings'] = (event['ratings'] +
                            request.data["rate"]) / number_of_ratings
        eserializer = EventsSerializer(data=event)
        eserializer.is_valid(raise_exception=True)
        eserializer.save()
        serializer = RatingsSerializer(rating, data=request.data)
        serializer.is_valid(raise_exception=True)
        serializer.save()
        return Response(status=status.HTTP_200_OK)
Esempio n. 7
0
 def create(self, request):
     serializer = EventsSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    def get(self, request, *args, **kwargs):
        id_room = self.kwargs['id']
        events = EventsSerializer(Events.objects.filter(id_room=id_room),
                                  many=True)

        return Response(data=events.data, status=status.HTTP_200_OK)
def save_matrix(event_id, matrix):
    event = Events.objects.get(_id=event_id)
    data = {"seats": matrix_to_string(matrix)}
    serializer = EventsSerializer(event, data=data, partial=True)
    serializer.is_valid(raise_exception=True)
    serializer.save()
Esempio n. 10
0
class EventsSerializerTests(TestCase):
    serializer = EventsSerializer()

    def test_when_event_is_repeating_and_has_no_repetition_end_date_should_raise_error(
            self):
        event = {
            'title': 'Foo',
            'start_date': date(2016, 1, 1),
            'start_time': time(1, 0, 0),
            'end_date': date(2016, 1, 1),
            'end_time': time(2, 0, 0),
            'is_repeat': True,
            'repetition': None,
            'ends': date(2016, 2, 1)
        }

        with self.assertRaises(serializers.ValidationError):
            self.serializer.validate(event)

    def test_when_event_start_date_is_after_end_date_should_raise_error(self):
        event = {
            'title': 'Foo',
            'start_date': date(2016, 1, 2),
            'start_time': time(1, 0, 0),
            'end_date': date(2016, 1, 1),
            'end_time': time(2, 0, 0),
            'is_repeat': False,
            'repetition': None,
            'ends': None
        }

        with self.assertRaises(serializers.ValidationError):
            self.serializer.validate(event)

    def test_when_event_start_date_equals_end_date_and_start_time_is_after_end_time_should_raise_error(
            self):
        event = {
            'title': 'Foo',
            'start_date': date(2016, 1, 1),
            'start_time': time(3, 0, 0),
            'end_date': date(2016, 1, 1),
            'end_time': time(2, 0, 0),
            'is_repeat': False,
            'repetition': None,
            'ends': None
        }

        with self.assertRaises(serializers.ValidationError):
            self.serializer.validate(event)

    def test_when_event_repeats_and_ends_is_after_start_date_should_raise_error(
            self):
        event = {
            'title': 'Foo',
            'start_date': date(2016, 3, 1),
            'start_time': time(1, 0, 0),
            'end_date': date(2016, 3, 1),
            'end_time': time(2, 0, 0),
            'is_repeat': True,
            'repetition': 'Monthly',
            'ends': date(2016, 2, 1)
        }

        with self.assertRaises(serializers.ValidationError):
            self.serializer.validate(event)
Esempio n. 11
0
 def get(self, request, format=None):
     events = Event.objects.all()
     serializer = EventsSerializer(events)
     return Response(serializer.data)
 def get(self, request, *args, **kwargs):
     event_id = self.kwargs['id']
     serializer = EventsSerializer(Events.objects.get(_id=event_id))
     data = serializer.data.copy()
     data['matrix'] = string_to_matrix(serializer.data['seats'])
     return Response(data=data, status=status.HTTP_200_OK)
 def post(request):
     request.data['seats'] = matrix_to_string(create_matrix(request.data["id_room"]))
     serializer = EventsSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     serializer.save()
     return Response(data=serializer.data, status=status.HTTP_201_CREATED)