This commit is contained in:
2026-04-23 13:57:56 -06:00
parent 0c6de0babe
commit 028ea6e5f9
93 changed files with 321 additions and 1454 deletions

View File

@@ -7,28 +7,27 @@ import zipfile
from wsgiref.util import FileWrapper
from django.conf import settings
from django.db.models import Q
from django.db.models import Count, Q
from django.http import StreamingHttpResponse
from django.db.models import Count
from account.decorators import problem_permission_required, ensure_created_by, super_admin_required
from account.decorators import ensure_created_by, problem_permission_required, super_admin_required
from contest.models import Contest, ContestStatus
from submission.models import Submission
from utils.api import APIView, CSRFExemptAPIView, validate_serializer, APIError
from utils.shortcuts import rand_str, natural_sort_key
from utils.api import APIError, APIView, CSRFExemptAPIView, validate_serializer
from utils.openai import get_ai_client
from utils.shortcuts import natural_sort_key, rand_str
from ..models import Problem, ProblemRuleType, ProblemTag
from ..serializers import (
AddContestProblemSerializer,
ContestProblemMakePublicSerializer,
CreateContestProblemSerializer,
CreateProblemSerializer,
EditProblemSerializer,
EditContestProblemSerializer,
ProblemAdminSerializer,
EditProblemSerializer,
ProblemAdminListSerializer,
ProblemAdminSerializer,
TestCaseUploadForm,
ContestProblemMakePublicSerializer,
AddContestProblemSerializer,
)

View File

@@ -1,20 +1,23 @@
from datetime import datetime
import random
from django.db.models import Q, Count
from datetime import datetime
from django.core.cache import cache
from account.models import User
from submission.models import Submission, JudgeStatus
from utils.api import APIView
from django.db.models import Count, Q
from account.decorators import check_contest_permission
from account.models import User
from contest.models import ContestRuleType
from submission.models import JudgeStatus, Submission
from utils.api import APIView
from utils.constants import CacheKey
from ..models import ProblemTag, Problem
from ..models import Problem, ProblemTag
from ..serializers import (
ProblemListSerializer,
ProblemSafeSerializer,
ProblemSerializer,
TagSerializer,
ProblemSafeSerializer,
ProblemListSerializer,
)
from contest.models import ContestRuleType
class ProblemTagAPI(APIView):