Skip to content
Snippets Groups Projects
Commit b7a129c8 authored by robinwilliam.hundt's avatar robinwilliam.hundt
Browse files

Added user_pk to StudentInfoSerializer / new /user/<pk>/change_active/ route

parent 75a9f1bb
No related branches found
No related tags found
1 merge request!108Student and user deactivate
...@@ -26,6 +26,7 @@ class StudentInfoSerializer(DynamicFieldsModelSerializer): ...@@ -26,6 +26,7 @@ class StudentInfoSerializer(DynamicFieldsModelSerializer):
class StudentInfoSerializerForListView(DynamicFieldsModelSerializer): class StudentInfoSerializerForListView(DynamicFieldsModelSerializer):
name = serializers.ReadOnlyField(source='user.fullname') name = serializers.ReadOnlyField(source='user.fullname')
user = serializers.ReadOnlyField(source='user.username') user = serializers.ReadOnlyField(source='user.username')
user_pk = serializers.ReadOnlyField(source='user.pk')
exam = serializers.ReadOnlyField(source='exam.module_reference') exam = serializers.ReadOnlyField(source='exam.module_reference')
submissions = SubmissionNoTextFieldsSerializer(many=True) submissions = SubmissionNoTextFieldsSerializer(many=True)
is_active = serializers.BooleanField(source='user.is_active') is_active = serializers.BooleanField(source='user.is_active')
...@@ -35,6 +36,7 @@ class StudentInfoSerializerForListView(DynamicFieldsModelSerializer): ...@@ -35,6 +36,7 @@ class StudentInfoSerializerForListView(DynamicFieldsModelSerializer):
fields = ('pk', fields = ('pk',
'name', 'name',
'user', 'user',
'user_pk',
'exam', 'exam',
'submissions', 'submissions',
'matrikel_no', 'matrikel_no',
......
...@@ -211,3 +211,18 @@ class UserAccountViewSet(viewsets.ReadOnlyModelViewSet): ...@@ -211,3 +211,18 @@ class UserAccountViewSet(viewsets.ReadOnlyModelViewSet):
def me(self, request): def me(self, request):
serializer = self.get_serializer(request.user) serializer = self.get_serializer(request.user)
return Response(serializer.data, status=status.HTTP_200_OK) return Response(serializer.data, status=status.HTTP_200_OK)
@detail_route(methods=['patch'])
def change_active(self, request, *args, **kwargs):
active = request.data.get('is_active')
req_user = request.user
user = self.get_object()
if active is None:
error_msg = "You need to provide an 'active' field"
return Response({'Error': error_msg}, status.HTTP_400_BAD_REQUEST)
if (req_user.is_student() or req_user.is_tutor()) and req_user != user:
return Response(status.HTTP_403_FORBIDDEN)
user.is_active = active
user.save()
return Response(status.HTTP_200_OK)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment