diff --git a/app/controllers/report_controller.rb b/app/controllers/report_controller.rb --- a/app/controllers/report_controller.rb +++ b/app/controllers/report_controller.rb @@ -12,23 +12,31 @@ admin_authorization } - def show_max_score + def max_score end - def get_max_score - #process list of problems + def show_max_score + #process parameters + #problems + @problems = [] + params[:problem_id].each do |id| + next unless id.strip != "" + @problems << Problem.find(id.to_i) + end - #process submission range - if params[:commit] == 'download csv' - @problems = Problem.all - else - @problems = Problem.find_available_problems - end - @users = User.find(:all, :include => [:contests, :contest_stat]) + #users + @users = if params[:user] == "all" then + User.find(:all, :include => [:contests, :contest_stat]) + else + User.includes(:contests).includes(:contest_stat).where(enabled: true) + end + + #set up range from param + since_id = params.fetch(:min_id, 0).to_i + until_id = params.fetch(:max_id, 0).to_i + + #get data @scorearray = Array.new - #set up range from param - since_id = params.fetch(:since_id, 0).to_i - until_id = params.fetch(:until_id, 0).to_i @users.each do |u| ustat = Array.new ustat[0] = u @@ -46,7 +54,8 @@ csv = gen_csv_from_scorearray(@scorearray,@problems) send_data csv, filename: 'max_score.csv' else - render template: 'user_admin/user_stat' + #render template: 'user_admin/user_stat' + render 'max_score' end end