Add contest field to manage submission page

This commit is contained in:
cuom1999 2023-11-28 20:04:02 -06:00
parent 038aa8674a
commit e1054077fa
6 changed files with 96 additions and 70 deletions

View file

@ -78,12 +78,12 @@ class ManageProblemSubmissionView(TitleMixin, ManageProblemSubmissionMixin, Deta
)
]
context["results"] = sorted(map(itemgetter(0), Submission.RESULT))
context["in_contest"] = False
context["current_contest"] = None
if (
self.request.in_contest_mode
and self.object in self.request.participation.contest.problems.all()
):
context["in_contest"] = True
context["current_contest"] = self.request.participation.contest
return context
@ -106,20 +106,12 @@ class BaseActionSubmissionsView(
try:
languages = list(map(int, self.request.POST.getlist("language")))
results = list(map(int, self.request.POST.getlist("result")))
contests = list(map(int, self.request.POST.getlist("contest")))
except ValueError:
return HttpResponseBadRequest()
contest = None
try:
in_contest = bool(self.request.POST.get("in_contest", False))
if in_contest:
contest = self.request.participation.contest
except (KeyError, ValueError):
return HttpResponseBadRequest()
return self.generate_response(
id_range, languages, self.request.POST.getlist("result"), contest
)
return self.generate_response(id_range, languages, results, contests)
def generate_response(self, id_range, languages, results, contest):
raise NotImplementedError()

View file

@ -85,10 +85,17 @@ class ProblemSelect2View(Select2View):
class ContestSelect2View(Select2View):
def get(self, request, *args, **kwargs):
self.problem_id = kwargs.get("problem_id", request.GET.get("problem_id", ""))
return super(ContestSelect2View, self).get(request, *args, **kwargs)
def get_queryset(self):
return Contest.get_visible_contests(self.request.user).filter(
q = Contest.get_visible_contests(self.request.user).filter(
Q(key__icontains=self.term) | Q(name__icontains=self.term)
)
if self.problem_id:
q = q.filter(problems=self.problem_id)
return q
class CommentSelect2View(Select2View):