From 298378725c9e30057fdd04fa6424c97f1913c75f Mon Sep 17 00:00:00 2001 From: Konrad Mohrfeldt <konrad.mohrfeldt@farbdev.org> Date: Thu, 17 Mar 2022 13:29:38 +0100 Subject: [PATCH] refactor: tidy up APIScheduleViewSet * TODOs are no longer part of the method description * normalized queryset handling * consistent formatting of method descriptions. --- program/views.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/program/views.py b/program/views.py index 14ef2306..2ef6198a 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: -- GitLab