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): 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)
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 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)
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 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()
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)
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)