|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
import json
|
|
|
from django.db import transaction
|
|
|
+from rest_framework.viewsets import ReadOnlyModelViewSet
|
|
|
from rest_framework.decorators import action
|
|
|
from utils.permission import IsAdministrator
|
|
|
from utils import response_error, response_ok
|
|
@@ -10,9 +11,9 @@ from apps.system.models import SysLog
|
|
|
|
|
|
from apps.examination.exampaper.models import ExamPaper
|
|
|
from apps.examination.exampaper.serializers import ExamPaperSerializer
|
|
|
-from apps.examination.exam.models import Exam, ExamLog
|
|
|
-from apps.examination.exam.filters import ExamFilter
|
|
|
-from apps.examination.exam.serializers import ExamSerializer
|
|
|
+from apps.examination.exam.models import Exam, ExamLog, ExamAnswerLog
|
|
|
+from apps.examination.exam.filters import ExamFilter, FormalExamLogFilter
|
|
|
+from apps.examination.exam.serializers import ExamSerializer, FormalExamLogSerializer
|
|
|
|
|
|
class ExamViewSet(CustomModelViewSet):
|
|
|
permission_classes = [IsAdministrator, ]
|
|
@@ -100,4 +101,18 @@ class ExamViewSet(CustomModelViewSet):
|
|
|
'department_text': row['user__department__name'],
|
|
|
}
|
|
|
result.append(item)
|
|
|
- return response_ok(result)
|
|
|
+ return response_ok(result)
|
|
|
+
|
|
|
+class ExamLogViewSet(ReadOnlyModelViewSet):
|
|
|
+ permission_classes = [IsAdministrator, ]
|
|
|
+ queryset = ExamLog.objects.filter(type=ExamLog.FORMAL, delete=False)
|
|
|
+ serializer_class = FormalExamLogSerializer
|
|
|
+
|
|
|
+ def filter_queryset(self, queryset):
|
|
|
+ f = FormalExamLogFilter(self.request.GET, queryset=queryset)
|
|
|
+ return f.qs
|
|
|
+
|
|
|
+ @action(methods=['get'], detail=True)
|
|
|
+ def answer_log(self, request, pk):
|
|
|
+ rows = ExamAnswerLog.objects.filter(main_id=pk).order_by('detail__order').values_list('status', flat=True)
|
|
|
+ return response_ok(list(rows))
|