feat: update ai/views/oj.py query filters to treat AST_CHECK_FAILED as accepted
This commit is contained in:
@@ -126,7 +126,7 @@ def get_user_first_ac_submissions(
|
|||||||
# 用户自己的 AC 记录按时间范围过滤
|
# 用户自己的 AC 记录按时间范围过滤
|
||||||
user_first_ac = list(
|
user_first_ac = list(
|
||||||
Submission.objects.filter(
|
Submission.objects.filter(
|
||||||
result=JudgeStatus.ACCEPTED,
|
result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED],
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
create_time__gte=start,
|
create_time__gte=start,
|
||||||
create_time__lte=end,
|
create_time__lte=end,
|
||||||
@@ -144,7 +144,7 @@ def get_user_first_ac_submissions(
|
|||||||
|
|
||||||
# 排名基于全局数据(不限时间),后注册的学生与所有人公平竞争
|
# 排名基于全局数据(不限时间),后注册的学生与所有人公平竞争
|
||||||
rank_qs = Submission.objects.filter(
|
rank_qs = Submission.objects.filter(
|
||||||
result=JudgeStatus.ACCEPTED,
|
result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED],
|
||||||
problem_id__in=problem_ids,
|
problem_id__in=problem_ids,
|
||||||
)
|
)
|
||||||
if use_class_scope and class_user_ids:
|
if use_class_scope and class_user_ids:
|
||||||
@@ -250,7 +250,7 @@ class AIDetailDataAPI(APIView):
|
|||||||
by_problem_period = defaultdict(list)
|
by_problem_period = defaultdict(list)
|
||||||
if problem_ids:
|
if problem_ids:
|
||||||
period_qs = Submission.objects.filter(
|
period_qs = Submission.objects.filter(
|
||||||
result=JudgeStatus.ACCEPTED,
|
result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED],
|
||||||
problem_id__in=problem_ids,
|
problem_id__in=problem_ids,
|
||||||
create_time__gte=start,
|
create_time__gte=start,
|
||||||
create_time__lte=end,
|
create_time__lte=end,
|
||||||
@@ -487,7 +487,7 @@ class AIDurationDataAPI(APIView):
|
|||||||
period_data["problem_count"] = len(problem_ids)
|
period_data["problem_count"] = len(problem_ids)
|
||||||
by_problem_period = defaultdict(list)
|
by_problem_period = defaultdict(list)
|
||||||
period_qs = Submission.objects.filter(
|
period_qs = Submission.objects.filter(
|
||||||
result=JudgeStatus.ACCEPTED,
|
result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED],
|
||||||
problem_id__in=problem_ids,
|
problem_id__in=problem_ids,
|
||||||
create_time__gte=start,
|
create_time__gte=start,
|
||||||
create_time__lte=period_end,
|
create_time__lte=period_end,
|
||||||
@@ -570,9 +570,9 @@ class AILoginSummaryAPI(APIView):
|
|||||||
user_id=user.id, create_time__gte=start_time, create_time__lte=end_time
|
user_id=user.id, create_time__gte=start_time, create_time__lte=end_time
|
||||||
)
|
)
|
||||||
submission_count = submissions_qs.count()
|
submission_count = submissions_qs.count()
|
||||||
accepted_count = submissions_qs.filter(result=JudgeStatus.ACCEPTED).count()
|
accepted_count = submissions_qs.filter(result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED]).count()
|
||||||
solved_count = (
|
solved_count = (
|
||||||
submissions_qs.filter(result=JudgeStatus.ACCEPTED)
|
submissions_qs.filter(result__in=[JudgeStatus.ACCEPTED, JudgeStatus.AST_CHECK_FAILED])
|
||||||
.values("problem_id")
|
.values("problem_id")
|
||||||
.distinct()
|
.distinct()
|
||||||
.count()
|
.count()
|
||||||
|
|||||||
Reference in New Issue
Block a user