Add problem action filter for contest
This commit is contained in:
parent
c8d4a57270
commit
a07b147ea6
4 changed files with 60 additions and 36 deletions
|
@ -8,7 +8,7 @@ from judge.utils.celery import Progress
|
|||
__all__ = ("apply_submission_filter", "rejudge_problem_filter", "rescore_problem")
|
||||
|
||||
|
||||
def apply_submission_filter(queryset, id_range, languages, results):
|
||||
def apply_submission_filter(queryset, id_range, languages, results, contest):
|
||||
if id_range:
|
||||
start, end = id_range
|
||||
queryset = queryset.filter(id__gte=start, id__lte=end)
|
||||
|
@ -16,16 +16,18 @@ def apply_submission_filter(queryset, id_range, languages, results):
|
|||
queryset = queryset.filter(language_id__in=languages)
|
||||
if results:
|
||||
queryset = queryset.filter(result__in=results)
|
||||
if contest:
|
||||
queryset = queryset.filter(contest_object=contest)
|
||||
queryset = queryset.exclude(status__in=Submission.IN_PROGRESS_GRADING_STATUS)
|
||||
return queryset
|
||||
|
||||
|
||||
@shared_task(bind=True)
|
||||
def rejudge_problem_filter(
|
||||
self, problem_id, id_range=None, languages=None, results=None
|
||||
self, problem_id, id_range=None, languages=None, results=None, contest=None
|
||||
):
|
||||
queryset = Submission.objects.filter(problem_id=problem_id)
|
||||
queryset = apply_submission_filter(queryset, id_range, languages, results)
|
||||
queryset = apply_submission_filter(queryset, id_range, languages, contest)
|
||||
|
||||
rejudged = 0
|
||||
with Progress(self, queryset.count()) as p:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue