From baed3b80f18db1de56ecba72c3216e9d4c1ddc69 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Thu, 4 Jun 2026 07:27:24 -0600 Subject: [PATCH] feat: add AIAnalysisAdminAPI for listing and reading reports --- ai/views/admin.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 ai/views/admin.py diff --git a/ai/views/admin.py b/ai/views/admin.py new file mode 100644 index 0000000..5d77c35 --- /dev/null +++ b/ai/views/admin.py @@ -0,0 +1,30 @@ +from account.decorators import teacher_admin_required +from account.models import User +from utils.api import APIView + +from ..models import AIAnalysis +from ..serializers import AIAnalysisDetailSerializer, AIAnalysisListSerializer + + +class AIAnalysisAdminAPI(APIView): + @teacher_admin_required + def get(self, request): + report_id = request.GET.get("id") + if report_id: + try: + report = AIAnalysis.objects.select_related("user").get(id=report_id) + except AIAnalysis.DoesNotExist: + return self.error("AIAnalysis not found") + return self.success(AIAnalysisDetailSerializer(report).data) + + qs = AIAnalysis.objects.select_related("user").order_by("-create_time") + + username = request.GET.get("username") + if username: + try: + user = User.objects.get(username=username) + except User.DoesNotExist: + return self.error("User not found") + qs = qs.filter(user=user) + + return self.paginate_data(request, qs, AIAnalysisListSerializer)