This commit is contained in:
Ross
2021-04-28 12:14:22 +01:00
parent 142af1a567
commit 263b907e61
5 changed files with 60 additions and 16 deletions
+11
View File
@@ -0,0 +1,11 @@
# serializers.py
from rest_framework import serializers, permissions
from .models import Exam
class ExamSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Exam
fields = ('name', 'id', 'active', "publish_results")
permission_classes = [permissions.IsAuthenticated]
+19
View File
@@ -66,6 +66,11 @@ from django.template.defaulttags import register
from generic.mixins import SuperuserRequiredMixin
from rest_framework import viewsets
from .serializers import ExamSerializer
class AuthorOrCheckerRequiredMixin(object):
def get_object(self, *args, **kwargs):
obj = super().get_object(*args, **kwargs)
@@ -989,3 +994,17 @@ class ExamCreate(LoginRequiredMixin, CreateView):
class ExamUpdate(LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView):
model = Exam
form_class = ExamForm
class ExamViewSet(viewsets.ModelViewSet):
#queryset = Exam.objects.all().order_by('name')
serializer_class = ExamSerializer
def get_queryset(self):
"""
This view should return a list exams available to a user.
"""
user = self.request.user
if user.groups.filter(name="rapid_checker").exists():
return Exam.objects.all()
return Exam.objects.filter(author__id=user.id)