Skip to content

Commit 88845ae

Browse files
committed
Delete contest in form before adding
1 parent a230441 commit 88845ae

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

judge/models/contest.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
MOSS_LANG_PYTHON,
2020
MOSS_LANG_PASCAL,
2121
)
22-
from datetime import timedelta
22+
from datetime import timedelta, datetime
2323

2424
from judge import contest_format
2525
from judge.models.problem import Problem
@@ -371,6 +371,13 @@ def clean(self):
371371
)
372372

373373
def save(self, *args, **kwargs):
374+
earliest_start_time = datetime(2020, 1, 1).replace(tzinfo=timezone.utc)
375+
if self.start_time < earliest_start_time:
376+
self.start_time = earliest_start_time
377+
378+
if self.end_time < self.start_time:
379+
self.end_time = self.start_time + timedelta(hours=1)
380+
374381
one_year_later = self.start_time + timedelta(days=365)
375382
if self.end_time > one_year_later:
376383
self.end_time = one_year_later

judge/views/organization.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -991,12 +991,15 @@ def post(self, request, *args, **kwargs):
991991
return res
992992
problem_formset = self.get_problem_formset(True)
993993
if problem_formset.is_valid():
994+
for problem_form in problem_formset:
995+
if problem_form.cleaned_data.get("DELETE") and problem_form.instance.pk:
996+
problem_form.instance.delete()
997+
994998
for problem_form in problem_formset.save(commit=False):
995999
if problem_form:
9961000
problem_form.contest = self.contest
9971001
problem_form.save()
998-
for problem_form in problem_formset.deleted_objects:
999-
problem_form.delete()
1002+
10001003
super().post(request, *args, **kwargs)
10011004
return HttpResponseRedirect(
10021005
reverse(

0 commit comments

Comments
 (0)