jiaweiqi il y a 3 ans
Parent
commit
8a0d5f3757

+ 1 - 0
apps/api/staff/exam/urls.py

@@ -10,5 +10,6 @@ urlpatterns = [
 
 router = SimpleRouter()
 router.register(r'exam_log', ExamLogViewSet)
+router.register(r'feedback', ExamQuestionFeedbackViewSet)
 router.register(r'', ExamViewSet)
 urlpatterns += router.urls

+ 14 - 1
apps/api/staff/exam/views.py

@@ -19,7 +19,8 @@ from apps.examination.exam.models import ExamAnswerLog, ExamAnswerOptionLog, Exa
 from apps.examination.exampaper.models import ExamPaper, ExamPaperDetail, ExamQuestion
 from apps.examination.exampaper.filters import ExamPaperFilter
 from apps.examination.exampaper.serializers import StaffExamPaperSerializer
-from apps.examination.examquestion.models import ExamQuestionOption, ExamQuestionFill
+from apps.examination.examquestion.models import ExamQuestionOption, ExamQuestionFill, ExamQuestionFeedback
+from apps.examination.examquestion.serializers import ExamQuestionFeedbackSerializer
 from apps.practise.errorbook.models import ErrorBook
 
 
@@ -314,3 +315,15 @@ class ExamLogViewSet(CustomModelViewSet):
             traceback.print_exc()
             return response_error(str(e))
         return response_ok()
+
+
+class ExamQuestionFeedbackViewSet(CustomModelViewSet):
+    permission_classes = [IsStaff, ]
+    queryset = ExamQuestionFeedback.objects.filter()
+    serializer_class = ExamQuestionFeedbackSerializer
+
+    def perform_create(self, serializer):
+        super(ExamQuestionFeedbackViewSet, self).perform_create(serializer)
+        instance = serializer.instance
+        validated_data = serializer.validated_data
+        SysLog.objects.addnew(self.request.user, SysLog.INSERT, u'添加试题错误反馈,id=%d' % instance.id, validated_data)

+ 14 - 0
apps/api/staff/knowledge/urls.py

@@ -0,0 +1,14 @@
+# coding=utf-8
+from django.conf.urls import url, include
+from rest_framework.routers import SimpleRouter
+
+from .views import *
+
+urlpatterns = [
+
+]
+
+router = SimpleRouter()
+router.register(r'feedback', KnowledgeBaseFeedbackViewSet)
+router.register(r'', KnowledgeViewSet)
+urlpatterns += router.urls

+ 33 - 0
apps/api/staff/knowledge/views.py

@@ -0,0 +1,33 @@
+# coding=utf-8
+
+from rest_framework.viewsets import ReadOnlyModelViewSet
+from rest_framework.views import APIView
+from utils import response_ok, response_error
+from apps.system.models import SysLog
+from utils.permission import IsAdministrator, IsStaff
+from utils.custom_modelviewset import CustomModelViewSet
+from apps.knowledge.models import KnowledgeBase, KnowledgeBaseFeedback
+from apps.knowledge.filters import KnowledgeBaseFilter
+from apps.knowledge.serializers import KnowledgeBaseSerializer, KnowledgeBaseFeedbackSerializer
+
+
+class KnowledgeViewSet(ReadOnlyModelViewSet):
+    permission_classes = [IsStaff, ]
+    queryset = KnowledgeBase.objects.filter(delete=False)
+    serializer_class = KnowledgeBaseSerializer
+
+    def filter_queryset(self, queryset):
+        f = KnowledgeBaseFilter(self.request.GET, queryset=queryset)
+        return f.qs
+
+
+class KnowledgeBaseFeedbackViewSet(CustomModelViewSet):
+    permission_classes = [IsStaff, ]
+    queryset = KnowledgeBaseFeedback.objects.filter()
+    serializer_class = KnowledgeBaseFeedbackSerializer
+
+    def perform_create(self, serializer):
+        super(KnowledgeBaseFeedbackViewSet, self).perform_create(serializer)
+        instance = serializer.instance
+        validated_data = serializer.validated_data
+        SysLog.objects.addnew(self.request.user, SysLog.INSERT, u'添加知识错误反馈,id=%d' % instance.id, validated_data)

+ 5 - 0
apps/examination/examquestion/serializers.py

@@ -120,6 +120,11 @@ class ExamQuestionFeedbackSerializer(serializers.ModelSerializer):
         model = ExamQuestionFeedback
         fields = "__all__"
 
+    def create(self, validated_data):
+        validated_data['create_user'] = self.context['request'].user
+        instance = super(ExamQuestionFeedbackSerializer, self).create(validated_data)
+        return instance
+
 
 class ExamQuestionSimpleSerializer(serializers.ModelSerializer):
     judgment = serializers.SerializerMethodField()

+ 1 - 0
apps/knowledge/serializers.py

@@ -38,5 +38,6 @@ class KnowledgeBaseFeedbackSerializer(serializers.ModelSerializer):
         fields = "__all__"
 
     def create(self, validated_data):
+        validated_data['create_user'] = self.context['request'].user
         instance = super(KnowledgeBaseFeedbackSerializer, self).create(validated_data)
         return instance