Ver código fonte

错误反馈

jiaweiqi 3 anos atrás
pai
commit
8a0d5f3757

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

@@ -10,5 +10,6 @@ urlpatterns = [
 
 
 router = SimpleRouter()
 router = SimpleRouter()
 router.register(r'exam_log', ExamLogViewSet)
 router.register(r'exam_log', ExamLogViewSet)
+router.register(r'feedback', ExamQuestionFeedbackViewSet)
 router.register(r'', ExamViewSet)
 router.register(r'', ExamViewSet)
 urlpatterns += router.urls
 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.models import ExamPaper, ExamPaperDetail, ExamQuestion
 from apps.examination.exampaper.filters import ExamPaperFilter
 from apps.examination.exampaper.filters import ExamPaperFilter
 from apps.examination.exampaper.serializers import StaffExamPaperSerializer
 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
 from apps.practise.errorbook.models import ErrorBook
 
 
 
 
@@ -314,3 +315,15 @@ class ExamLogViewSet(CustomModelViewSet):
             traceback.print_exc()
             traceback.print_exc()
             return response_error(str(e))
             return response_error(str(e))
         return response_ok()
         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
         model = ExamQuestionFeedback
         fields = "__all__"
         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):
 class ExamQuestionSimpleSerializer(serializers.ModelSerializer):
     judgment = serializers.SerializerMethodField()
     judgment = serializers.SerializerMethodField()

+ 1 - 0
apps/knowledge/serializers.py

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