From 58e53ab8a9e59f146f8492e09af6a3fedfea829a Mon Sep 17 00:00:00 2001 From: Bodor Mate <bmate711@gmail.com> Date: Thu, 24 May 2018 17:42:45 +0200 Subject: [PATCH] Solution create and view --- src/homework/serializers.py | 5 ++++- src/homework/views.py | 14 +++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/homework/serializers.py b/src/homework/serializers.py index 15fb166..f7d7c81 100755 --- a/src/homework/serializers.py +++ b/src/homework/serializers.py @@ -32,5 +32,8 @@ class SolutionSerializer(serializers.ModelSerializer): def validate(self, data): if timezone.now() > data['task'].deadline: raise serializers.ValidationError('You late.') - data['accepted'] = False return data + + def create(self, validated_data): + validated_data['accepted'] = False + return self.Meta.model.objects.create(**validated_data) diff --git a/src/homework/views.py b/src/homework/views.py index 253bb39..41f1638 100755 --- a/src/homework/views.py +++ b/src/homework/views.py @@ -1,6 +1,7 @@ from rest_framework import viewsets from common import permissions +from rest_framework.permissions import IsAuthenticated from . import serializers from . import models @@ -13,7 +14,14 @@ class TasksViewSet(viewsets.ModelViewSet): class SolutionsViewSet(viewsets.ModelViewSet): serializer_class = serializers.SolutionSerializer - queryset = models.Solution.objects.all() - permission_classes = (permissions.IsStaffOrReadOnlyForAuthenticated, ) + permission_classes = (IsAuthenticated, ) - # view + def get_queryset(self): + user = self.request.user + queryset = models.Solution.objects.filter(created_by=user) + if user.has_perm(permissions.IsStaffUser): + queryset = models.Solution.objects.all() + user_id = self.request.query_params.get('userID', None) + if user_id is not None: + queryset = queryset.filter(created_by=user_id) + return queryset -- GitLab