update announcement and problem list serializer

This commit is contained in:
yuetsh committed 2024-06-12 10:05:26 +08:00
1 parent 5a8fb8d81a
commit 8a47c6e0ef
4 files changed
+29 -14

No files matched your search

+7 -8
View File
@@ -116,6 +116,11 @@ class ProblemAdminSerializer(BaseProblemSerializer):
model = Problem
fields = "__all__"
class ProblemAdminListSerializer(BaseProblemSerializer):
class Meta:
model = Problem
fields = ["_id", "id", "title", "created_by", "visible", "create_time"]
class ProblemSerializer(BaseProblemSerializer):
template = serializers.SerializerMethodField("get_public_template")
@@ -127,16 +132,10 @@ class ProblemSerializer(BaseProblemSerializer):
class ProblemListSerializer(BaseProblemSerializer):
template = serializers.SerializerMethodField("get_public_template")
class Meta:
model = Problem
exclude = ("test_case_score", "test_case_id", "visible", "is_public",
"spj_code", "spj_version", "spj_compile_ok", "description",
"input_description", "output_description", "samples", "hint",
"source", "spj", "spj_language", "time_limit", "memory_limit",
"io_mode", "create_time", "languages", "last_update_time",
"total_score", "statistic_info", "share_submission")
fields = ["id", "_id", "title", "submission_number", "accepted_number",
"difficulty", "created_by", "tags"]
class ProblemSafeSerializer(BaseProblemSerializer):
+4 -4
View File
@@ -24,8 +24,8 @@ from utils.tasks import delete_files
from ..models import Problem, ProblemRuleType, ProblemTag
from ..serializers import (CreateContestProblemSerializer, CompileSPJSerializer,
CreateProblemSerializer, EditProblemSerializer, EditContestProblemSerializer,
ProblemAdminSerializer, TestCaseUploadForm, ContestProblemMakePublicSerializer,
AddContestProblemSerializer, ExportProblemSerializer,
ProblemAdminSerializer, ProblemAdminListSerializer, TestCaseUploadForm,
ContestProblemMakePublicSerializer, AddContestProblemSerializer, ExportProblemSerializer,
ExportProblemRequestSerializer, UploadProblemForm, ImportProblemSerializer,
FPSProblemSerializer)
from ..utils import TEMPLATE_BASE, build_problem_template
@@ -249,7 +249,7 @@ class ProblemAPI(ProblemBase):
problems = problems.filter(Q(title__icontains=keyword) | Q(_id__icontains=keyword))
if not user.can_mgmt_all_problem():
problems = problems.filter(created_by=user)
return self.success(self.paginate_data(request, problems, ProblemAdminSerializer))
return self.success(self.paginate_data(request, problems, ProblemAdminListSerializer))
@problem_permission_required
@validate_serializer(EditProblemSerializer)
@@ -370,7 +370,7 @@ class ContestProblemAPI(ProblemBase):
keyword = request.GET.get("keyword")
if keyword:
problems = problems.filter(title__contains=keyword)
return self.success(self.paginate_data(request, problems, ProblemAdminSerializer))
return self.success(self.paginate_data(request, problems, ProblemAdminListSerializer))
@validate_serializer(EditContestProblemSerializer)
def put(self, request):