From 0ec716c459d9f004ccf4642fd2656537006b7af2 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Sun, 7 Aug 2022 18:26:31 -0400 Subject: [PATCH] Update views to add {created,update}_by to Host, Show, Note serializers --- program/views.py | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/program/views.py b/program/views.py index 78be1f36..0336d507 100644 --- a/program/views.py +++ b/program/views.py @@ -293,7 +293,9 @@ class APIShowViewSet(DisabledObjectPermissionCheckMixin, viewsets.ModelViewSet): if not request.user.is_superuser: return Response(status=status.HTTP_401_UNAUTHORIZED) - serializer = ShowSerializer(data=request.data) + serializer = ShowSerializer( + data=request.data, context={"created_by": request.user.username} + ) if serializer.is_valid(): serializer.save() @@ -315,7 +317,7 @@ class APIShowViewSet(DisabledObjectPermissionCheckMixin, viewsets.ModelViewSet): show = self.get_object() serializer = ShowSerializer( - show, data=request.data, context={"user": request.user} + show, data=request.data, context={"updated_by": request.user.username} ) if serializer.is_valid(): @@ -667,7 +669,7 @@ class APINoteViewSet( serializer = NoteSerializer( data={"show": show_pk, "timeslot": timeslot_pk} | request.data, - context={"user_id": request.user.id}, + context={"created_by": request.user.username}, ) if serializer.is_valid(): @@ -695,7 +697,9 @@ class APINoteViewSet( return Response(status=status.HTTP_401_UNAUTHORIZED) note = self.get_object() - serializer = NoteSerializer(note, data=request.data) + serializer = NoteSerializer( + note, data=request.data, context={"updated_by": request.user.username} + ) if serializer.is_valid(): hosts = Host.objects.filter( @@ -825,3 +829,23 @@ class APIHostViewSet(ActiveFilterMixin, viewsets.ModelViewSet): queryset = Host.objects.all() serializer_class = HostSerializer pagination_class = LimitOffsetPagination + + def create(self, request, *args, **kwargs): + serializer = HostSerializer( + data=request.data, context={"created_by": request.user.username} + ) + if serializer.is_valid(): + serializer.save() + return Response(serializer.data, status=status.HTTP_201_CREATED) + else: + Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + + def update(self, request, *args, **kwargs): + serializer = HostSerializer( + data=request.data, context={"updated_by": request.user.username} + ) + if serializer.is_valid(): + serializer.save() + return Response(serializer.data, status=status.HTTP_201_CREATED) + else: + Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) -- GitLab