Skip to content

Commit 9d9ef69

Browse files
authored
fix some bugs from the user groups PR (#1672)
1 parent efaab69 commit 9d9ef69

5 files changed

Lines changed: 16 additions & 19 deletions

File tree

cms/db/contest.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,6 @@ class Contest(Base):
206206
Unicode,
207207
nullable=True)
208208

209-
# Max contest time for each user in seconds.
210-
per_user_time: timedelta | None = Column(
211-
Interval,
212-
CheckConstraint("per_user_time >= '0 seconds'"),
213-
nullable=True)
214-
215209
# Maximum number of submissions or user_tests allowed for each user
216210
# during the whole contest or None to not enforce this limitation.
217211
max_submission_number: int | None = Column(

cms/server/contest/submission/check.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,10 +220,10 @@ def is_last_minutes(timestamp: datetime, participation: Participation):
220220
or participation.contest.min_submission_interval_grace_period is None:
221221
return False
222222

223-
if participation.contest.per_user_time is None:
224-
end_time = participation.contest.stop
223+
if participation.group.per_user_time is None:
224+
end_time = participation.group.stop
225225
else:
226-
end_time = participation.starting_time + participation.contest.per_user_time
226+
end_time = participation.starting_time + participation.group.per_user_time
227227

228228
end_time += participation.delay_time + participation.extra_time
229229
time_left = end_time - timestamp

cms/server/contest/templates/contest_list.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ <h3>{% trans %}Choose a contest{% endtrans %}</h3>
88
<ul class="nav nav-list">
99
{% for c_name, c_iter in contest_list|dictsort(by="key") %}
1010
<li>
11-
<a {% if c_iter.stop < now %} style="color: #adadad" {% endif %} href="{{ url(c_iter.name) }}">{{ c_iter.description }}</a>
11+
<a {% if c_iter.main_group.stop < now %} style="color: #adadad" {% endif %} href="{{ url(c_iter.name) }}">{{ c_iter.description }}</a>
1212
</li>
1313
{% endfor %}
1414
</ul>

cmscontrib/updaters/update_from_1.5.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,7 @@ ALTER TABLE contests DROP COLUMN analysis_enabled;
102102
ALTER TABLE contests DROP COLUMN analysis_start;
103103
ALTER TABLE contests DROP COLUMN analysis_stop;
104104

105+
-- https://github.com/cms-dev/cms/pull/1672
106+
ALTER TABLE contests DROP COLUMN per_user_time;
107+
105108
COMMIT;

cmstestsuite/unit_tests/server/contest/submission/check_test.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -430,19 +430,19 @@ def test_no_per_user_time_and_not_last_minutes(self):
430430
is_last_minutes(self.timestamp - timedelta(minutes=15), self.participation))
431431

432432
def test_per_user_time_and_last_minutes(self):
433-
self.participation.contest.per_user_time = timedelta(hours=5)
434-
self.participation.contest.start = self.timestamp - timedelta(hours=10)
435-
self.participation.contest.stop = self.timestamp
433+
self.participation.group.per_user_time = timedelta(hours=5)
434+
self.participation.group.start = self.timestamp - timedelta(hours=10)
435+
self.participation.group.stop = self.timestamp
436436
self.participation.starting_time = self.timestamp - timedelta(hours=5)
437437
self.contest.min_submission_interval_grace_period = timedelta(minutes=15)
438438

439439
self.assertTrue(
440440
is_last_minutes(self.timestamp - timedelta(minutes=15), self.participation))
441441

442442
def test_per_user_time_and_not_last_minutes(self):
443-
self.participation.contest.per_user_time = timedelta(hours=5)
444-
self.participation.contest.start = self.timestamp - timedelta(hours=10)
445-
self.participation.contest.stop = self.timestamp
443+
self.participation.group.per_user_time = timedelta(hours=5)
444+
self.participation.group.start = self.timestamp - timedelta(hours=10)
445+
self.participation.group.stop = self.timestamp
446446
self.participation.starting_time = self.timestamp - timedelta(hours=5)
447447
self.contest.min_submission_interval_grace_period = timedelta(minutes=10)
448448

@@ -474,9 +474,9 @@ def test_unrestricted_participation(self):
474474
self.assertFalse(is_last_minutes(self.timestamp, self.participation))
475475

476476
def setup_contest_with_no_user_time(self):
477-
self.participation.contest.per_user_time = None
478-
self.participation.contest.start = self.timestamp - timedelta(hours=5)
479-
self.participation.contest.stop = self.timestamp
477+
self.participation.group.per_user_time = None
478+
self.participation.group.start = self.timestamp - timedelta(hours=5)
479+
self.participation.group.stop = self.timestamp
480480

481481

482482
if __name__ == "__main__":

0 commit comments

Comments
 (0)