# coding=utf-8 import json import traceback from django.db.models import Sum, F from rest_framework.decorators import action from rest_framework.serializers import ValidationError from rest_framework.views import APIView from django.db import transaction from django.db.models import Q from utils.custom_modelviewset import CustomModelViewSet from utils import response_ok, response_error from utils.permission import IsAdministrator, IsStaff from apps.examination.exam.serializers import * from apps.examination.exam.filters import * from apps.system.models import SysLog from apps.foundation.serializers import SubjectSerializer, ChapterSerializer, SubjectSimpleSerializer, \ ChapterSimpleSerializer, Subject from apps.examination.exampaper.filters import ExamPaper, ExamPaperFilter from apps.examination.exampaper.serializers import StaffExamPaperSerializer class ExamPaperViewSet(CustomModelViewSet): permission_classes = [IsStaff, ] queryset = ExamPaper.objects.filter(delete=False) serializer_class = StaffExamPaperSerializer def filter_queryset(self, queryset): f = ExamPaperFilter(self.request.GET, queryset=queryset, request=self.request) return f.qs class ExamLogViewSet(CustomModelViewSet): permission_classes = [IsStaff, ] queryset = ExamLog.objects.filter(delete=False) serializer_class = StaffExamLogSerializer def filter_queryset(self, queryset): # queryset = queryset.filter(user=self.request.user) f = FormalExamLogFilter(self.request.GET, queryset=queryset) return f.qs class DictView(APIView): permission_classes = [IsStaff, ] def get(self, request): subjects = Subject.objects.filter(delete=False) serializers = SubjectSerializer(subjects, many=True) return response_ok(serializers.data)