Description:
merge
Commit status:
[Not Reviewed]
References:
merge algo
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r837:b9faf3362123 - - 7 files changed: 24 inserted, 11 deleted

@@ -70,13 +70,13
70 70 @submission.language = language
71 71 end
72 72
73 73 @submission.submitted_at = Time.new.gmtime
74 74 @submission.ip_address = request.remote_ip
75 75
76 - if GraderConfiguration.time_limit_mode? and user.contest_finished?
76 + if @current_user.admin? == false && GraderConfiguration.time_limit_mode? && @current_user.contest_finished?
77 77 @submission.errors.add(:base,"The contest is over.")
78 78 prepare_list_information
79 79 render :action => 'list' and return
80 80 end
81 81
82 82 if @submission.valid?(@current_user)
@@ -16,13 +16,13
16 16
17 17 def max_score
18 18 end
19 19
20 20 def current_score
21 21 @problems = Problem.available_problems
22 - if params[:group_id]
22 + if params[:group_id] && params[:users] == 'group'
23 23 @group = Group.find(params[:group_id])
24 24 @users = @group.users.where(enabled: true)
25 25 else
26 26 @users = User.includes(:contests).includes(:contest_stat).where(enabled: true)
27 27 end
28 28 @scorearray = calculate_max_score(@problems, @users,0,0,true)
@@ -47,16 +47,18
47 47 pid = Problem.find_by_id(id.to_i)
48 48 @problems << pid if pid
49 49 end
50 50 end
51 51
52 52 #users
53 - @users = if params[:users] == "all" then
53 + @users = if params[:users] == "group" then
54 + Group.find(params[:group_id]).users.all
55 + elsif params[:users] == 'enabled'
56 + User.includes(:contests).includes(:contest_stat).where(enabled: true)
57 + else
54 58 User.includes(:contests).includes(:contest_stat)
55 - else
56 - User.includes(:contests).includes(:contest_stat).where(enabled: true)
57 59 end
58 60
59 61 #set up range from param
60 62 @since_id = params.fetch(:from_id, 0).to_i
61 63 @until_id = params.fetch(:to_id, 0).to_i
62 64 @since_id = nil if @since_id == 0
@@ -92,13 +92,13
92 92
93 93 protected
94 94
95 95 def submission_authorization
96 96 #admin always has privileged
97 97 return true if @current_user.admin?
98 - return true if @current_user.has_role?('TA') && (['show','download'].include? action_name)
98 + return true if @current_user.has_role?('ta') && (['show','download'].include? action_name)
99 99
100 100 sub = Submission.find(params[:id])
101 101 if @current_user.available_problems.include? sub.problem
102 102 return true if GraderConfiguration["right.user_view_submission"] or sub.user == @current_user
103 103 end
104 104
@@ -1,11 +1,15
1 1 .container-fluid
2 2 %h1 Current Score
3 3 = form_tag current_score_report_path, method: 'get' do
4 - Show only users from this group
4 + .radio-inline
5 + = radio_button_tag 'users', 'all', (params[:users] == 'all')
6 + = label_tag(:users_all,'Show all users')
7 + %br
8 + .radio-inline
9 + = radio_button_tag 'users', 'group', (params[:users] == 'group')
10 + = label_tag(:users_group, 'Show only users from this group')
5 11 = select_tag "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_id]), id: 'group_name',class: 'select2', style: 'width: 20em';
6 12 = submit_tag 'Apply',class: 'btn btn-default'
7 13
8 14 %br
9 -
10 -
11 15 = render "score_table"
@@ -36,12 +36,17
36 36 = radio_button_tag 'users', 'all', (params[:users] == "all")
37 37 All users
38 38 .radio
39 39 %label
40 40 = radio_button_tag 'users', 'enabled', (params[:users] == "enabled")
41 41 Only enabled users
42 + .radio
43 + %label
44 + = radio_button_tag 'users', 'group', (params[:users] == "group")
45 + Only users from this group
46 + = select_tag "group_id", options_from_collection_for_select( Group.all, 'id','name',params[:group_id]), id: 'group_name',class: 'select2', style: 'width: 20em';
42 47 .row
43 48 .col-md-12
44 49 = button_tag 'Show', class: "btn btn-primary btn-large", value: "show"
45 50 = button_tag 'Download CSV', class: "btn btn-primary btn-large", value: "download"
46 51
47 52 - if @scorearray
@@ -86,13 +86,13
86 86 create_table "groups_problems", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t|
87 87 t.integer "problem_id", null: false
88 88 t.integer "group_id", null: false
89 89 t.index ["group_id", "problem_id"], name: "index_groups_problems_on_group_id_and_problem_id"
90 90 end
91 91
92 - create_table "groups_users", id: false, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t|
92 + create_table "groups_users", options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t|
93 93 t.integer "group_id", null: false
94 94 t.integer "user_id", null: false
95 95 t.index ["user_id", "group_id"], name: "index_groups_users_on_user_id_and_group_id"
96 96 end
97 97
98 98 create_table "heart_beats", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci", force: :cascade do |t|
@@ -113,12 +113,13
113 113
114 114 create_table "logins", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci", force: :cascade do |t|
115 115 t.integer "user_id"
116 116 t.string "ip_address"
117 117 t.datetime "created_at", null: false
118 118 t.datetime "updated_at", null: false
119 + t.index ["user_id"], name: "index_logins_on_user_id"
119 120 end
120 121
121 122 create_table "messages", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci", force: :cascade do |t|
122 123 t.integer "sender_id"
123 124 t.integer "receiver_id"
124 125 t.integer "replying_message_id"
@@ -212,12 +213,13
212 213 t.integer "number"
213 214 t.string "source_filename"
214 215 t.float "max_runtime"
215 216 t.integer "peak_memory"
216 217 t.integer "effective_code_length"
217 218 t.string "ip_address"
219 + t.index ["submitted_at"], name: "index_submissions_on_submitted_at"
218 220 t.index ["user_id", "problem_id", "number"], name: "index_submissions_on_user_id_and_problem_id_and_number", unique: true
219 221 t.index ["user_id", "problem_id"], name: "index_submissions_on_user_id_and_problem_id"
220 222 end
221 223
222 224 create_table "tags", id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1", force: :cascade do |t|
223 225 t.string "name", null: false
@@ -222,13 +222,13
222 222 conf[:default_value],
223 223 desc)
224 224 end
225 225 end
226 226
227 227 def seed_roles
228 - Role.find_or_create_by(name: 'TA')
228 + Role.find_or_create_by(name: 'ta')
229 229 return if Role.find_by_name('admin')
230 230
231 231 role = Role.create(:name => 'admin')
232 232 user_admin_right = Right.create(:name => 'user_admin',
233 233 :controller => 'user_admin',
234 234 :action => 'all')
You need to be logged in to leave comments. Login now