2
2
from pprint import pprint
3
3
4
4
from django .core .exceptions import PermissionDenied
5
+ from django .db .models import Count
5
6
from django .http import Http404
6
7
from django .template .response import TemplateResponse
7
8
from django .urls import reverse
11
12
from oioioi .base .menu import menu_registry
12
13
from oioioi .base .permissions import enforce_condition
13
14
from oioioi .contests .menu import contest_admin_menu_registry
14
- from oioioi .contests .models import ProblemInstance , ContestPermission , contest_permissions , ContestAttachment
15
+ from oioioi .contests .models import ProblemInstance , ContestPermission , contest_permissions , ContestAttachment , \
16
+ Submission
15
17
from oioioi .contests .utils import (
16
18
can_enter_contest ,
17
19
contest_exists ,
@@ -169,14 +171,17 @@ def monitoring_view(request):
169
171
170
172
attachments = ContestAttachment .objects .filter (contest_id = request .contest .id ).order_by ('id' )
171
173
for attachment in attachments :
172
- print (attachment .pub_date , cur_time )
173
- pub_date_relative = str (attachment .pub_date - cur_time )[:- 7 ] if attachment .pub_date > cur_time else _ ("Published" )
174
+ pub_date_relative = None
175
+ if attachment .pub_date :
176
+ pub_date_relative = str (attachment .pub_date - cur_time )[:- 7 ] if attachment .pub_date > cur_time else _ ("Published" )
174
177
setattr (attachment , 'pub_date_relative' , pub_date_relative )
175
178
unanswered_questions = (Message .objects .filter (kind = 'QUESTION' , message = None , contest = request .contest ).count ())
176
179
oldest_unanswered_question = (Message .objects .filter (kind = 'QUESTION' , message = None , contest = request .contest )
177
180
.order_by ('pub_date' ).first ())
178
181
oldest_unanswered_question_date = oldest_unanswered_question .date if oldest_unanswered_question else None
179
182
183
+ submissions_info = Submission .objects .filter (problem_instance__contest = request .contest ).values ('kind' ).annotate (total = Count ('kind' )).order_by ()
184
+
180
185
return TemplateResponse (
181
186
request ,
182
187
'statistics/monitoring.html' ,
@@ -190,5 +195,6 @@ def monitoring_view(request):
190
195
'attachments' : attachments ,
191
196
'unanswered_questions' : unanswered_questions ,
192
197
'oldest_unanswered_question' : oldest_unanswered_question_date ,
198
+ 'submissions_info' : submissions_info
193
199
},
194
200
)
0 commit comments