22from django .core .paginator import Paginator
33from django .conf import settings
44from django .utils import timezone
5+ from django .http import HttpResponse
56from ..oauth .decorators import login_required , admin_required
67from .models import Contest
78from ..problems .models import Problem
1617@login_required
1718def contests_view (request ):
1819 contests = Contest .objects .filter (tjioi = settings .TJIOI_MODE ).order_by ("-start" )
20+ if not request .user .is_staff :
21+ contests = contests .filter (start__lte = timezone .now ())
1922 context = {"contests" : contests }
2023 return render (request , "contest/contests.html" , context )
2124
@@ -28,14 +31,11 @@ def contest_view(request, cid):
2831 if problems is None :
2932 problems = []
3033
31- now = timezone .now ()
32- contest_start = contest .start
3334 contest_end = contest .end
3435 time_message = contest_end
3536 time_type = "end"
36- if now < contest_start :
37- time_type = "start"
38- time_message = contest_start
37+ if timezone .now () < contest .start :
38+ return HttpResponse ("Contest has not started yet" , status = 403 )
3939
4040 ordered = []
4141 for problem in problems :
@@ -94,7 +94,8 @@ def contest_standings_view(request, cid):
9494 problems = Problem .objects .filter (contest_id = cid )
9595 contest = get_object_or_404 (Contest , id = cid )
9696
97- logger .error (standings )
97+ if timezone .now () < contest .start :
98+ return HttpResponse ("Contest has not started yet" , status = 403 )
9899
99100 context = {
100101 "title" : standings ["title" ],
@@ -111,6 +112,8 @@ def contest_standings_view(request, cid):
111112@login_required
112113def contest_status_view (request , cid , mine_only , page ):
113114 contest = get_object_or_404 (Contest , id = cid )
115+ if timezone .now () < contest .start :
116+ return HttpResponse ("Contest has not started yet" , status = 403 )
114117 subs = Submission .objects .filter (contest = contest )
115118 if not request .user .is_staff :
116119 subs = subs .filter (usr__is_staff = False )
0 commit comments