|
@@ -1,14 +1,15 @@
|
|
|
# coding=utf-8
|
|
|
|
|
|
from django.db import transaction
|
|
|
+from rest_framework.viewsets import ReadOnlyModelViewSet
|
|
|
from utils.permission import IsAdministrator
|
|
|
from utils import response_error, response_ok
|
|
|
from utils.custom_modelviewset import CustomModelViewSet
|
|
|
from apps.system.models import SysLog
|
|
|
|
|
|
-from apps.knowledge.models import KnowledgeBase
|
|
|
-from apps.knowledge.filters import KnowledgeBaseFilter
|
|
|
-from apps.knowledge.serializers import KnowledgeBaseSerializer
|
|
|
+from apps.knowledge.models import KnowledgeBase, KnowledgeBaseFeedback
|
|
|
+from apps.knowledge.filters import KnowledgeBaseFilter, KnowledgeBaseFeedbackFilter
|
|
|
+from apps.knowledge.serializers import KnowledgeBaseSerializer, KnowledgeBaseFeedbackSerializer
|
|
|
|
|
|
|
|
|
class KnowledgeBaseViewSet(CustomModelViewSet):
|
|
@@ -32,10 +33,25 @@ class KnowledgeBaseViewSet(CustomModelViewSet):
|
|
|
validated_data = serializer.validated_data
|
|
|
SysLog.objects.addnew(self.request.user, SysLog.UPDATE, u'修改知识[%s],id=%d' % (instance.name, instance.id), validated_data)
|
|
|
|
|
|
+ if validated_data['feedback']:
|
|
|
+ feedback = KnowledgeBaseFeedback.getById(validated_data['feedback'])
|
|
|
+ feedback.process(self.request.user)
|
|
|
+ feedback.save()
|
|
|
+ SysLog.objects.addnew(self.request.user, SysLog.UPDATE, u'处理知识错误反馈,id=%d' % (feedback.id))
|
|
|
+
|
|
|
def destroy(self, request, *args, **kwargs):
|
|
|
with transaction.atomic():
|
|
|
instance = self.get_object()
|
|
|
instance.delete = True
|
|
|
instance.save()
|
|
|
SysLog.objects.addnew(self.request.user, SysLog.DELETE, u'删除知识[%s],id=%d' % (instance.name, instance.id))
|
|
|
- return response_ok()
|
|
|
+ return response_ok()
|
|
|
+
|
|
|
+class KnowledgeBaseFeedbackViewSet(ReadOnlyModelViewSet):
|
|
|
+ permission_classes = [IsAdministrator, ]
|
|
|
+ queryset = KnowledgeBaseFeedback.objects.filter().order_by('status', '-id')
|
|
|
+ serializer_class = KnowledgeBaseFeedbackSerializer
|
|
|
+
|
|
|
+ def filter_queryset(self, queryset):
|
|
|
+ f = KnowledgeBaseFeedbackFilter(self.request.GET, queryset=queryset)
|
|
|
+ return f.qs
|