Skip to content

Commit 26d5da5

Browse files
authored
remove submit button from submission page if contest is archived (#428)
* remove submit button from submission page if contest is archived * fix for problems without contests * more elegant code
1 parent c0e91eb commit 26d5da5

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed

oioioi/contests/templates/contests/submission_header.html

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,13 @@
4949
{% endif %}
5050
{% block controls_buttons %}
5151
{% if contest %}
52-
<a role="button"
53-
class="btn btn-sm btn-outline-secondary"
54-
href= "{% url 'submit' contest_id=contest.id problem_instance_id=submission.submission.problem_instance.id %}">
55-
<i class="fa-regular fa-circle-up"></i>
56-
{% trans "Submit another" %}
52+
{% if not is_contest_archived %}
53+
<a role="button"
54+
class="btn btn-sm btn-outline-secondary"
55+
href= "{% url 'submit' contest_id=contest.id problem_instance_id=submission.submission.problem_instance.id %}">
56+
<i class="fa-regular fa-circle-up"></i>
57+
{% trans "Submit another" %}
58+
{% endif %}
5759
</a>
5860
{% else %}
5961
{% if submission.submission.problem_instance.problem.problemsite %}

oioioi/contests/tests/tests.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4166,6 +4166,21 @@ def test_dashboard_view(self):
41664166
self.assertContains(response, "This contest is archived.")
41674167
self.assertNotContains(response, "Submit")
41684168

4169+
def test_submissions_view(self):
4170+
self.assertTrue(self.client.login(username='test_user'))
4171+
url = reverse('my_submissions', kwargs={'contest_id': 'c'})
4172+
response = self.client.get(url)
4173+
self.assertEqual(response.status_code, 200)
4174+
self.assertNotContains(response, "Submit")
4175+
4176+
def test_submission_view(self):
4177+
contest = Contest.objects.get()
4178+
submission = Submission.objects.get(pk=1)
4179+
self.assertTrue(self.client.login(username='test_user'))
4180+
kwargs = {'contest_id': contest.id, 'submission_id': submission.id}
4181+
response = self.client.get(reverse('submission', kwargs=kwargs))
4182+
self.assertNotContains(response, "Submit")
4183+
41694184
def test_submission_list_visibility(self):
41704185
self.assertTrue(self.client.login(username='test_user'))
41714186
url = reverse('my_submissions', kwargs={'contest_id': 'c'})

oioioi/contests/utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,7 @@ def get_submission_message(request):
614614
def is_contest_archived(request):
615615
return (
616616
hasattr(request, 'contest')
617+
and (request.contest is not None)
617618
and request.contest.is_archived
618619
)
619620

oioioi/programs/controllers.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
is_contest_admin,
2424
is_contest_basicadmin,
2525
is_contest_observer,
26+
is_contest_archived,
2627
get_submission_message,
2728
)
2829
from oioioi.evalmgr.tasks import (
@@ -703,6 +704,7 @@ def render_submission(self, request, submission):
703704
submission
704705
),
705706
'can_admin': can_admin,
707+
'is_contest_archived': is_contest_archived(request),
706708
'message': get_submission_message(request),
707709
},
708710
)

0 commit comments

Comments
 (0)