Description:
fix bug for "stuck" and add authorization
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r464:310e993b7826 - - 1 file changed: 2 inserted, 1 deleted

@@ -1,15 +1,15
1 1 class ReportController < ApplicationController
2 2
3 - before_filter :admin_authorization, only: [:login_stat,:submission_stat]
3 + before_filter :admin_authorization, only: [:login_stat,:submission_stat, :stuck]
4 4 before_filter(only: [:problem_hof]) { |c|
5 5 return false unless authenticate
6 6
7 7 if GraderConfiguration["right.user_view_submission"]
8 8 return true;
9 9 end
10 10
11 11 admin_authorization
12 12 }
13 13
14 14 def login_stat
15 15 @logins = Array.new
@@ -187,24 +187,25
187 187 @summary[:attempt] = user.count
188 188 user.each_value { |v| @summary[:solve] += 1 if v == 1 }
189 189 end
190 190
191 191 def stuck #report struggling user,problem
192 192 # init
193 193 user,problem = nil
194 194 solve = true
195 195 tries = 0
196 196 @struggle = Array.new
197 197 record = {}
198 198 Submission.includes(:problem,:user).order(:problem_id,:user_id).find_each do |sub|
199 + next unless sub.problem and sub.user
199 200 if user != sub.user_id or problem != sub.problem_id
200 201 @struggle << { user: record[:user], problem: record[:problem], tries: tries } unless solve
201 202 record = {user: sub.user, problem: sub.problem}
202 203 user,problem = sub.user_id, sub.problem_id
203 204 solve = false
204 205 tries = 0
205 206 end
206 207 if sub.points >= sub.problem.full_score
207 208 solve = true
208 209 else
209 210 tries += 1
210 211 end
You need to be logged in to leave comments. Login now