diff --git a/program/views.py b/program/views.py index 14ef2306492819ca205f5d1c7d48cde6c8f84de5..2ef6198ae9af88c1aa32891d3b607a265d835ae3 100644 --- a/program/views.py +++ b/program/views.py @@ -365,25 +365,24 @@ class APIShowViewSet(viewsets.ModelViewSet): class APIScheduleViewSet(viewsets.ModelViewSet): """ - /schedules/ returns all schedules (GET) - /schedules/{pk} returns the given schedule (GET) - /shows/{show_pk}/schedules returns schedules of the show (GET, POST) - /shows/{show_pk}/schedules/{pk} returns schedules by its ID (GET, PUT, DELETE) + Returns a list of schedules. - Only superusers may create and update schedules + Only superusers may create and update schedules. """ - queryset = Schedule.objects.none() + queryset = Schedule.objects.all() serializer_class = ScheduleSerializer permission_classes = [permissions.DjangoModelPermissionsOrAnonReadOnly] def get_queryset(self): - show_pk = get_values(self.kwargs, "show_pk") + queryset = super().get_queryset() + # subroute filters + show_pk = get_values(self.kwargs, "show_pk") if show_pk: - return Schedule.objects.filter(show=show_pk) + queryset = queryset.filter(show=show_pk) - return Schedule.objects.all() + return queryset def retrieve(self, request, *args, **kwargs): pk, show_pk = get_values(self.kwargs, "pk", "show_pk") @@ -402,8 +401,7 @@ class APIScheduleViewSet(viewsets.ModelViewSet): """ Create a schedule, generate timeslots, test for collisions and resolve them including notes - Only superusers may add schedules - TODO: Perhaps directly insert into database if no conflicts found + Only superusers may add schedules. """ if not request.user.is_superuser: @@ -417,6 +415,7 @@ class APIScheduleViewSet(viewsets.ModelViewSet): return Response(status=status.HTTP_400_BAD_REQUEST) # First create submit -> return projected timeslots and collisions + # TODO: Perhaps directly insert into database if no conflicts found if "solutions" not in request.data: return Response( Schedule.make_conflicts(request.data["schedule"], pk, show_pk), @@ -435,9 +434,10 @@ class APIScheduleViewSet(viewsets.ModelViewSet): def update(self, request, *args, **kwargs): """ - Update a schedule, generate timeslots, test for collisions and resolve them including notes + Update a schedule, generate timeslots, test for collisions and resolve + them including notes. - Only superusers may update schedules + Only superusers may update schedules. """ if not request.user.is_superuser: @@ -488,8 +488,9 @@ class APIScheduleViewSet(viewsets.ModelViewSet): def destroy(self, request, *args, **kwargs): """ - Delete a schedule - Only superusers may delete schedules + Delete a schedule. + + Only superusers may delete schedules. """ if not request.user.is_superuser: