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

@@ -3,6 +3,7 @@ WebSocket consumers for submission updates
"""
import json
import logging
from channels.generic.websocket import AsyncWebsocketConsumer
logger = logging.getLogger(__name__)

View File

@@ -1,10 +1,9 @@
from django.db import models
from contest.models import Contest
from problem.models import Problem
from utils.constants import ContestStatus
from utils.models import JSONField
from problem.models import Problem
from contest.models import Contest
from utils.shortcuts import rand_str

View File

@@ -2,10 +2,11 @@ from django.db import models
from django.db.models import F
from django.utils import timezone
from .models import Submission
from problemset.models import ProblemSetProgress
from utils.api import serializers
from utils.serializers import LanguageNameChoiceField
from problemset.models import ProblemSetProgress
from .models import Submission
def bulk_fetch_problemset_progress(user, problem_ids):

View File

@@ -1,10 +1,10 @@
from django.urls import path
from ..views.oj import (
SubmissionAPI,
SubmissionListAPI,
ContestSubmissionListAPI,
SubmissionAPI,
SubmissionExistsAPI,
SubmissionListAPI,
SubmissionsTodayCount,
)

View File

@@ -1,12 +1,13 @@
from account.decorators import super_admin_required
from judge.tasks import judge_task
from utils.api import APIView
from ..models import Submission, JudgeStatus
from account.models import User, AdminType
from problem.models import Problem
from django.db.models import Count, Q
from account.decorators import super_admin_required
from account.models import AdminType, User
from judge.tasks import judge_task
from problem.models import Problem
from utils.api import APIView
from ..models import JudgeStatus, Submission
def get_real_name(username, class_name):
if class_name and username.startswith("ks"):

View File

@@ -1,8 +1,8 @@
from datetime import datetime
import ipaddress
from datetime import datetime
from account.decorators import login_required, check_contest_permission
from contest.models import ContestStatus, ContestRuleType
from account.decorators import check_contest_permission, login_required
from contest.models import ContestRuleType, ContestStatus
from judge.tasks import judge_task
from options.options import SysOptions
@@ -12,13 +12,16 @@ from utils.api import APIView, validate_serializer
from utils.cache import cache
from utils.captcha import Captcha
from utils.throttling import TokenBucket
from ..models import Submission
from ..serializers import (
CreateSubmissionSerializer,
SubmissionModelSerializer,
ShareSubmissionSerializer,
SubmissionListSerializer,
SubmissionModelSerializer,
SubmissionSafeModelSerializer,
bulk_fetch_problemset_progress,
)
from ..serializers import SubmissionSafeModelSerializer, SubmissionListSerializer, bulk_fetch_problemset_progress
class SubmissionAPI(APIView):