views.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # coding=utf-8
  2. import json
  3. import traceback
  4. from django.db.models import Sum, F
  5. from rest_framework.decorators import action
  6. from rest_framework.serializers import ValidationError
  7. from rest_framework.views import APIView
  8. from django.db import transaction
  9. from django.db.models import Q
  10. from utils.custom_modelviewset import CustomModelViewSet
  11. from utils import response_ok, response_error
  12. from utils.permission import IsAdministrator, IsStaff
  13. from apps.examination.exam.serializers import *
  14. from apps.examination.exam.filters import *
  15. from apps.system.models import SysLog
  16. from apps.foundation.serializers import SubjectSerializer, ChapterSerializer, SubjectSimpleSerializer, \
  17. ChapterSimpleSerializer, Subject
  18. from apps.examination.exampaper.filters import ExamPaper, ExamPaperFilter
  19. from apps.examination.exampaper.serializers import StaffExamPaperSerializer
  20. class ExamPaperViewSet(CustomModelViewSet):
  21. permission_classes = [IsStaff, ]
  22. queryset = ExamPaper.objects.filter(delete=False)
  23. serializer_class = StaffExamPaperSerializer
  24. def filter_queryset(self, queryset):
  25. f = ExamPaperFilter(self.request.GET, queryset=queryset, request=self.request)
  26. return f.qs
  27. class ExamLogViewSet(CustomModelViewSet):
  28. permission_classes = [IsStaff, ]
  29. queryset = ExamLog.objects.filter(delete=False)
  30. serializer_class = StaffExamLogSerializer
  31. def filter_queryset(self, queryset):
  32. # queryset = queryset.filter(user=self.request.user)
  33. f = FormalExamLogFilter(self.request.GET, queryset=queryset)
  34. return f.qs
  35. class DictView(APIView):
  36. permission_classes = [IsStaff, ]
  37. def get(self, request):
  38. subjects = Subject.objects.filter(delete=False)
  39. serializers = SubjectSerializer(subjects, many=True)
  40. return response_ok(serializers.data)