Description:
only grades users in the contest
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r94:1ba4bf8cd712 - - 1 file changed: 9 inserted, 6 deleted

@@ -105,20 +105,20
105 if ARGV.length >=1
105 if ARGV.length >=1
106 options[:mode] = ARGV.shift
106 options[:mode] = ARGV.shift
107 end
107 end
108 end
108 end
109
109
110 options[:dry_run] = (ARGV.delete('--dry') != nil)
110 options[:dry_run] = (ARGV.delete('--dry') != nil)
111 - if options[:dry_run] and (not options[:mode] == 'prob')
111 + if options[:dry_run] and (not ['prob','contest'].include? options[:mode])
112 - puts "Dry run currently works only for 'prob' mode."
112 + puts "Dry run currently works only for 'prob' or 'contest' modes."
113 exit(0)
113 exit(0)
114 end
114 end
115
115
116 options[:report] = (ARGV.delete('--report') != nil)
116 options[:report] = (ARGV.delete('--report') != nil)
117 if options[:report] and (not ['prob','contest'].include? options[:mode])
117 if options[:report] and (not ['prob','contest'].include? options[:mode])
118 - puts "Report currently works only for 'prob' mode."
118 + puts "Report currently works only for 'prob' or 'contest' modes."
119 exit(0)
119 exit(0)
120 end
120 end
121
121
122 return options
122 return options
123 end
123 end
124
124
@@ -141,20 +141,20
141
141
142 def print_report_by_user
142 def print_report_by_user
143 puts "---------------------"
143 puts "---------------------"
144 puts " REPORT"
144 puts " REPORT"
145 puts "---------------------"
145 puts "---------------------"
146
146
147 - print "login"
147 + print "login,email"
148 @problems.each_value do |problem|
148 @problems.each_value do |problem|
149 print ",#{problem.name}"
149 print ",#{problem.name}"
150 end
150 end
151 print "\n"
151 print "\n"
152
152
153 @users.each_value do |user|
153 @users.each_value do |user|
154 - print "#{user.login}"
154 + print "#{user.login},#{user.email}"
155 @problems.each_value do |problem|
155 @problems.each_value do |problem|
156 if @results.has_key? [user.id, problem.id]
156 if @results.has_key? [user.id, problem.id]
157 print ",#{@results[[user.id,problem.id]][:points]}"
157 print ",#{@results[[user.id,problem.id]][:points]}"
158 else
158 else
159 print ","
159 print ","
160 end
160 end
@@ -302,13 +302,16
302
302
303 grader_proc.report_active if grader_proc!=nil
303 grader_proc.report_active if grader_proc!=nil
304
304
305 contest.problems.each do |problem|
305 contest.problems.each do |problem|
306 puts "Grading: #{problem.name}"
306 puts "Grading: #{problem.name}"
307 runner.grade_problem(problem,
307 runner.grade_problem(problem,
308 - :user_conditions => lambda {|u| u.contest_finished?})
308 + :user_conditions => lambda do |u|
309 + u.contest_finished? and
310 + u.contest_ids.include?(contest.id)
311 + end)
309 end
312 end
310
313
311 if options[:report]
314 if options[:report]
312 result_collector.print_report_by_user
315 result_collector.print_report_by_user
313 end
316 end
314
317
You need to be logged in to leave comments. Login now