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

r876:8cd1c60e1ef0 - - 22 files changed: 1102 inserted, 829 deleted

@@ -0,0 +1,6
1 + %h1 New Problem
2 +
3 + = render 'form', problem: @problem
4 + .row.my-3
5 + .col-md-4
6 + = link_to 'Back', problems_path, class: 'btn btn-secondary'
@@ -0,0 +1,57
1 + # This migration comes from active_storage (originally 20170806125915)
2 + class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
3 + def change
4 + # Use Active Record's configured type for primary and foreign keys
5 + primary_key_type, foreign_key_type = primary_and_foreign_key_types
6 +
7 + create_table :active_storage_blobs, id: primary_key_type do |t|
8 + t.string :key, null: false
9 + t.string :filename, null: false
10 + t.string :content_type
11 + t.text :metadata
12 + t.string :service_name, null: false
13 + t.bigint :byte_size, null: false
14 + t.string :checksum
15 +
16 + if connection.supports_datetime_with_precision?
17 + t.datetime :created_at, precision: 6, null: false
18 + else
19 + t.datetime :created_at, null: false
20 + end
21 +
22 + t.index [ :key ], unique: true
23 + end
24 +
25 + create_table :active_storage_attachments, id: primary_key_type do |t|
26 + t.string :name, null: false
27 + t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type
28 + t.references :blob, null: false, type: foreign_key_type
29 +
30 + if connection.supports_datetime_with_precision?
31 + t.datetime :created_at, precision: 6, null: false
32 + else
33 + t.datetime :created_at, null: false
34 + end
35 +
36 + t.index [ :record_type, :record_id, :name, :blob_id ], name: :index_active_storage_attachments_uniqueness, unique: true
37 + t.foreign_key :active_storage_blobs, column: :blob_id
38 + end
39 +
40 + create_table :active_storage_variant_records, id: primary_key_type do |t|
41 + t.belongs_to :blob, null: false, index: false, type: foreign_key_type
42 + t.string :variation_digest, null: false
43 +
44 + t.index [ :blob_id, :variation_digest ], name: :index_active_storage_variant_records_uniqueness, unique: true
45 + t.foreign_key :active_storage_blobs, column: :blob_id
46 + end
47 + end
48 +
49 + private
50 + def primary_and_foreign_key_types
51 + config = Rails.configuration.generators
52 + setting = config.options[config.orm][:primary_key_type]
53 + primary_key_type = setting || :primary_key
54 + foreign_key_type = setting || :bigint
55 + [primary_key_type, foreign_key_type]
56 + end
57 + end
@@ -0,0 +1,6
1 + class AddDescriptionToProblems < ActiveRecord::Migration[7.0]
2 + def change
3 + add_column :problems, :description, :text
4 + add_column :problems, :markdown, :boolean
5 + end
6 + end
@@ -0,0 +1,21
1 + Problem.all.each do |p|
2 + next unless p.description_filename
3 + basename, ext = p.description_filename.split('.')
4 + filename = "#{Problem.download_file_basedir}/#{p.id}/#{basename}.#{ext}"
5 +
6 + if File.exists? filename
7 + p.statement.attach io: File.open(filename), filename: "#{basename}.#{ext}"
8 + puts "#{p.id}: OK"
9 + else
10 + puts "#{p.id}: #{p.name} #{filename} ERROR"
11 + end
12 +
13 + d = Description.where(id: p.description_id).first
14 + if d
15 + p.description = d.body
16 + p.markdown = d.markdowned
17 + end
18 + p.save
19 +
20 +
21 + end
@@ -35,3 +35,4
35 35 /config/secrets.yml
36 36
37 37 /.byebug_history
38 + /storage/*
@@ -77,7 +77,8
77 77 #gem 'jquery-datatables-rails'
78 78
79 79 #----------- user interface -----------------
80 - gem 'simple_form'
80 + gem 'simple_form', git: 'https://github.com/heartcombo/simple_form', ref: '31fe255'
81 +
81 82 #select 2
82 83 #gem 'select2-rails'
83 84 #ace editor
@@ -1,3 +1,12
1 + GIT
2 + remote: https://github.com/heartcombo/simple_form
3 + revision: 31fe25504771bd6cd425b585a4e0ed652fba4521
4 + ref: 31fe255
5 + specs:
6 + simple_form (5.1.0)
7 + actionpack (>= 5.2)
8 + activemodel (>= 5.2)
9 +
1 10 GIT
2 11 remote: https://github.com/mmotherwell/best_in_place
3 12 revision: 88eb3052623a9a6cd346864d2aca05021c2f80d0
@@ -247,9 +256,6
247 256 rubyzip (>= 1.2.2, < 3.0)
248 257 websocket (~> 1.0)
249 258 sexp_processor (4.16.1)
250 - simple_form (5.1.0)
251 - actionpack (>= 5.2)
252 - activemodel (>= 5.2)
253 259 spring (2.1.1)
254 260 spring-watcher-listen (2.0.1)
255 261 listen (>= 2.7, < 4.0)
@@ -315,7 +321,7
315 321 rouge
316 322 sassc-rails
317 323 selenium-webdriver
318 - simple_form
324 + simple_form!
319 325 spring
320 326 spring-watcher-listen (~> 2.0.0)
321 327 sprockets-rails
@@ -59,10 +59,6
59 59 }
60 60 }
61 61
62 - input {
63 - font-family: Tahoma, "sans-serif";
64 - }
65 -
66 62 h1 {
67 63 color: #334488;
68 64 }
@@ -7,6 +7,7
7 7 before_action :current_user
8 8 before_action :nav_announcement
9 9 before_action :unique_visitor_id
10 + before_action :active_controller_action
10 11
11 12 SINGLE_USER_MODE_CONF_KEY = 'system.single_user_mode'
12 13 MULTIPLE_IP_LOGIN_CONF_KEY = 'right.multiple_ip_login'
@@ -29,6 +30,12
29 30 @nav_announcement = Announcement.where(on_nav_bar: true)
30 31 end
31 32
33 + def active_controller_action
34 + #so that we can override this value inside each action
35 + @active_controller = controller_name
36 + @active_action = action_name
37 + end
38 +
32 39 def admin_authorization
33 40 return false unless check_valid_login
34 41 user = User.includes(:roles).find(session[:user_id])
@@ -1,38 +1,49
1 1 class ProblemsController < ApplicationController
2 2
3 + include ActiveStorage::SetCurrent
4 +
3 5 before_action :admin_authorization, except: [:stat]
6 + before_action :set_problem, only: [:show, :edit, :update, :destroy, :get_statement, :toggle, :toggle_test, :toggle_view_testcase, :stat]
4 7 before_action only: [:stat] do
5 8 authorization_by_roles(['admin','ta'])
6 9 end
7 10
11 +
8 12 def index
9 13 @problems = Problem.order(date_added: :desc)
10 14 end
11 15
12 16
13 17 def show
14 - @problem = Problem.find(params[:id])
18 + end
19 +
20 + #get statement download link
21 + def get_statement
22 + unless @current_user.can_view_problem? @problem
23 + redirect_to list_main_path, error: 'You are not authorized to access this file'
24 + return
25 + end
26 +
27 + if params[:ext]=='pdf'
28 + content_type = 'application/pdf'
29 + else
30 + content_type = 'application/octet-stream'
31 + end
32 +
33 + filename = @problem.statement.filename.to_s
34 + data =@problem.statement.download
35 +
36 + send_data data, stream: false, disposition: 'inline', filename: filename, type: content_type
15 37 end
16 38
17 39 def new
18 40 @problem = Problem.new
19 - @description = nil
20 41 end
21 42
22 43 def create
23 44 @problem = Problem.new(problem_params)
24 - @description = Description.new(description_params)
25 - if @description.body!=''
26 - if !@description.save
27 - render :action => new and return
28 - end
29 - else
30 - @description = nil
31 - end
32 - @problem.description = @description
33 45 if @problem.save
34 - flash[:notice] = 'Problem was successfully created.'
35 - redirect_to action: :index
46 + redirect_to action: :index, notice: 'Problem was successfully created.'
36 47 else
37 48 render :action => 'new'
38 49 end
@@ -56,63 +67,31
56 67 end
57 68
58 69 def edit
59 - @problem = Problem.find(params[:id])
60 70 @description = @problem.description
61 71 end
62 72
63 73 def update
64 - @problem = Problem.find(params[:id])
65 - @description = @problem.description
66 - if @description.nil? and params[:description][:body]!=''
67 - @description = Description.new(description_params)
68 - if !@description.save
69 - flash[:notice] = 'Error saving description'
70 - render :action => 'edit' and return
71 - end
72 - @problem.description = @description
73 - elsif @description
74 - if !@description.update(description_params)
75 - flash[:notice] = 'Error saving description'
76 - render :action => 'edit' and return
77 - end
78 - end
79 - if params[:file] and params[:file].content_type != 'application/pdf'
80 - flash[:notice] = 'Error: Uploaded file is not PDF'
81 - render :action => 'edit' and return
74 + if problem_params[:statement] && problem_params[:statement].content_type != 'application/pdf'
75 + flash[:error] = 'Error: Uploaded file is not PDF'
76 + render :action => 'edit'
77 + return
82 78 end
83 79 if @problem.update(problem_params)
84 - flash[:notice] = 'Problem was successfully updated.'
85 - unless params[:file] == nil or params[:file] == ''
86 - flash[:notice] = 'Problem was successfully updated and a new PDF file is uploaded.'
87 - out_dirname = "#{Problem.download_file_basedir}/#{@problem.id}"
88 - if not FileTest.exists? out_dirname
89 - Dir.mkdir out_dirname
90 - end
91 -
92 - out_filename = "#{out_dirname}/#{@problem.name}.pdf"
93 - if FileTest.exists? out_filename
94 - File.delete out_filename
95 - end
96 -
97 - File.open(out_filename,"wb") do |file|
98 - file.write(params[:file].read)
99 - end
100 - @problem.description_filename = "#{@problem.name}.pdf"
101 - @problem.save
102 - end
103 - redirect_to :action => 'show', :id => @problem
80 + flash[:notice] = 'Problem was successfully updated. '
81 + flash[:notice] += 'A new statement PDF is uploaded' if problem_params[:statement]
82 + @problem.save
83 + redirect_to edit_problem_path(@problem)
104 84 else
105 85 render :action => 'edit'
106 86 end
107 87 end
108 88
109 89 def destroy
110 - p = Problem.find(params[:id]).destroy
90 + @problem.destroy
111 91 redirect_to action: :index
112 92 end
113 93
114 94 def toggle
115 - @problem = Problem.find(params[:id])
116 95 @problem.update(available: !(@problem.available) )
117 96 respond_to do |format|
118 97 format.js { }
@@ -120,7 +99,6
120 99 end
121 100
122 101 def toggle_test
123 - @problem = Problem.find(params[:id])
124 102 @problem.update(test_allowed: !(@problem.test_allowed?) )
125 103 respond_to do |format|
126 104 format.js { }
@@ -128,7 +106,6
128 106 end
129 107
130 108 def toggle_view_testcase
131 - @problem = Problem.find(params[:id])
132 109 @problem.update(view_testcase: !(@problem.view_testcase?) )
133 110 respond_to do |format|
134 111 format.js { }
@@ -152,7 +129,6
152 129 end
153 130
154 131 def stat
155 - @problem = Problem.find(params[:id])
156 132 unless @problem.available or session[:admin]
157 133 redirect_to :controller => 'main', :action => 'list'
158 134 return
@@ -295,8 +271,13
295 271
296 272 private
297 273
274 + def set_problem
275 + @problem = Problem.find(params[:id])
276 + end
277 +
298 278 def problem_params
299 - params.require(:problem).permit(:name, :full_name, :full_score, :change_date_added, :date_added, :available, :test_allowed,:output_only, :url, :description, tag_ids:[])
279 + params.require(:problem).permit(:name, :full_name, :full_score, :change_date_added, :date_added, :available,
280 + :test_allowed, :output_only, :url, :description, :statement, :description, tag_ids:[])
300 281 end
301 282
302 283 def description_params
@@ -209,4 +209,15
209 209 BOOTSTRAP_FLASH_MSG.fetch(flash_type.to_sym, flash_type.to_s)
210 210 end
211 211
212 + def active_class_when(options = {},cname = @active_controller, aname = @active_action)
213 + class_name = ' active '
214 + ok = true
215 + options.each do |k,v|
216 + ok = false if k == :controller && v.to_s != cname
217 + ok = false if k == :action && v.to_s != aname
218 + end
219 + return class_name if ok && options.size > 0
220 + return ''
221 + end
222 +
212 223 end
@@ -1,6 +1,7
1 1 class Problem < ApplicationRecord
2 2
3 - belongs_to :description
3 + #belongs_to :description
4 +
4 5 has_and_belongs_to_many :contests, :uniq => true
5 6
6 7 #has_and_belongs_to_many :groups
@@ -24,6 +25,9
24 25 DEFAULT_TIME_LIMIT = 1
25 26 DEFAULT_MEMORY_LIMIT = 32
26 27
28 + has_one_attached :statement
29 + has_many_attached :attachments
30 +
27 31 def get_jschart_history
28 32 start = 4.month.ago.beginning_of_day
29 33 start_date = start.to_date
@@ -11,14 +11,14
11 11 / submission
12 12 - if (@current_user!=nil) and (GraderConfiguration.show_tasks_to?(@current_user))
13 13 %li.nav-item.dropdown.mx-2
14 - %a.nav-link.dropdown-toggle{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {expanded:"false"}, role: "button"}
14 + %a.nav-link.dropdown-toggle.active-with-children{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {expanded:"false"}, role: "button"}
15 15 = "#{I18n.t 'menu.submissions'}"
16 16 %ul.dropdown-menu
17 - %li= link_to 'View', submissions_path, class:'dropdown-item'
17 + %li= link_to 'View', submissions_path, class: 'dropdown-item '+active_class_when(controller: :submissions)
18 18 %li= link_to 'Self Test', test_index_path, class:'dropdown-item'
19 19 / hall of fame
20 20 - if GraderConfiguration['right.user_hall_of_fame']
21 - %li= link_to "#{I18n.t 'menu.hall_of_fame'}", problem_hof_report_path, class: 'nav-link mx-2'
21 + %li= link_to "#{I18n.t 'menu.hall_of_fame'}", problem_hof_report_path, class: 'nav-link mx-2'+active_class_when(controller: :report, action: :problem_hof)
22 22 / display MODE button (with countdown in contest mode)
23 23 - if GraderConfiguration.analysis_mode?
24 24 %div.btn.btn-success#countdown= "ANALYSIS MODE"
@@ -35,33 +35,33
35 35 - if (@current_user!=nil) and (session[:admin])
36 36 / management
37 37 %li.nav-item.dropdown.mx-2
38 - %a.nav-link.dropdown-toggle{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
38 + %a.nav-link.dropdown-toggle.active-with-children{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
39 39 Manage
40 40 %ul.dropdown-menu
41 - %li= link_to 'Announcements', announcements_path, class: 'dropdown-item'
42 - %li= link_to 'Problems', problems_path, class: 'dropdown-item'
43 - %li= link_to 'Tags', tags_path, class: 'dropdown-item'
44 - %li= link_to 'Users', user_admin_index_path, class: 'dropdown-item'
45 - %li= link_to 'User Groups', groups_path, class: 'dropdown-item'
46 - %li= link_to 'Graders', graders_list_path, class: 'dropdown-item'
47 - %li= link_to 'Message ', console_messages_path, class: 'dropdown-item'
41 + %li= link_to 'Announcements', announcements_path, class: 'dropdown-item'+active_class_when(controller: :announcements)
42 + %li= link_to 'Problems', problems_path, class: 'dropdown-item'+active_class_when(controller: :problems)
43 + %li= link_to 'Tags', tags_path, class: 'dropdown-item'+active_class_when(controller: :tags)
44 + %li= link_to 'Users', user_admin_index_path, class: 'dropdown-item'+active_class_when(controller: :user_admin)
45 + %li= link_to 'User Groups', groups_path, class: 'dropdown-item'+active_class_when(controller: :groups)
46 + %li= link_to 'Graders', graders_list_path, class: 'dropdown-item'+active_class_when(controller: :graders)
47 + %li= link_to 'Message ', console_messages_path, class: 'dropdown-item'+active_class_when(controller: :messages)
48 48 %li
49 49 %hr.dropdown-divider
50 - %li= link_to 'System config', grader_configuration_index_path, class: 'dropdown-item'
50 + %li= link_to 'System config', grader_configuration_index_path, class: 'dropdown-item'+active_class_when(controller: :grader_configuration)
51 51 %li
52 52 %hr.dropdown-divider
53 - %li= link_to 'Sites', sites_path, class: 'dropdown-item'
54 - %li= link_to 'Contests', contest_management_index_path, class: 'dropdown-item'
53 + %li= link_to 'Sites', sites_path, class: 'dropdown-item'+active_class_when(controller: :sites)
54 + %li= link_to 'Contests', contest_management_index_path, class: 'dropdown-item'+active_class_when(controller: :contest_management)
55 55 -#
56 56 / report
57 57 %li.nav-item.dropdown.mx-2
58 - %a.nav-link.dropdown-toggle{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
58 + %a.nav-link.dropdown-toggle.active-with-children{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
59 59 Report
60 60 %ul.dropdown-menu
61 - %li= link_to 'Current Score', current_score_report_path, class: 'dropdown-item'
62 - %li= link_to 'Score Report', max_score_report_path, class: 'dropdown-item'
63 - %li= link_to 'Submission Report', submission_report_path, class: 'dropdown-item'
64 - %li= link_to 'Login Report', login_report_path, class: 'dropdown-item'
61 + %li= link_to 'Current Score', current_score_report_path, class: 'dropdown-item'+active_class_when(controller: :report, action: :current_score)
62 + %li= link_to 'Score Report', max_score_report_path, class: 'dropdown-item'+active_class_when(controller: :report, action: :max_score)
63 + %li= link_to 'Submission Report', submission_report_path, class: 'dropdown-item'+active_class_when(controller: :report, action: :submission)
64 + %li= link_to 'Login Report', login_report_path, class: 'dropdown-item'+active_class_when(controller: :report, action: :login)
65 65 - if (ungraded = Submission.where('graded_at is null').where('submitted_at < ?', 1.minutes.ago).count) > 0
66 66 =link_to "#{ungraded} backlogs!",
67 67 graders_list_path,
@@ -85,3 +85,9
85 85 %a.nav-link{href: login_main_path}
86 86 %span.mi.mi-bs.md-18 exit_to_app
87 87 = @current_user.full_name
88 + :javascript
89 + $('.active-with-children').each( (index,obj) => {
90 + if ($(obj).siblings('.dropdown-menu').has('.active').length > 0) {
91 + $(obj).addClass('active')
92 + }
93 + } )
@@ -1,55 +1,78
1 - = error_messages_for 'problem'
2 - / [form:problem]
3 - .form-group
4 - %label{:for => "problem_name"} Name
5 - = text_field 'problem', 'name', class: 'form-control'
6 - %small
7 - Do not directly edit the problem name, unless you know what you are doing. If you want to change the name, use the name change button in the problem management menu instead.
8 - .form-group
9 - %label{:for => "problem_full_name"} Full name
10 - = text_field 'problem', 'full_name', class: 'form-control'
11 - .form-group
12 - %label{:for => "problem_full_score"} Full score
13 - = text_field 'problem', 'full_score', class: 'form-control'
14 - .form-group
15 - %label{:for => "problem_full_score"} Tags
16 - = collection_select(:problem, :tag_ids, Tag.all, :id, :name, {}, {multiple: true, class: 'form-control select2'})
17 - .form-group
18 - %label{:for => "problem_date_added"} Date added
19 - = date_select 'problem', 'date_added', class: 'form-control'
20 - - # TODO: these should be put in model Problem, but I can't think of
21 - - # nice default values for them. These values look fine only
22 - - # in this case (of lazily adding new problems).
23 - - @problem.available = true if @problem!=nil and @problem.available==nil
24 - - @problem.test_allowed = true if @problem!=nil and @problem.test_allowed==nil
25 - - @problem.output_only = false if @problem!=nil and @problem.output_only==nil
26 - .checkbox
27 - %label{:for => "problem_available"}
28 - = check_box :problem, :available
29 - Available?
30 - .checkbox
31 - %label{:for => "problem_test_allowed"}
32 - = check_box :problem, :test_allowed
33 - Test allowed?
34 - .checkbox
35 - %label{:for => "problem_output_only"}
36 - = check_box :problem, :output_only
37 - Output only?
38 - = error_messages_for 'description'
39 - .form-group
40 - %label{:for => "description_body"} Description
41 - %br/
42 - = text_area :description, :body, :rows => 10, :cols => 80,class: 'form-control'
43 - .form-group
44 - %label{:for => "description_markdowned"} Markdowned?
45 - = select "description", |
46 - "markdowned", |
47 - [['True',true],['False',false]], |
48 - {:selected => (@description) ? @description.markdowned : false } |
49 - .form-group
50 - %label{:for => "problem_url"} URL
51 - %br/
52 - = text_field 'problem', 'url',class: 'form-control'
53 - %p
54 - Task PDF #{file_field_tag 'file'}
55 - / [eoform:problem]
1 + = simple_form_for problem do |form|
2 + .row
3 + .col-md-6
4 + = form.input :name
5 + = form.input :full_name
6 + = form.input :full_score
7 + = form.input :tag_ids, collection: Tag.all, class: 'select2'
8 + = form.input :date_added
9 + = form.input :available
10 + = form.input :test_allowed
11 + = form.input :output_only
12 + = form.input :description, as: :text
13 + = form.input :markdown
14 + = form.input :url
15 + = form.input :statement
16 + %p
17 + - if @problem.statement.attached?
18 + %a{href: get_statement_problem_path(@problem)} [Download current Statement]
19 + - else
20 + no statement attached to this problem
21 + = form.submit :submit, class: 'btn btn-primary'
22 + -#
23 + = error_messages_for 'problem'
24 +
25 + / [form:problem]
26 + .form-group
27 + %label{:for => "problem_name"} Name
28 + = text_field 'problem', 'name', class: 'form-control'
29 + %small
30 + Do not directly edit the problem name, unless you know what you are doing. If you want to change the name, use the name change button in the problem management menu instead.
31 + .form-group
32 + %label{:for => "problem_full_name"} Full name
33 + = text_field 'problem', 'full_name', class: 'form-control'
34 + .form-group
35 + %label{:for => "problem_full_score"} Full score
36 + = text_field 'problem', 'full_score', class: 'form-control'
37 + .form-group
38 + %label{:for => "problem_full_score"} Tags
39 + = collection_select(:problem, :tag_ids, Tag.all, :id, :name, {}, {multiple: true, class: 'form-control select2'})
40 + .form-group
41 + %label{:for => "problem_date_added"} Date added
42 + = date_select 'problem', 'date_added', class: 'form-control'
43 + - # TODO: these should be put in model Problem, but I can't think of
44 + - # nice default values for them. These values look fine only
45 + - # in this case (of lazily adding new problems).
46 + - @problem.available = true if @problem!=nil and @problem.available==nil
47 + - @problem.test_allowed = true if @problem!=nil and @problem.test_allowed==nil
48 + - @problem.output_only = false if @problem!=nil and @problem.output_only==nil
49 + .checkbox
50 + %label{:for => "problem_available"}
51 + = check_box :problem, :available
52 + Available?
53 + .checkbox
54 + %label{:for => "problem_test_allowed"}
55 + = check_box :problem, :test_allowed
56 + Test allowed?
57 + .checkbox
58 + %label{:for => "problem_output_only"}
59 + = check_box :problem, :output_only
60 + Output only?
61 + = error_messages_for 'description'
62 + .form-group
63 + %label{:for => "description_body"} Description
64 + %br/
65 + = text_area :description, :body, :rows => 10, :cols => 80,class: 'form-control'
66 + .form-group
67 + %label{:for => "description_markdowned"} Markdowned?
68 + = select "description", |
69 + "markdowned", |
70 + [['True',true],['False',false]], |
71 + {:selected => (@description) ? @description.markdowned : false } |
72 + .form-group
73 + %label{:for => "problem_url"} URL
74 + %br/
75 + = text_field 'problem', 'url',class: 'form-control'
76 + %p
77 + Task PDF #{file_field_tag 'file'}
78 + / [eoform:problem]
@@ -1,14 +1,6
1 - .container-fluid
2 - = form_for @problem,url:{action: 'update'},html: {multipart: true} do
3 - .row
4 - .col-md-6
5 - %h1 Editing problem
6 - = render :partial => 'form'
7 - .row
8 - .col-md-4
9 - = submit_tag 'Edit', class: 'btn btn-primary btn-block'
10 - .col-md-4
11 - = link_to 'Show', {:action => 'show', :id => @problem}, class: 'btn btn-default btn-block'
12 - .col-md-4
13 - = link_to 'Back', problems_path, class: 'btn btn-default btn-block'
14 - .div{style: 'height: 5em'}
1 + %h1 Editing Problem
2 +
3 + = render 'form', problem: @problem
4 + .row.my-3
5 + .col-md-4
6 + = link_to 'Back', problems_path, class: 'btn btn-secondary'
@@ -37,6 +37,9
37 37 %sup{class: 'text-primary',data: {toggle: 'tooltip'}, title: 'Let user uses test interface on this problem?' } [?]
38 38 - if GraderConfiguration.multicontests?
39 39 %th Contests
40 + %th.text-center
41 + %th.text-center
42 + %th.text-center
40 43 - for problem in @problems
41 44 %tr{:class => "#{(problem.available) ? "bg-success bg-opacity-25" : "bg-opacity-25"}", :id => "prob-#{problem.id}", :name => "prob-#{problem.id}"}
42 45 - @problem=problem
@@ -58,7 +61,6
58 61 %td
59 62 = problem.contests.collect { |c| c.name }.join(', ')
60 63 %td= link_to 'Stat', {:action => 'stat', :id => problem.id}, class: 'btn btn-info btn-sm btn-block'
61 - %td= link_to 'Show', {:action => 'show', :id => problem}, class: 'btn btn-info btn-sm btn-block'
62 64 %td= link_to 'Edit', {:action => 'edit', :id => problem}, class: 'btn btn-info btn-sm btn-block'
63 65 %td= link_to 'Destroy', { :action => 'destroy', :id => problem }, :confirm => 'Are you sure?', :method => :delete, class: 'btn btn-danger btn-sm btn-block'
64 66 %br/
@@ -112,7 +112,7
112 112 # You can define the class to use on all labels. Default is nil.
113 113 # config.label_class = nil
114 114
115 - # You can define the default class to be used on forms. Can be overriden
115 + # You can define the default class to be used on forms. Can be overridden
116 116 # with `html: { :class }`. Defaulting to none.
117 117 # config.default_form_class = nil
118 118
@@ -1,10 +1,8
1 1 # frozen_string_literal: true
2 2
3 - # Please do not make direct changes to this file!
4 - # This generator is maintained by the community around simple_form-bootstrap:
5 - # https://github.com/rafaelfranca/simple_form-bootstrap
6 - # All future development, tests, and organization should happen there.
7 - # Background history: https://github.com/heartcombo/simple_form/issues/1561
3 + # These defaults are defined and maintained by the community at
4 + # https://github.com/heartcombo/simple_form-bootstrap
5 + # Please submit feedback, changes and tests only there.
8 6
9 7 # Uncomment this and change the path if necessary to include your own
10 8 # components.
@@ -43,13 +41,13
43 41
44 42 # add validation classes to `input_field`
45 43 config.input_field_error_class = 'is-invalid'
46 - config.input_field_valid_class = 'is-valid'
44 + config.input_field_valid_class = 'is-valid-xxx'
47 45
48 46
49 47 # vertical forms
50 48 #
51 49 # vertical default_wrapper
52 - config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
50 + config.wrappers :vertical_form, class: 'mb-3' do |b|
53 51 b.use :html5
54 52 b.use :placeholder
55 53 b.optional :maxlength
@@ -57,90 +55,100
57 55 b.optional :pattern
58 56 b.optional :min_max
59 57 b.optional :readonly
60 - b.use :label
61 - b.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: 'is-valid'
62 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
63 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
58 + b.use :label, class: 'form-label'
59 + b.use :input, class: 'form-control', error_class: 'is-invalid'
60 + b.use :full_error, wrap_with: { class: 'invalid-feedback' }
61 + b.use :hint, wrap_with: { class: 'form-text' }
64 62 end
65 63
66 64 # vertical input for boolean
67 - config.wrappers :vertical_boolean, tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
65 + config.wrappers :vertical_boolean, tag: 'fieldset', class: 'mb-3' do |b|
68 66 b.use :html5
69 67 b.optional :readonly
70 - b.wrapper :form_check_wrapper, tag: 'div', class: 'form-check' do |bb|
71 - bb.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: 'is-valid'
68 + b.wrapper :form_check_wrapper, class: 'form-check' do |bb|
69 + bb.use :input, class: 'form-check-input', error_class: 'is-invalid'
72 70 bb.use :label, class: 'form-check-label'
73 - bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
74 - bb.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
71 + bb.use :full_error, wrap_with: { class: 'invalid-feedback' }
72 + bb.use :hint, wrap_with: { class: 'form-text' }
75 73 end
76 74 end
77 75
78 76 # vertical input for radio buttons and check boxes
79 - config.wrappers :vertical_collection, item_wrapper_class: 'form-check', item_label_class: 'form-check-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
77 + config.wrappers :vertical_collection, item_wrapper_class: 'form-check', item_label_class: 'form-check-label', tag: 'fieldset', class: 'mb-3' do |b|
80 78 b.use :html5
81 79 b.optional :readonly
82 80 b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba|
83 81 ba.use :label_text
84 82 end
85 - b.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: 'is-valid'
86 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
87 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
83 + b.use :input, class: 'form-check-input', error_class: 'is-invalid'
84 + b.use :full_error, wrap_with: { class: 'invalid-feedback d-block' }
85 + b.use :hint, wrap_with: { class: 'form-text' }
88 86 end
89 87
90 88 # vertical input for inline radio buttons and check boxes
91 - config.wrappers :vertical_collection_inline, item_wrapper_class: 'form-check form-check-inline', item_label_class: 'form-check-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
89 + config.wrappers :vertical_collection_inline, item_wrapper_class: 'form-check form-check-inline', item_label_class: 'form-check-label', tag: 'fieldset', class: 'mb-3' do |b|
92 90 b.use :html5
93 91 b.optional :readonly
94 92 b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba|
95 93 ba.use :label_text
96 94 end
97 - b.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: 'is-valid'
98 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
99 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
95 + b.use :input, class: 'form-check-input', error_class: 'is-invalid'
96 + b.use :full_error, wrap_with: { class: 'invalid-feedback d-block' }
97 + b.use :hint, wrap_with: { class: 'form-text' }
100 98 end
101 99
102 100 # vertical file input
103 - config.wrappers :vertical_file, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
101 + config.wrappers :vertical_file, class: 'mb-3' do |b|
104 102 b.use :html5
105 103 b.use :placeholder
106 104 b.optional :maxlength
107 105 b.optional :minlength
108 106 b.optional :readonly
109 - b.use :label
110 - b.use :input, class: 'form-control-file', error_class: 'is-invalid', valid_class: 'is-valid'
111 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
112 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
107 + b.use :label, class: 'form-label'
108 + b.use :input, class: 'form-control', error_class: 'is-invalid'
109 + b.use :full_error, wrap_with: { class: 'invalid-feedback' }
110 + b.use :hint, wrap_with: { class: 'form-text' }
111 + end
112 +
113 + # vertical select input
114 + config.wrappers :vertical_select, class: 'mb-3' do |b|
115 + b.use :html5
116 + b.optional :readonly
117 + b.use :label, class: 'form-label'
118 + b.use :input, class: 'form-select', error_class: 'is-invalid'
119 + b.use :full_error, wrap_with: { class: 'invalid-feedback' }
120 + b.use :hint, wrap_with: { class: 'form-text' }
113 121 end
114 122
115 123 # vertical multi select
116 - config.wrappers :vertical_multi_select, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
124 + config.wrappers :vertical_multi_select, class: 'mb-3' do |b|
117 125 b.use :html5
118 126 b.optional :readonly
119 - b.use :label
120 - b.wrapper tag: 'div', class: 'd-flex flex-row justify-content-between align-items-center' do |ba|
121 - ba.use :input, class: 'form-control mx-1', error_class: 'is-invalid', valid_class: 'is-valid'
127 + b.use :label, class: 'form-label'
128 + b.wrapper class: 'd-flex flex-row justify-content-between align-items-center' do |ba|
129 + ba.use :input, class: 'form-select mx-1', error_class: 'is-invalid'
122 130 end
123 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
124 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
131 + b.use :full_error, wrap_with: { class: 'invalid-feedback d-block' }
132 + b.use :hint, wrap_with: { class: 'form-text' }
125 133 end
126 134
127 135 # vertical range input
128 - config.wrappers :vertical_range, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
136 + config.wrappers :vertical_range, class: 'mb-3' do |b|
129 137 b.use :html5
130 138 b.use :placeholder
131 139 b.optional :readonly
132 140 b.optional :step
133 - b.use :label
134 - b.use :input, class: 'form-control-range', error_class: 'is-invalid', valid_class: 'is-valid'
135 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
136 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
141 + b.use :label, class: 'form-label'
142 + b.use :input, class: 'form-range', error_class: 'is-invalid'
143 + b.use :full_error, wrap_with: { class: 'invalid-feedback' }
144 + b.use :hint, wrap_with: { class: 'form-text' }
137 145 end
138 146
139 147
140 148 # horizontal forms
141 149 #
142 150 # horizontal default_wrapper
143 - config.wrappers :horizontal_form, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
151 + config.wrappers :horizontal_form, class: 'row mb-3' do |b|
144 152 b.use :html5
145 153 b.use :placeholder
146 154 b.optional :maxlength
@@ -149,94 +157,103
149 157 b.optional :min_max
150 158 b.optional :readonly
151 159 b.use :label, class: 'col-sm-3 col-form-label'
152 - b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
153 - ba.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: 'is-valid'
154 - ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
155 - ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
160 + b.wrapper :grid_wrapper, class: 'col-sm-9' do |ba|
161 + ba.use :input, class: 'form-control', error_class: 'is-invalid'
162 + ba.use :full_error, wrap_with: { class: 'invalid-feedback' }
163 + ba.use :hint, wrap_with: { class: 'form-text' }
156 164 end
157 165 end
158 166
159 167 # horizontal input for boolean
160 - config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
168 + config.wrappers :horizontal_boolean, class: 'row mb-3' do |b|
161 169 b.use :html5
162 170 b.optional :readonly
163 - b.wrapper tag: 'label', class: 'col-sm-3' do |ba|
164 - ba.use :label_text
165 - end
166 - b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |wr|
167 - wr.wrapper :form_check_wrapper, tag: 'div', class: 'form-check' do |bb|
168 - bb.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: 'is-valid'
171 + b.wrapper :grid_wrapper, class: 'col-sm-9 offset-sm-3' do |wr|
172 + wr.wrapper :form_check_wrapper, class: 'form-check' do |bb|
173 + bb.use :input, class: 'form-check-input', error_class: 'is-invalid'
169 174 bb.use :label, class: 'form-check-label'
170 - bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
171 - bb.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
175 + bb.use :full_error, wrap_with: { class: 'invalid-feedback' }
176 + bb.use :hint, wrap_with: { class: 'form-text' }
172 177 end
173 178 end
174 179 end
175 180
176 181 # horizontal input for radio buttons and check boxes
177 - config.wrappers :horizontal_collection, item_wrapper_class: 'form-check', item_label_class: 'form-check-label', tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
182 + config.wrappers :horizontal_collection, item_wrapper_class: 'form-check', item_label_class: 'form-check-label', class: 'row mb-3' do |b|
178 183 b.use :html5
179 184 b.optional :readonly
180 185 b.use :label, class: 'col-sm-3 col-form-label pt-0'
181 - b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
182 - ba.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: 'is-valid'
183 - ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
184 - ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
186 + b.wrapper :grid_wrapper, class: 'col-sm-9' do |ba|
187 + ba.use :input, class: 'form-check-input', error_class: 'is-invalid'
188 + ba.use :full_error, wrap_with: { class: 'invalid-feedback d-block' }
189 + ba.use :hint, wrap_with: { class: 'form-text' }
185 190 end
186 191 end
187 192
188 193 # horizontal input for inline radio buttons and check boxes
189 - config.wrappers :horizontal_collection_inline, item_wrapper_class: 'form-check form-check-inline', item_label_class: 'form-check-label', tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
194 + config.wrappers :horizontal_collection_inline, item_wrapper_class: 'form-check form-check-inline', item_label_class: 'form-check-label', class: 'row mb-3' do |b|
190 195 b.use :html5
191 196 b.optional :readonly
192 197 b.use :label, class: 'col-sm-3 col-form-label pt-0'
193 - b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
194 - ba.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: 'is-valid'
195 - ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
196 - ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
198 + b.wrapper :grid_wrapper, class: 'col-sm-9' do |ba|
199 + ba.use :input, class: 'form-check-input', error_class: 'is-invalid'
200 + ba.use :full_error, wrap_with: { class: 'invalid-feedback d-block' }
201 + ba.use :hint, wrap_with: { class: 'form-text' }
197 202 end
198 203 end
199 204
200 205 # horizontal file input
201 - config.wrappers :horizontal_file, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
206 + config.wrappers :horizontal_file, class: 'row mb-3' do |b|
202 207 b.use :html5
203 208 b.use :placeholder
204 209 b.optional :maxlength
205 210 b.optional :minlength
206 211 b.optional :readonly
207 212 b.use :label, class: 'col-sm-3 col-form-label'
208 - b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
209 - ba.use :input, error_class: 'is-invalid', valid_class: 'is-valid'
210 - ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
211 - ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
213 + b.wrapper :grid_wrapper, class: 'col-sm-9' do |ba|
214 + ba.use :input, class: 'form-control', error_class: 'is-invalid'
215 + ba.use :full_error, wrap_with: { class: 'invalid-feedback' }
216 + ba.use :hint, wrap_with: { class: 'form-text' }
217 + end
218 + end
219 +
220 + # horizontal select input
221 + config.wrappers :horizontal_select, class: 'row mb-3' do |b|
222 + b.use :html5
223 + b.optional :readonly
224 + b.use :label, class: 'col-sm-3 col-form-label'
225 + b.wrapper :grid_wrapper, class: 'col-sm-9' do |ba|
226 + ba.use :input, class: 'form-select', error_class: 'is-invalid'
227 + ba.use :full_error, wrap_with: { class: 'invalid-feedback' }
228 + ba.use :hint, wrap_with: { class: 'form-text' }
212 229 end
213 230 end
214 231
215 232 # horizontal multi select
216 - config.wrappers :horizontal_multi_select, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
233 + config.wrappers :horizontal_multi_select, class: 'row mb-3' do |b|
217 234 b.use :html5
218 235 b.optional :readonly
219 236 b.use :label, class: 'col-sm-3 col-form-label'
220 - b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
221 - ba.wrapper tag: 'div', class: 'd-flex flex-row justify-content-between align-items-center' do |bb|
222 - bb.use :input, class: 'form-control mx-1', error_class: 'is-invalid', valid_class: 'is-valid'
237 + b.wrapper :grid_wrapper, class: 'col-sm-9' do |ba|
238 + ba.wrapper class: 'd-flex flex-row justify-content-between align-items-center' do |bb|
239 + bb.use :input, class: 'form-select mx-1', error_class: 'is-invalid'
223 240 end
224 - ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
225 - ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
241 + ba.use :full_error, wrap_with: { class: 'invalid-feedback d-block' }
242 + ba.use :hint, wrap_with: { class: 'form-text' }
226 243 end
227 244 end
228 245
229 246 # horizontal range input
230 - config.wrappers :horizontal_range, tag: 'div', class: 'form-group row', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
247 + config.wrappers :horizontal_range, class: 'row mb-3' do |b|
231 248 b.use :html5
232 249 b.use :placeholder
233 250 b.optional :readonly
234 251 b.optional :step
235 - b.use :label, class: 'col-sm-3 col-form-label'
236 - b.wrapper :grid_wrapper, tag: 'div', class: 'col-sm-9' do |ba|
237 - ba.use :input, class: 'form-control-range', error_class: 'is-invalid', valid_class: 'is-valid'
238 - ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
239 - ba.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
252 + b.use :label, class: 'col-sm-3 col-form-label pt-0'
253 + b.wrapper :grid_wrapper, class: 'col-sm-9' do |ba|
254 + ba.use :input, class: 'form-range', error_class: 'is-invalid'
255 + ba.use :full_error, wrap_with: { class: 'invalid-feedback' }
256 + ba.use :hint, wrap_with: { class: 'form-text' }
240 257 end
241 258 end
242 259
@@ -244,7 +261,7
244 261 # inline forms
245 262 #
246 263 # inline default_wrapper
247 - config.wrappers :inline_form, tag: 'span', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
264 + config.wrappers :inline_form, class: 'col-12' do |b|
248 265 b.use :html5
249 266 b.use :placeholder
250 267 b.optional :maxlength
@@ -252,140 +269,44
252 269 b.optional :pattern
253 270 b.optional :min_max
254 271 b.optional :readonly
255 - b.use :label, class: 'sr-only'
272 + b.use :label, class: 'visually-hidden'
256 273
257 - b.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: 'is-valid'
258 - b.use :error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
259 - b.optional :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
274 + b.use :input, class: 'form-control', error_class: 'is-invalid'
275 + b.use :error, wrap_with: { class: 'invalid-feedback' }
276 + b.optional :hint, wrap_with: { class: 'form-text' }
260 277 end
261 278
262 279 # inline input for boolean
263 - config.wrappers :inline_boolean, tag: 'span', class: 'form-check mb-2 mr-sm-2', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
280 + config.wrappers :inline_boolean, class: 'col-12' do |b|
264 281 b.use :html5
265 282 b.optional :readonly
266 - b.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: 'is-valid'
267 - b.use :label, class: 'form-check-label'
268 - b.use :error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
269 - b.optional :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
283 + b.wrapper :form_check_wrapper, class: 'form-check' do |bb|
284 + bb.use :input, class: 'form-check-input', error_class: 'is-invalid'
285 + bb.use :label, class: 'form-check-label'
286 + bb.use :error, wrap_with: { class: 'invalid-feedback' }
287 + bb.optional :hint, wrap_with: { class: 'form-text' }
288 + end
270 289 end
271 290
272 291
273 292 # bootstrap custom forms
274 293 #
275 - # custom input for boolean
276 - config.wrappers :custom_boolean, tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
277 - b.use :html5
278 - b.optional :readonly
279 - b.wrapper :form_check_wrapper, tag: 'div', class: 'custom-control custom-checkbox' do |bb|
280 - bb.use :input, class: 'custom-control-input', error_class: 'is-invalid', valid_class: 'is-valid'
281 - bb.use :label, class: 'custom-control-label'
282 - bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
283 - bb.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
284 - end
285 - end
286 -
287 294 # custom input switch for boolean
288 - config.wrappers :custom_boolean_switch, tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
289 - b.use :html5
290 - b.optional :readonly
291 - b.wrapper :form_check_wrapper, tag: 'div', class: 'custom-control custom-switch' do |bb|
292 - bb.use :input, class: 'custom-control-input', error_class: 'is-invalid', valid_class: 'is-valid'
293 - bb.use :label, class: 'custom-control-label'
294 - bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
295 - bb.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
296 - end
297 - end
298 -
299 - # custom input for radio buttons and check boxes
300 - config.wrappers :custom_collection, item_wrapper_class: 'custom-control', item_label_class: 'custom-control-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
301 - b.use :html5
302 - b.optional :readonly
303 - b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba|
304 - ba.use :label_text
305 - end
306 - b.use :input, class: 'custom-control-input', error_class: 'is-invalid', valid_class: 'is-valid'
307 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
308 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
309 - end
310 -
311 - # custom input for inline radio buttons and check boxes
312 - config.wrappers :custom_collection_inline, item_wrapper_class: 'custom-control custom-control-inline', item_label_class: 'custom-control-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
295 + config.wrappers :custom_boolean_switch, class: 'mb-3' do |b|
313 296 b.use :html5
314 297 b.optional :readonly
315 - b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba|
316 - ba.use :label_text
317 - end
318 - b.use :input, class: 'custom-control-input', error_class: 'is-invalid', valid_class: 'is-valid'
319 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
320 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
321 - end
322 -
323 - # custom file input
324 - config.wrappers :custom_file, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
325 - b.use :html5
326 - b.use :placeholder
327 - b.optional :maxlength
328 - b.optional :minlength
329 - b.optional :readonly
330 - b.use :label
331 - b.wrapper :custom_file_wrapper, tag: 'div', class: 'custom-file' do |ba|
332 - ba.use :input, class: 'custom-file-input', error_class: 'is-invalid', valid_class: 'is-valid'
333 - ba.use :label, class: 'custom-file-label'
334 - ba.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
298 + b.wrapper :form_check_wrapper, tag: 'div', class: 'form-check form-switch' do |bb|
299 + bb.use :input, class: 'form-check-input', error_class: 'is-invalid'
300 + bb.use :label, class: 'form-check-label'
301 + bb.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
302 + bb.use :hint, wrap_with: { class: 'form-text' }
335 303 end
336 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
337 - end
338 -
339 - # custom multi select
340 - config.wrappers :custom_multi_select, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
341 - b.use :html5
342 - b.optional :readonly
343 - b.use :label
344 - b.wrapper tag: 'div', class: 'd-flex flex-row justify-content-between align-items-center' do |ba|
345 - ba.use :input, class: 'custom-select mx-1', error_class: 'is-invalid', valid_class: 'is-valid'
346 - end
347 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
348 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
349 - end
350 -
351 - # custom range input
352 - config.wrappers :custom_range, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
353 - b.use :html5
354 - b.use :placeholder
355 - b.optional :readonly
356 - b.optional :step
357 - b.use :label
358 - b.use :input, class: 'custom-range', error_class: 'is-invalid', valid_class: 'is-valid'
359 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
360 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
361 304 end
362 305
363 306
364 307 # Input Group - custom component
365 - # see example app and config at https://github.com/rafaelfranca/simple_form-bootstrap
366 - # config.wrappers :input_group, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
367 - # b.use :html5
368 - # b.use :placeholder
369 - # b.optional :maxlength
370 - # b.optional :minlength
371 - # b.optional :pattern
372 - # b.optional :min_max
373 - # b.optional :readonly
374 - # b.use :label
375 - # b.wrapper :input_group_tag, tag: 'div', class: 'input-group' do |ba|
376 - # ba.optional :prepend
377 - # ba.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: 'is-valid'
378 - # ba.optional :append
379 - # end
380 - # b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' }
381 - # b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
382 - # end
383 -
384 -
385 - # Floating Labels form
386 - #
387 - # floating labels default_wrapper
388 - config.wrappers :floating_labels_form, tag: 'div', class: 'form-label-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
308 + # see example app and config at https://github.com/heartcombo/simple_form-bootstrap
309 + config.wrappers :input_group, class: 'mb-3' do |b|
389 310 b.use :html5
390 311 b.use :placeholder
391 312 b.optional :maxlength
@@ -393,20 +314,42
393 314 b.optional :pattern
394 315 b.optional :min_max
395 316 b.optional :readonly
396 - b.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: 'is-valid'
317 + b.use :label, class: 'form-label'
318 + b.wrapper :input_group_tag, class: 'input-group' do |ba|
319 + ba.optional :prepend
320 + ba.use :input, class: 'form-control', error_class: 'is-invalid'
321 + ba.optional :append
322 + ba.use :full_error, wrap_with: { class: 'invalid-feedback' }
323 + end
324 + b.use :hint, wrap_with: { class: 'form-text' }
325 + end
326 +
327 +
328 + # Floating Labels form
329 + #
330 + # floating labels default_wrapper
331 + config.wrappers :floating_labels_form, class: 'form-floating mb-3' do |b|
332 + b.use :html5
333 + b.use :placeholder
334 + b.optional :maxlength
335 + b.optional :minlength
336 + b.optional :pattern
337 + b.optional :min_max
338 + b.optional :readonly
339 + b.use :input, class: 'form-control', error_class: 'is-invalid'
397 340 b.use :label
398 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
399 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
341 + b.use :full_error, wrap_with: { class: 'invalid-feedback' }
342 + b.use :hint, wrap_with: { class: 'form-text' }
400 343 end
401 344
402 345 # custom multi select
403 - config.wrappers :floating_labels_select, tag: 'div', class: 'form-label-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
346 + config.wrappers :floating_labels_select, class: 'form-floating mb-3' do |b|
404 347 b.use :html5
405 348 b.optional :readonly
406 - b.use :input, class: 'custom-select', error_class: 'is-invalid', valid_class: 'is-valid'
349 + b.use :input, class: 'form-select', error_class: 'is-invalid'
407 350 b.use :label
408 - b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' }
409 - b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' }
351 + b.use :full_error, wrap_with: { class: 'invalid-feedback' }
352 + b.use :hint, wrap_with: { class: 'form-text' }
410 353 end
411 354
412 355
@@ -423,18 +366,7
423 366 file: :vertical_file,
424 367 radio_buttons: :vertical_collection,
425 368 range: :vertical_range,
426 - time: :vertical_multi_select
369 + time: :vertical_multi_select,
370 + select: :vertical_select
427 371 }
428 -
429 - # enable custom form wrappers
430 - # config.wrapper_mappings = {
431 - # boolean: :custom_boolean,
432 - # check_boxes: :custom_collection,
433 - # date: :custom_multi_select,
434 - # datetime: :custom_multi_select,
435 - # file: :custom_file,
436 - # radio_buttons: :custom_collection,
437 - # range: :custom_range,
438 - # time: :custom_multi_select
439 - # }
440 372 end
@@ -34,6 +34,7
34 34 get 'toggle_test'
35 35 get 'toggle_view_testcase'
36 36 get 'stat'
37 + get 'get_statement'
37 38 end
38 39 collection do
39 40 get 'turn_all_off'
@@ -10,10 +10,38
10 10 #
11 11 # It's strongly recommended that you check this file into your version control system.
12 12
13 - ActiveRecord::Schema[7.0].define(version: 2022_02_04_080936) do
14 - create_table "announcements", id: :integer, charset: "utf8", force: :cascade do |t|
13 + ActiveRecord::Schema[7.0].define(version: 2022_09_27_074644) do
14 + create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
15 + t.string "name", null: false
16 + t.string "record_type", null: false
17 + t.bigint "record_id", null: false
18 + t.bigint "blob_id", null: false
19 + t.datetime "created_at", null: false
20 + t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id"
21 + t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true
22 + end
23 +
24 + create_table "active_storage_blobs", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
25 + t.string "key", null: false
26 + t.string "filename", null: false
27 + t.string "content_type"
28 + t.text "metadata"
29 + t.string "service_name", null: false
30 + t.bigint "byte_size", null: false
31 + t.string "checksum"
32 + t.datetime "created_at", null: false
33 + t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true
34 + end
35 +
36 + create_table "active_storage_variant_records", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
37 + t.bigint "blob_id", null: false
38 + t.string "variation_digest", null: false
39 + t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true
40 + end
41 +
42 + create_table "announcements", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
15 43 t.string "author"
16 - t.text "body", size: :medium
44 + t.text "body"
17 45 t.boolean "published"
18 46 t.datetime "created_at", precision: nil, null: false
19 47 t.datetime "updated_at", precision: nil, null: false
@@ -24,7 +52,7
24 52 t.boolean "on_nav_bar", default: false
25 53 end
26 54
27 - create_table "contests", id: :integer, charset: "utf8", force: :cascade do |t|
55 + create_table "contests", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
28 56 t.string "title"
29 57 t.boolean "enabled"
30 58 t.datetime "created_at", precision: nil, null: false
@@ -32,39 +60,39
32 60 t.string "name"
33 61 end
34 62
35 - create_table "contests_problems", id: false, charset: "utf8", force: :cascade do |t|
63 + create_table "contests_problems", id: false, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
36 64 t.integer "contest_id"
37 65 t.integer "problem_id"
38 66 end
39 67
40 - create_table "contests_users", id: false, charset: "utf8", force: :cascade do |t|
68 + create_table "contests_users", id: false, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
41 69 t.integer "contest_id"
42 70 t.integer "user_id"
43 71 end
44 72
45 - create_table "countries", id: :integer, charset: "utf8", force: :cascade do |t|
73 + create_table "countries", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
46 74 t.string "name"
47 75 t.datetime "created_at", precision: nil, null: false
48 76 t.datetime "updated_at", precision: nil, null: false
49 77 end
50 78
51 - create_table "descriptions", id: :integer, charset: "utf8", force: :cascade do |t|
52 - t.text "body", size: :medium
79 + create_table "descriptions", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
80 + t.text "body"
53 81 t.boolean "markdowned"
54 82 t.datetime "created_at", precision: nil, null: false
55 83 t.datetime "updated_at", precision: nil, null: false
56 84 end
57 85
58 - create_table "grader_configurations", id: :integer, charset: "utf8", force: :cascade do |t|
86 + create_table "grader_configurations", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
59 87 t.string "key"
60 88 t.string "value_type"
61 89 t.string "value"
62 90 t.datetime "created_at", precision: nil, null: false
63 91 t.datetime "updated_at", precision: nil, null: false
64 - t.text "description", size: :medium
92 + t.text "description"
65 93 end
66 94
67 - create_table "grader_processes", id: :integer, charset: "utf8", force: :cascade do |t|
95 + create_table "grader_processes", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
68 96 t.string "host"
69 97 t.integer "pid"
70 98 t.string "mode"
@@ -95,7 +123,7
95 123 t.index ["user_id", "group_id"], name: "index_groups_users_on_user_id_and_group_id"
96 124 end
97 125
98 - create_table "heart_beats", id: :integer, charset: "latin1", force: :cascade do |t|
126 + create_table "heart_beats", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
99 127 t.integer "user_id"
100 128 t.string "ip_address"
101 129 t.datetime "created_at", precision: nil, null: false
@@ -104,14 +132,14
104 132 t.index ["updated_at"], name: "index_heart_beats_on_updated_at"
105 133 end
106 134
107 - create_table "languages", id: :integer, charset: "utf8", force: :cascade do |t|
135 + create_table "languages", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
108 136 t.string "name", limit: 10
109 137 t.string "pretty_name"
110 138 t.string "ext", limit: 10
111 139 t.string "common_ext"
112 140 end
113 141
114 - create_table "logins", id: :integer, charset: "latin1", force: :cascade do |t|
142 + create_table "logins", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
115 143 t.integer "user_id"
116 144 t.string "ip_address"
117 145 t.datetime "created_at", precision: nil, null: false
@@ -119,18 +147,18
119 147 t.index ["user_id"], name: "index_logins_on_user_id"
120 148 end
121 149
122 - create_table "messages", id: :integer, charset: "utf8", force: :cascade do |t|
150 + create_table "messages", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
123 151 t.integer "sender_id"
124 152 t.integer "receiver_id"
125 153 t.integer "replying_message_id"
126 - t.text "body", size: :medium
154 + t.text "body"
127 155 t.boolean "replied"
128 156 t.datetime "created_at", precision: nil, null: false
129 157 t.datetime "updated_at", precision: nil, null: false
130 158 end
131 159
132 - create_table "problems", id: :bigint, default: nil, charset: "utf8", force: :cascade do |t|
133 - t.string "name", limit: 100
160 + create_table "problems", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
161 + t.string "name", limit: 30
134 162 t.string "full_name"
135 163 t.integer "full_score"
136 164 t.date "date_added"
@@ -142,47 +170,49
142 170 t.string "description_filename"
143 171 t.boolean "view_testcase"
144 172 t.integer "difficulty"
173 + t.text "description"
174 + t.boolean "markdown"
145 175 end
146 176
147 - create_table "problems_tags", id: :bigint, default: nil, charset: "latin1", force: :cascade do |t|
148 - t.bigint "problem_id"
177 + create_table "problems_tags", id: :integer, charset: "latin1", force: :cascade do |t|
178 + t.integer "problem_id"
149 179 t.integer "tag_id"
150 180 t.index ["problem_id", "tag_id"], name: "index_problems_tags_on_problem_id_and_tag_id", unique: true
151 181 t.index ["problem_id"], name: "index_problems_tags_on_problem_id"
152 182 t.index ["tag_id"], name: "index_problems_tags_on_tag_id"
153 183 end
154 184
155 - create_table "rights", id: :integer, charset: "utf8", force: :cascade do |t|
185 + create_table "rights", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
156 186 t.string "name"
157 187 t.string "controller"
158 188 t.string "action"
159 189 end
160 190
161 - create_table "rights_roles", id: false, charset: "utf8", force: :cascade do |t|
191 + create_table "rights_roles", id: false, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
162 192 t.integer "right_id"
163 193 t.integer "role_id"
164 194 t.index ["role_id"], name: "index_rights_roles_on_role_id"
165 195 end
166 196
167 - create_table "roles", id: :integer, charset: "utf8", force: :cascade do |t|
197 + create_table "roles", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
168 198 t.string "name"
169 199 end
170 200
171 - create_table "roles_users", id: false, charset: "utf8", force: :cascade do |t|
201 + create_table "roles_users", id: false, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
172 202 t.integer "role_id"
173 203 t.integer "user_id"
174 204 t.index ["user_id"], name: "index_roles_users_on_user_id"
175 205 end
176 206
177 - create_table "sessions", id: :integer, charset: "utf8", force: :cascade do |t|
207 + create_table "sessions", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
178 208 t.string "session_id"
179 - t.text "data", size: :medium
209 + t.text "data"
180 210 t.datetime "updated_at", precision: nil
181 211 t.index ["session_id"], name: "index_sessions_on_session_id"
182 212 t.index ["updated_at"], name: "index_sessions_on_updated_at"
183 213 end
184 214
185 - create_table "sites", id: :integer, charset: "utf8", force: :cascade do |t|
215 + create_table "sites", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
186 216 t.string "name"
187 217 t.boolean "started"
188 218 t.datetime "start_time", precision: nil
@@ -192,23 +222,14
192 222 t.string "password"
193 223 end
194 224
195 - create_table "solutions", charset: "latin1", force: :cascade do |t|
196 - t.string "solution"
197 - t.bigint "problem_id"
198 - t.bigint "submission_id"
199 - t.integer "type"
200 - t.index ["problem_id"], name: "index_solutions_on_problem_id"
201 - t.index ["submission_id"], name: "index_solutions_on_submission_id"
202 - end
203 -
204 - create_table "submission_view_logs", id: :integer, charset: "latin1", force: :cascade do |t|
225 + create_table "submission_view_logs", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
205 226 t.integer "user_id"
206 227 t.integer "submission_id"
207 228 t.datetime "created_at", precision: nil, null: false
208 229 t.datetime "updated_at", precision: nil, null: false
209 230 end
210 231
211 - create_table "submissions", id: :bigint, default: nil, charset: "utf8", force: :cascade do |t|
232 + create_table "submissions", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
212 233 t.integer "user_id"
213 234 t.integer "problem_id"
214 235 t.integer "language_id"
@@ -216,10 +237,10
216 237 t.binary "binary"
217 238 t.datetime "submitted_at", precision: nil
218 239 t.datetime "compiled_at", precision: nil
219 - t.text "compiler_message", size: :medium
240 + t.text "compiler_message"
220 241 t.datetime "graded_at", precision: nil
221 242 t.integer "points"
222 - t.text "grader_comment", size: :medium
243 + t.text "grader_comment"
223 244 t.integer "number"
224 245 t.string "source_filename"
225 246 t.float "max_runtime"
@@ -240,7 +261,7
240 261 t.datetime "updated_at", precision: nil, null: false
241 262 end
242 263
243 - create_table "tasks", id: :integer, charset: "utf8", force: :cascade do |t|
264 + create_table "tasks", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
244 265 t.integer "submission_id"
245 266 t.datetime "created_at", precision: nil
246 267 t.integer "status"
@@ -249,15 +270,15
249 270 t.index ["submission_id"], name: "index_tasks_on_submission_id"
250 271 end
251 272
252 - create_table "test_pairs", id: :integer, charset: "utf8", force: :cascade do |t|
273 + create_table "test_pairs", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
253 274 t.integer "problem_id"
254 - t.text "input", size: :long
255 - t.text "solution", size: :long
275 + t.text "input", size: :medium
276 + t.text "solution", size: :medium
256 277 t.datetime "created_at", precision: nil, null: false
257 278 t.datetime "updated_at", precision: nil, null: false
258 279 end
259 280
260 - create_table "test_requests", id: :integer, charset: "utf8", force: :cascade do |t|
281 + create_table "test_requests", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
261 282 t.integer "user_id"
262 283 t.integer "problem_id"
263 284 t.integer "submission_id"
@@ -268,7 +289,7
268 289 t.datetime "updated_at", precision: nil, null: false
269 290 t.datetime "submitted_at", precision: nil
270 291 t.datetime "compiled_at", precision: nil
271 - t.text "compiler_message", size: :medium
292 + t.text "compiler_message"
272 293 t.datetime "graded_at", precision: nil
273 294 t.string "grader_comment"
274 295 t.datetime "created_at", precision: nil, null: false
@@ -285,12 +306,12
285 306 t.integer "score"
286 307 t.text "input", size: :long
287 308 t.text "sol", size: :long
288 - t.datetime "created_at", precision: nil, null: false
289 - t.datetime "updated_at", precision: nil, null: false
309 + t.datetime "created_at", precision: nil
310 + t.datetime "updated_at", precision: nil
290 311 t.index ["problem_id"], name: "index_testcases_on_problem_id"
291 312 end
292 313
293 - create_table "user_contest_stats", id: :integer, charset: "utf8", force: :cascade do |t|
314 + create_table "user_contest_stats", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
294 315 t.integer "user_id"
295 316 t.datetime "started_at", precision: nil
296 317 t.datetime "created_at", precision: nil, null: false
@@ -298,7 +319,7
298 319 t.boolean "forced_logout"
299 320 end
300 321
301 - create_table "users", id: :integer, charset: "utf8", force: :cascade do |t|
322 + create_table "users", id: :integer, charset: "utf8mb3", collation: "utf8mb3_unicode_ci", force: :cascade do |t|
302 323 t.string "login", limit: 50
303 324 t.string "full_name"
304 325 t.string "hashed_password"
@@ -310,16 +331,16
310 331 t.boolean "activated", default: false
311 332 t.datetime "created_at", precision: nil
312 333 t.datetime "updated_at", precision: nil
313 - t.string "section"
314 334 t.boolean "enabled", default: true
315 335 t.string "remark"
316 336 t.string "last_ip"
337 + t.string "section"
317 338 t.integer "default_language"
318 339 t.index ["login"], name: "index_users_on_login", unique: true
319 340 end
320 341
342 + add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id"
343 + add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id"
321 344 add_foreign_key "problems_tags", "problems"
322 345 add_foreign_key "problems_tags", "tags"
323 - add_foreign_key "solutions", "problems"
324 - add_foreign_key "solutions", "submissions"
325 346 end
This diff has been collapsed as it changes many lines, (991 lines changed) Show them Hide them
@@ -1,521 +1,714
1 1 !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
2 2 !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
3 - !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
4 - !_TAG_PROGRAM_NAME Exuberant Ctags //
5 - !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
6 - !_TAG_PROGRAM_VERSION 5.8 //
7 - ActiveSupport test/test_helper.rb /^class ActiveSupport::TestCase$/;" c
8 - AddActivatedToUsers db/migrate/20081204122651_add_activated_to_users.rb /^class AddActivatedToUsers < ActiveRecord::Migration$/;" c
9 - AddBodyToProblems db/migrate/026_add_body_to_problems.rb /^class AddBodyToProblems < ActiveRecord::Migration$/;" c
10 - AddCommonExtToLanguages db/migrate/20090416235658_add_common_ext_to_languages.rb /^class AddCommonExtToLanguages < ActiveRecord::Migration$/;" c
11 - AddContestFlagToAnnouncements db/migrate/20090206145016_add_contest_flag_to_announcements.rb /^class AddContestFlagToAnnouncements < ActiveRecord::Migration$/;" c
12 - AddCountryToSitesAndUsers db/migrate/035_add_country_to_sites_and_users.rb /^class AddCountryToSitesAndUsers < ActiveRecord::Migration$/;" c
13 - AddDescriptionFilenameToProblems db/migrate/20100219014840_add_description_filename_to_problems.rb /^class AddDescriptionFilenameToProblems < ActiveRecord::Migration$/;" c
14 - AddDescriptionToConfig db/migrate/20100124040107_add_description_to_config.rb /^class AddDescriptionToConfig < ActiveRecord::Migration$/;" c
15 - AddEmailToUsers db/migrate/012_add_email_to_users.rb /^class AddEmailToUsers < ActiveRecord::Migration$/;" c
16 - AddForcedLogoutToUserContestStat db/migrate/20100328123325_add_forced_logout_to_user_contest_stat.rb /^class AddForcedLogoutToUserContestStat < ActiveRecord::Migration$/;" c
17 - AddFrontpageFlagToAnnouncement db/migrate/20081107145815_add_frontpage_flag_to_announcement.rb /^class AddFrontpageFlagToAnnouncement < ActiveRecord::Migration$/;" c
18 - AddIndexToSubmissions db/migrate/005_add_index_to_submissions.rb /^class AddIndexToSubmissions < ActiveRecord::Migration$/;" c
19 - AddIpToSubmissions db/migrate/20140917150629_add_ip_to_submissions.rb /^class AddIpToSubmissions < ActiveRecord::Migration$/;" c
20 - AddLanguageExt db/migrate/011_add_language_ext.rb /^class AddLanguageExt < ActiveRecord::Migration$/;" c
21 - AddMoreDetailToSubmission db/migrate/20140823031747_add_more_detail_to_submission.rb /^class AddMoreDetailToSubmission < ActiveRecord::Migration$/;" c
22 - AddNameToContests db/migrate/20100303095700_add_name_to_contests.rb /^class AddNameToContests < ActiveRecord::Migration$/;" c
23 - AddNotesToAnnouncements db/migrate/20100506163112_add_notes_to_announcements.rb /^class AddNotesToAnnouncements < ActiveRecord::Migration$/;" c
24 - AddNumberToSubmissions db/migrate/018_add_number_to_submissions.rb /^class AddNumberToSubmissions < ActiveRecord::Migration$/;" c
25 - AddRunstatColumnsToTestRequest db/migrate/023_add_runstat_columns_to_test_request.rb /^class AddRunstatColumnsToTestRequest < ActiveRecord::Migration$/;" c
26 - AddSessions db/migrate/009_add_sessions.rb /^class AddSessions < ActiveRecord::Migration$/;" c
27 - AddSiteToUserAndAddDefaultSite db/migrate/025_add_site_to_user_and_add_default_site.rb /^class AddSiteToUserAndAddDefaultSite < ActiveRecord::Migration$/;" c
28 - AddStatusToTasks db/migrate/015_add_status_to_tasks.rb /^class AddStatusToTasks < ActiveRecord::Migration$/;" c
29 - AddSupportsForOutputOnlyProblems db/migrate/031_add_supports_for_output_only_problems.rb /^class AddSupportsForOutputOnlyProblems < ActiveRecord::Migration$/;" c
30 - AddTaskToGraderProcess db/migrate/016_add_task_to_grader_process.rb /^class AddTaskToGraderProcess < ActiveRecord::Migration$/;" c
31 - AddTaskTypeToGraderProcesses db/migrate/033_add_task_type_to_grader_processes.rb /^class AddTaskTypeToGraderProcesses < ActiveRecord::Migration$/;" c
32 - AddTerminatedToGraderProcesses db/migrate/20090426131044_add_terminated_to_grader_processes.rb /^class AddTerminatedToGraderProcesses < ActiveRecord::Migration$/;" c
33 - AddTestAllowedToProblems db/migrate/029_add_test_allowed_to_problems.rb /^class AddTestAllowedToProblems < ActiveRecord::Migration$/;" c
34 - AddTimestampsToUsers db/migrate/20081210021333_add_timestamps_to_users.rb /^class AddTimestampsToUsers < ActiveRecord::Migration$/;" c
35 - AddTitleToAnnouncements db/migrate/20090815171610_add_title_to_announcements.rb /^class AddTitleToAnnouncements < ActiveRecord::Migration$/;" c
36 - AddUrlToProblem db/migrate/013_add_url_to_problem.rb /^class AddUrlToProblem < ActiveRecord::Migration$/;" c
3 + !_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/
4 + !_TAG_OUTPUT_FILESEP slash /slash or backslash/
5 + !_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
6 + !_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
7 + !_TAG_PROC_CWD /home/dae/cafe_grader/web/ //
8 + !_TAG_PROGRAM_AUTHOR Universal Ctags Team //
9 + !_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
10 + !_TAG_PROGRAM_URL https://ctags.io/ /official site/
11 + !_TAG_PROGRAM_VERSION 5.9.0 /35b9c9ac/
12 + ALLOW_TEST_PAIR_IMPORT config/initializers/cafe_grader_config.rb /^ALLOW_TEST_PAIR_IMPORT = false$/;" C
13 + APP_PATH bin/rails /^APP_PATH = File.expand_path("..\/config\/application", __dir__)$/;" C
14 + APP_ROOT bin/setup /^APP_ROOT = File.expand_path("..", __dir__)$/;" C
15 + APP_ROOT bin/update /^APP_ROOT = File.expand_path('..', __dir__)$/;" C
16 + APP_ROOT bin/yarn /^APP_ROOT = File.expand_path('..', __dir__)$/;" C
17 + AddActivatedToUsers db/migrate/20081204122651_add_activated_to_users.rb /^class AddActivatedToUsers < ActiveRecord::Migration[4.2]$/;" c
18 + AddBodyToProblems db/migrate/026_add_body_to_problems.rb /^class AddBodyToProblems < ActiveRecord::Migration[4.2]$/;" c
19 + AddCommonExtToLanguages db/migrate/20090416235658_add_common_ext_to_languages.rb /^class AddCommonExtToLanguages < ActiveRecord::Migration[4.2]$/;" c
20 + AddConfigViewTest db/migrate/20161031063337_add_config_view_test.rb /^class AddConfigViewTest < ActiveRecord::Migration[4.2]$/;" c
21 + AddContestFlagToAnnouncements db/migrate/20090206145016_add_contest_flag_to_announcements.rb /^class AddContestFlagToAnnouncements < ActiveRecord::Migration[4.2]$/;" c
22 + AddCountryToSitesAndUsers db/migrate/035_add_country_to_sites_and_users.rb /^class AddCountryToSitesAndUsers < ActiveRecord::Migration[4.2]$/;" c
23 + AddDefaultLanguageToUser db/migrate/20210130121812_add_default_language_to_user.rb /^class AddDefaultLanguageToUser < ActiveRecord::Migration[5.2]$/;" c
24 + AddDescriptionFilenameToProblems db/migrate/20100219014840_add_description_filename_to_problems.rb /^class AddDescriptionFilenameToProblems < ActiveRecord::Migration[4.2]$/;" c
25 + AddDescriptionToConfig db/migrate/20100124040107_add_description_to_config.rb /^class AddDescriptionToConfig < ActiveRecord::Migration[4.2]$/;" c
26 + AddEmailToUsers db/migrate/012_add_email_to_users.rb /^class AddEmailToUsers < ActiveRecord::Migration[4.2]$/;" c
27 + AddEnabledToGroup db/migrate/20200813083020_add_enabled_to_group.rb /^class AddEnabledToGroup < ActiveRecord::Migration[5.2]$/;" c
28 + AddForcedLogoutToUserContestStat db/migrate/20100328123325_add_forced_logout_to_user_contest_stat.rb /^class AddForcedLogoutToUserContestStat < ActiveRecord::Migration[4.2]$/;" c
29 + AddFrontpageFlagToAnnouncement db/migrate/20081107145815_add_frontpage_flag_to_announcement.rb /^class AddFrontpageFlagToAnnouncement < ActiveRecord::Migration[4.2]$/;" c
30 + AddHeartBeatFull db/migrate/20170427070345_add_heart_beat_full.rb /^class AddHeartBeatFull < ActiveRecord::Migration[4.2]$/;" c
31 + AddIdToGroupUser db/migrate/20200404142959_add_id_to_group_user.rb /^class AddIdToGroupUser < ActiveRecord::Migration[5.2]$/;" c
32 + AddIndexToLogin db/migrate/20200405112919_add_index_to_login.rb /^class AddIndexToLogin < ActiveRecord::Migration[5.2]$/;" c
33 + AddIndexToSubmission db/migrate/20200404135714_add_index_to_submission.rb /^class AddIndexToSubmission < ActiveRecord::Migration[5.2]$/;" c
34 + AddIndexToSubmissions db/migrate/005_add_index_to_submissions.rb /^class AddIndexToSubmissions < ActiveRecord::Migration[4.2]$/;" c
35 + AddIndexToTask db/migrate/20170310110146_add_index_to_task.rb /^class AddIndexToTask < ActiveRecord::Migration[4.2]$/;" c
36 + AddIndexToTaskStatus db/migrate/20210809105935_add_index_to_task_status.rb /^class AddIndexToTaskStatus < ActiveRecord::Migration[5.2]$/;" c
37 + AddIpToSubmissions db/migrate/20140917150629_add_ip_to_submissions.rb /^class AddIpToSubmissions < ActiveRecord::Migration[4.2]$/;" c
38 + AddLanguageExt db/migrate/011_add_language_ext.rb /^class AddLanguageExt < ActiveRecord::Migration[4.2]$/;" c
39 + AddLastIpToUser db/migrate/20150827133841_add_last_ip_to_user.rb /^class AddLastIpToUser < ActiveRecord::Migration[4.2]$/;" c
40 + AddMoreConfig db/migrate/20150914223258_add_more_config.rb /^class AddMoreConfig < ActiveRecord::Migration[4.2]$/;" c
41 + AddMoreDetailToSubmission db/migrate/20140823031747_add_more_detail_to_submission.rb /^class AddMoreDetailToSubmission < ActiveRecord::Migration[4.2]$/;" c
42 + AddMoreToUsers db/migrate/20150203153534_add_more_to_users.rb /^class AddMoreToUsers < ActiveRecord::Migration[4.2]$/;" c
43 + AddNameToContests db/migrate/20100303095700_add_name_to_contests.rb /^class AddNameToContests < ActiveRecord::Migration[4.2]$/;" c
44 + AddNotesToAnnouncements db/migrate/20100506163112_add_notes_to_announcements.rb /^class AddNotesToAnnouncements < ActiveRecord::Migration[4.2]$/;" c
45 + AddNumberToSubmissions db/migrate/018_add_number_to_submissions.rb /^class AddNumberToSubmissions < ActiveRecord::Migration[4.2]$/;" c
46 + AddOnNavBarToAnnouncement db/migrate/20210124101028_add_on_nav_bar_to_announcement.rb /^class AddOnNavBarToAnnouncement < ActiveRecord::Migration[5.2]$/;" c
47 + AddRunstatColumnsToTestRequest db/migrate/023_add_runstat_columns_to_test_request.rb /^class AddRunstatColumnsToTestRequest < ActiveRecord::Migration[4.2]$/;" c
48 + AddSectionToUsers db/migrate/20140913060729_add_section_to_users.rb /^class AddSectionToUsers < ActiveRecord::Migration[4.2]$/;" c
49 + AddSessions db/migrate/009_add_sessions.rb /^class AddSessions < ActiveRecord::Migration[4.2]$/;" c
50 + AddSiteToUserAndAddDefaultSite db/migrate/025_add_site_to_user_and_add_default_site.rb /^class AddSiteToUserAndAddDefaultSite < ActiveRecord::Migration[4.2]$/;" c
51 + AddStatusToHeartBeat db/migrate/20150914155101_add_status_to_heart_beat.rb /^class AddStatusToHeartBeat < ActiveRecord::Migration[4.2]$/;" c
52 + AddStatusToTasks db/migrate/015_add_status_to_tasks.rb /^class AddStatusToTasks < ActiveRecord::Migration[4.2]$/;" c
53 + AddSupportsForOutputOnlyProblems db/migrate/031_add_supports_for_output_only_problems.rb /^class AddSupportsForOutputOnlyProblems < ActiveRecord::Migration[4.2]$/;" c
54 + AddTaskToGraderProcess db/migrate/016_add_task_to_grader_process.rb /^class AddTaskToGraderProcess < ActiveRecord::Migration[4.2]$/;" c
55 + AddTaskTypeToGraderProcesses db/migrate/033_add_task_type_to_grader_processes.rb /^class AddTaskTypeToGraderProcesses < ActiveRecord::Migration[4.2]$/;" c
56 + AddTerminatedToGraderProcesses db/migrate/20090426131044_add_terminated_to_grader_processes.rb /^class AddTerminatedToGraderProcesses < ActiveRecord::Migration[4.2]$/;" c
57 + AddTestAllowedToProblems db/migrate/029_add_test_allowed_to_problems.rb /^class AddTestAllowedToProblems < ActiveRecord::Migration[4.2]$/;" c
58 + AddTimestampsToUsers db/migrate/20081210021333_add_timestamps_to_users.rb /^class AddTimestampsToUsers < ActiveRecord::Migration[4.2]$/;" c
59 + AddTitleToAnnouncements db/migrate/20090815171610_add_title_to_announcements.rb /^class AddTitleToAnnouncements < ActiveRecord::Migration[4.2]$/;" c
60 + AddTypeToSubmission db/migrate/20220204080936_add_type_to_submission.rb /^class AddTypeToSubmission < ActiveRecord::Migration[7.0]$/;" c
61 + AddUrlToProblem db/migrate/013_add_url_to_problem.rb /^class AddUrlToProblem < ActiveRecord::Migration[4.2]$/;" c
62 + AddViewTestcaseToProblem db/migrate/20170124024527_add_view_testcase_to_problem.rb /^class AddViewTestcaseToProblem < ActiveRecord::Migration[4.2]$/;" c
63 + AdminTaskTest test/integration/admin_task_test.rb /^class AdminTaskTest < ActionDispatch::IntegrationTest$/;" c
37 64 Announcement app/models/announcement.rb /^class Announcement < ActiveRecord::Base$/;" c
38 - AnnouncementTest test/unit/announcement_test.rb /^class AnnouncementTest < ActiveSupport::TestCase$/;" c
39 65 AnnouncementsController app/controllers/announcements_controller.rb /^class AnnouncementsController < ApplicationController$/;" c
66 + AnnouncementsControllerTest test/controllers/announcements_controller_test.rb /^class AnnouncementsControllerTest < ActionController::TestCase$/;" c
40 67 AnnouncementsHelper app/helpers/announcements_helper.rb /^module AnnouncementsHelper$/;" m
41 - Application config/application.rb /^ class Application < Rails::Application$/;" c class:CafeGrader
68 + AnnouncementsTest test/system/announcements_test.rb /^class AnnouncementsTest < ApplicationSystemTestCase$/;" c
69 + Application config/application.rb /^ class Application < Rails::Application$/;" c module:CafeGrader
42 70 ApplicationController app/controllers/application_controller.rb /^class ApplicationController < ActionController::Base$/;" c
43 71 ApplicationHelper app/helpers/application_helper.rb /^module ApplicationHelper$/;" m
44 - BrowsingTest test/performance/browsing_test.rb /^class BrowsingTest < ActionDispatch::PerformanceTest$/;" c
72 + ApplicationRecord app/models/application_record.rb /^class ApplicationRecord < ActiveRecord::Base$/;" c
73 + ApplicationSystemTestCase test/application_system_test_case.rb /^class ApplicationSystemTestCase < ActionDispatch::SystemTestCase$/;" c
74 + BOOTSTRAP_FLASH_MSG app/helpers/application_helper.rb /^ BOOTSTRAP_FLASH_MSG = {$/;" C module:ApplicationHelper
75 + CONFIGURATIONS db/seeds.rb /^CONFIGURATIONS = $/;" C
76 + CONTEST_TIME_LIMIT_KEY app/models/grader_configuration.rb /^ CONTEST_TIME_LIMIT_KEY = 'contest.time_limit'$/;" C class:GraderConfiguration
45 77 CafeGrader config/application.rb /^module CafeGrader$/;" m
46 - ChangeCompilerMessageTypeTestRequest db/migrate/021_change_compiler_message_type_test_request.rb /^class ChangeCompilerMessageTypeTestRequest < ActiveRecord::Migration$/;" c
47 - ChangeInputSolutionFieldLimitInTestPair db/migrate/20100129041917_change_input_solution_field_limit_in_test_pair.rb /^class ChangeInputSolutionFieldLimitInTestPair < ActiveRecord::Migration$/;" c
48 - ChangeUserLoginStringLimit db/migrate/20081215012843_change_user_login_string_limit.rb /^class ChangeUserLoginStringLimit < ActiveRecord::Migration$/;" c
49 - ConfigSpecHelperMethods spec/config_spec_helper.rb /^module ConfigSpecHelperMethods$/;" m
50 - ConfigurationTest test/unit/configuration_test.rb /^class ConfigurationTest < ActiveSupport::TestCase$/;" c
78 + ChangeCompilerMessageTypeTestRequest db/migrate/021_change_compiler_message_type_test_request.rb /^class ChangeCompilerMessageTypeTestRequest < ActiveRecord::Migration[4.2]$/;" c
79 + ChangeInputSolutionFieldLimitInTestPair db/migrate/20100129041917_change_input_solution_field_limit_in_test_pair.rb /^class ChangeInputSolutionFieldLimitInTestPair < ActiveRecord::Migration[4.2]$/;" c
80 + ChangeSubmissionSourceSize db/migrate/20180612102327_change_submission_source_size.rb /^class ChangeSubmissionSourceSize < ActiveRecord::Migration[4.2]$/;" c
81 + ChangeTestcaseSize db/migrate/20170123162543_change_testcase_size.rb /^class ChangeTestcaseSize < ActiveRecord::Migration[4.2]$/;" c
82 + ChangeUserLoginStringLimit db/migrate/20081215012843_change_user_login_string_limit.rb /^class ChangeUserLoginStringLimit < ActiveRecord::Migration[4.2]$/;" c
83 + ChangeUseridOnLogin db/migrate/20150503164846_change_userid_on_login.rb /^class ChangeUseridOnLogin < ActiveRecord::Migration[4.2]$/;" c
51 84 ConfigurationsController app/controllers/configurations_controller.rb /^class ConfigurationsController < ApplicationController$/;" c
52 85 ConfigurationsHelper app/helpers/configurations_helper.rb /^module ConfigurationsHelper$/;" m
53 86 Contest app/models/contest.rb /^class Contest < ActiveRecord::Base$/;" c
54 87 ContestManagementController app/controllers/contest_management_controller.rb /^class ContestManagementController < ApplicationController$/;" c
55 88 ContestManagementHelper app/helpers/contest_management_helper.rb /^module ContestManagementHelper$/;" m
56 - ContestManagementHelperTest test/unit/helpers/contest_management_helper_test.rb /^class ContestManagementHelperTest < ActionView::TestCase$/;" c
57 - ContestManagementSessionMethods spec/integration/contest_managements_spec.rb /^ module ContestManagementSessionMethods$/;" m
58 - ContestTest test/unit/contest_test.rb /^class ContestTest < ActiveSupport::TestCase$/;" c
59 89 ContestsController app/controllers/contests_controller.rb /^class ContestsController < ApplicationController$/;" c
60 90 ContestsHelper app/helpers/contests_helper.rb /^module ContestsHelper$/;" m
61 - ContestsHelperTest test/unit/helpers/contests_helper_test.rb /^class ContestsHelperTest < ActionView::TestCase$/;" c
62 91 Country app/models/country.rb /^class Country < ActiveRecord::Base$/;" c
63 - CountryTest test/unit/country_test.rb /^class CountryTest < ActiveSupport::TestCase$/;" c
64 - CreateAnnouncements db/migrate/030_create_announcements.rb /^class CreateAnnouncements < ActiveRecord::Migration$/;" c
65 - CreateConfigurations db/migrate/022_create_configurations.rb /^class CreateConfigurations < ActiveRecord::Migration$/;" c
66 - CreateContests db/migrate/20100216105730_create_contests.rb /^class CreateContests < ActiveRecord::Migration$/;" c
67 - CreateContestsProblemsJoinTable db/migrate/20100216162940_create_contests_problems_join_table.rb /^class CreateContestsProblemsJoinTable < ActiveRecord::Migration$/;" c
68 - CreateContestsUsersJoinTable db/migrate/20100216162324_create_contests_users_join_table.rb /^class CreateContestsUsersJoinTable < ActiveRecord::Migration$/;" c
69 - CreateCountries db/migrate/034_create_countries.rb /^class CreateCountries < ActiveRecord::Migration$/;" c
70 - CreateDescriptions db/migrate/027_create_descriptions.rb /^class CreateDescriptions < ActiveRecord::Migration$/;" c
71 - CreateGraderProcesses db/migrate/014_create_grader_processes.rb /^class CreateGraderProcesses < ActiveRecord::Migration$/;" c
72 - CreateLanguages db/migrate/004_create_languages.rb /^class CreateLanguages < ActiveRecord::Migration$/;" c
73 - CreateLogins db/migrate/20140826095949_create_logins.rb /^class CreateLogins < ActiveRecord::Migration$/;" c
74 - CreateMessages db/migrate/032_create_messages.rb /^class CreateMessages < ActiveRecord::Migration$/;" c
75 - CreateProblems db/migrate/002_create_problems.rb /^class CreateProblems < ActiveRecord::Migration$/;" c
76 - CreateRights db/migrate/007_create_rights.rb /^class CreateRights < ActiveRecord::Migration$/;" c
77 - CreateRoles db/migrate/006_create_roles.rb /^class CreateRoles < ActiveRecord::Migration$/;" c
78 - CreateSites db/migrate/024_create_sites.rb /^class CreateSites < ActiveRecord::Migration$/;" c
79 - CreateSubmissions db/migrate/003_create_submissions.rb /^class CreateSubmissions < ActiveRecord::Migration$/;" c
80 - CreateTasks db/migrate/008_create_tasks.rb /^class CreateTasks < ActiveRecord::Migration$/;" c
81 - CreateTestPairs db/migrate/20100113094740_create_test_pairs.rb /^class CreateTestPairs < ActiveRecord::Migration$/;" c
82 - CreateTestRequests db/migrate/019_create_test_requests.rb /^class CreateTestRequests < ActiveRecord::Migration$/;" c
83 - CreateUserContestStats db/migrate/20100124054458_create_user_contest_stats.rb /^class CreateUserContestStats < ActiveRecord::Migration$/;" c
84 - CreateUsers db/migrate/001_create_users.rb /^class CreateUsers < ActiveRecord::Migration$/;" c
92 + CreateActiveStorageTables db/migrate/20220927070334_create_active_storage_tables.active_storage.rb /^class CreateActiveStorageTables < ActiveRecord::Migration[5.2]$/;" c
93 + CreateAnnouncements db/migrate/030_create_announcements.rb /^class CreateAnnouncements < ActiveRecord::Migration[4.2]$/;" c
94 + CreateConfigurations db/migrate/022_create_configurations.rb /^class CreateConfigurations < ActiveRecord::Migration[4.2]$/;" c
95 + CreateContests db/migrate/20100216105730_create_contests.rb /^class CreateContests < ActiveRecord::Migration[4.2]$/;" c
96 + CreateContestsProblemsJoinTable db/migrate/20100216162940_create_contests_problems_join_table.rb /^class CreateContestsProblemsJoinTable < ActiveRecord::Migration[4.2]$/;" c
97 + CreateContestsUsersJoinTable db/migrate/20100216162324_create_contests_users_join_table.rb /^class CreateContestsUsersJoinTable < ActiveRecord::Migration[4.2]$/;" c
98 + CreateCountries db/migrate/034_create_countries.rb /^class CreateCountries < ActiveRecord::Migration[4.2]$/;" c
99 + CreateDescriptions db/migrate/027_create_descriptions.rb /^class CreateDescriptions < ActiveRecord::Migration[4.2]$/;" c
100 + CreateGraderProcesses db/migrate/014_create_grader_processes.rb /^class CreateGraderProcesses < ActiveRecord::Migration[4.2]$/;" c
101 + CreateGroups db/migrate/20170911091143_create_groups.rb /^class CreateGroups < ActiveRecord::Migration[4.2]$/;" c
102 + CreateHeartBeats db/migrate/20150914090545_create_heart_beats.rb /^class CreateHeartBeats < ActiveRecord::Migration[4.2]$/;" c
103 + CreateLanguages db/migrate/004_create_languages.rb /^class CreateLanguages < ActiveRecord::Migration[4.2]$/;" c
104 + CreateLogins db/migrate/20140826095949_create_logins.rb /^class CreateLogins < ActiveRecord::Migration[4.2]$/;" c
105 + CreateMessages db/migrate/032_create_messages.rb /^class CreateMessages < ActiveRecord::Migration[4.2]$/;" c
106 + CreateProblemTags db/migrate/20170914150742_create_problem_tags.rb /^class CreateProblemTags < ActiveRecord::Migration[4.2]$/;" c
107 + CreateProblems db/migrate/002_create_problems.rb /^class CreateProblems < ActiveRecord::Migration[4.2]$/;" c
108 + CreateRights db/migrate/007_create_rights.rb /^class CreateRights < ActiveRecord::Migration[4.2]$/;" c
109 + CreateRoles db/migrate/006_create_roles.rb /^class CreateRoles < ActiveRecord::Migration[4.2]$/;" c
110 + CreateSites db/migrate/024_create_sites.rb /^class CreateSites < ActiveRecord::Migration[4.2]$/;" c
111 + CreateSubmissionViewLogs db/migrate/20150827131927_create_submission_view_logs.rb /^class CreateSubmissionViewLogs < ActiveRecord::Migration[4.2]$/;" c
112 + CreateSubmissions db/migrate/003_create_submissions.rb /^class CreateSubmissions < ActiveRecord::Migration[4.2]$/;" c
113 + CreateTags db/migrate/20170914150545_create_tags.rb /^class CreateTags < ActiveRecord::Migration[4.2]$/;" c
114 + CreateTasks db/migrate/008_create_tasks.rb /^class CreateTasks < ActiveRecord::Migration[4.2]$/;" c
115 + CreateTestPairs db/migrate/20100113094740_create_test_pairs.rb /^class CreateTestPairs < ActiveRecord::Migration[4.2]$/;" c
116 + CreateTestRequests db/migrate/019_create_test_requests.rb /^class CreateTestRequests < ActiveRecord::Migration[4.2]$/;" c
117 + CreateTestcases db/migrate/20161014091417_create_testcases.rb /^class CreateTestcases < ActiveRecord::Migration[4.2]$/;" c
118 + CreateUserContestStats db/migrate/20100124054458_create_user_contest_stats.rb /^class CreateUserContestStats < ActiveRecord::Migration[4.2]$/;" c
119 + CreateUsers db/migrate/001_create_users.rb /^class CreateUsers < ActiveRecord::Migration[4.2]$/;" c
120 + DEFAULT_MEMORY_LIMIT app/models/problem.rb /^ DEFAULT_MEMORY_LIMIT = 32$/;" C class:Problem
121 + DEFAULT_TIME_LIMIT app/models/problem.rb /^ DEFAULT_TIME_LIMIT = 1$/;" C class:Problem
85 122 Description app/models/description.rb /^class Description < ActiveRecord::Base$/;" c
86 - DescriptionTest test/unit/description_test.rb /^class DescriptionTest < ActiveSupport::TestCase$/;" c
123 + GRADER_ROOT_DIR config/initializers/cafe_grader_config.rb /^GRADER_ROOT_DIR = ''$/;" C
124 + GRADER_ROOT_DIR config/initializers/cafe_grader_config.rb /^GRADER_ROOT_DIR = '\/home\/dae\/cafe_grader\/judge'$/;" C
125 + GRADING_RESULT_DIR config/initializers/cafe_grader_config.rb /^GRADING_RESULT_DIR = 'RESULT-DIR'$/;" C
126 + GRADING_RESULT_DIR config/initializers/cafe_grader_config.rb /^GRADING_RESULT_DIR = '\/home\/dae\/cafe_grader\/judge\/result'$/;" C
87 127 GraderConfiguration app/models/grader_configuration.rb /^class GraderConfiguration < ActiveRecord::Base$/;" c
88 128 GraderProcess app/models/grader_process.rb /^class GraderProcess < ActiveRecord::Base$/;" c
89 - GraderProcessTest test/unit/grader_process_test.rb /^class GraderProcessTest < ActiveSupport::TestCase$/;" c
90 129 GraderScript lib/grader_script.rb /^module GraderScript$/;" m
91 130 GradersController app/controllers/graders_controller.rb /^class GradersController < ApplicationController$/;" c
92 131 GradersControllerTest test/functional/graders_controller_test.rb /^class GradersControllerTest < ActionController::TestCase$/;" c
93 132 GradersHelper app/helpers/graders_helper.rb /^module GradersHelper$/;" m
133 + Group app/models/group.rb /^class Group < ActiveRecord::Base$/;" c
134 + GroupProblem app/models/group_problem.rb /^class GroupProblem < ActiveRecord::Base$/;" c
135 + GroupUser app/models/group_user.rb /^class GroupUser < ActiveRecord::Base$/;" c
136 + GroupsController app/controllers/groups_controller.rb /^class GroupsController < ApplicationController$/;" c
137 + GroupsControllerTest test/controllers/groups_controller_test.rb /^class GroupsControllerTest < ActionController::TestCase$/;" c
138 + GroupsHelper app/helpers/groups_helper.rb /^module GroupsHelper$/;" m
139 + HeartBeat app/models/heart_beat.rb /^class HeartBeat < ActiveRecord::Base$/;" c
140 + HeartbeatController app/controllers/heartbeat_controller.rb /^class HeartbeatController < ApplicationController$/;" c
94 141 Language app/models/language.rb /^class Language < ActiveRecord::Base$/;" c
95 - LanguageTest test/unit/language_test.rb /^class LanguageTest < Test::Unit::TestCase$/;" c
96 142 Login app/models/login.rb /^class Login < ActiveRecord::Base$/;" c
97 143 LoginController app/controllers/login_controller.rb /^class LoginController < ApplicationController$/;" c
98 144 LoginController test/functional/login_controller_test.rb /^class LoginController; def rescue_action(e) raise e end; end$/;" c
99 145 LoginControllerTest test/functional/login_controller_test.rb /^class LoginControllerTest < ActionController::TestCase$/;" c
100 146 LoginHelper app/helpers/login_helper.rb /^module LoginHelper$/;" m
147 + LoginTest test/integration/login_test.rb /^class LoginTest < ActionDispatch::IntegrationTest$/;" c
148 + MULTICONTESTS_KEY app/models/grader_configuration.rb /^ MULTICONTESTS_KEY = 'system.multicontests'$/;" C class:GraderConfiguration
149 + MULTIPLE_IP_LOGIN_CONF_KEY app/controllers/application_controller.rb /^ MULTIPLE_IP_LOGIN_CONF_KEY = 'right.multiple_ip_login'$/;" C class:ApplicationController
150 + MULTIPLE_IP_LOGIN_KEY app/models/grader_configuration.rb /^ MULTIPLE_IP_LOGIN_KEY = 'right.multiple_ip_login'$/;" C class:GraderConfiguration
101 151 MailHelperMethods lib/mail_helper_methods.rb /^module MailHelperMethods$/;" m
102 152 MainController app/controllers/main_controller.rb /^class MainController < ApplicationController$/;" c
103 153 MainHelper app/helpers/main_helper.rb /^module MainHelper$/;" m
104 - MainSessionMethods spec/integration/contest_managements_spec.rb /^ module MainSessionMethods$/;" m
105 154 Message app/models/message.rb /^class Message < ActiveRecord::Base$/;" c
106 - MessageTest test/unit/message_test.rb /^class MessageTest < ActiveSupport::TestCase$/;" c
107 155 MessagesController app/controllers/messages_controller.rb /^class MessagesController < ApplicationController$/;" c
108 156 MessagesHelper app/helpers/messages_helper.rb /^module MessagesHelper$/;" m
109 - Problem app/models/problem.rb /^class Problem < ActiveRecord::Base$/;" c
110 - ProblemTest test/unit/problem_test.rb /^class ProblemTest < Test::Unit::TestCase$/;" c
157 + ModifyGraderProcess db/migrate/20161008050135_modify_grader_process.rb /^class ModifyGraderProcess < ActiveRecord::Migration[4.2]$/;" c
158 + PROGRAMMING_AUTHEN_URL lib/programming_authenticator.rb /^ PROGRAMMING_AUTHEN_URL = "https:\/\/programming.in.th\/authen.php"$/;" C class:ProgrammingAuthenticator
159 + Problem app/models/problem.rb /^class Problem < ApplicationRecord$/;" c
160 + ProblemTag app/models/problem_tag.rb /^class ProblemTag < ActiveRecord::Base$/;" c
161 + ProblemTagTest test/models/problem_tag_test.rb /^class ProblemTagTest < ActiveSupport::TestCase$/;" c
111 162 ProblemsController app/controllers/problems_controller.rb /^class ProblemsController < ApplicationController$/;" c
112 163 ProblemsHelper app/helpers/problems_helper.rb /^module ProblemsHelper$/;" m
113 - RailsSpecServer script/spec_server /^ class RailsSpecServer$/;" c class:Spec.Runner
114 - RefactorProblemBodyToDescription db/migrate/028_refactor_problem_body_to_description.rb /^class RefactorProblemBodyToDescription < ActiveRecord::Migration$/;" c
115 - RenameConfigurationsToGraderConfigurations db/migrate/20121001033508_rename_configurations_to_grader_configurations.rb /^class RenameConfigurationsToGraderConfigurations < ActiveRecord::Migration$/;" c
116 - RenameGraderProcessColumnIpToHost db/migrate/017_rename_grader_process_column_ip_to_host.rb /^class RenameGraderProcessColumnIpToHost < ActiveRecord::Migration$/;" c
164 + ProgrammingAuthenticator lib/programming_authenticator.rb /^class ProgrammingAuthenticator$/;" c
165 + RefactorProblemBodyToDescription db/migrate/028_refactor_problem_body_to_description.rb /^class RefactorProblemBodyToDescription < ActiveRecord::Migration[4.2]$/;" c
166 + RenameConfigurationsToGraderConfigurations db/migrate/20121001033508_rename_configurations_to_grader_configurations.rb /^class RenameConfigurationsToGraderConfigurations < ActiveRecord::Migration[4.2]$/;" c
167 + RenameGraderProcessColumnIpToHost db/migrate/017_rename_grader_process_column_ip_to_host.rb /^class RenameGraderProcessColumnIpToHost < ActiveRecord::Migration[4.2]$/;" c
117 168 ReportController app/controllers/report_controller.rb /^class ReportController < ApplicationController$/;" c
118 169 ReportHelper app/helpers/report_helper.rb /^module ReportHelper$/;" m
119 170 Right app/models/right.rb /^class Right < ActiveRecord::Base$/;" c
120 - RightTest test/unit/right_test.rb /^class RightTest < Test::Unit::TestCase$/;" c
121 171 Role app/models/role.rb /^class Role < ActiveRecord::Base$/;" c
122 - RoleTest test/unit/role_test.rb /^class RoleTest < Test::Unit::TestCase$/;" c
123 - Runner script/spec_server /^ module Runner$/;" m class:Spec
172 + SINGLE_USER_KEY app/models/grader_configuration.rb /^ SINGLE_USER_KEY = 'system.single_user_mode'$/;" C class:GraderConfiguration
173 + SINGLE_USER_MODE_CONF_KEY app/controllers/application_controller.rb /^ SINGLE_USER_MODE_CONF_KEY = 'system.single_user_mode'$/;" C class:ApplicationController
174 + STATUS_COMPLETE app/models/task.rb /^ STATUS_COMPLETE = 2$/;" C class:Task
175 + STATUS_GRADING app/models/task.rb /^ STATUS_GRADING = 0$/;" C class:Task
176 + STATUS_INQUEUE app/models/task.rb /^ STATUS_INQUEUE = 1$/;" C class:Task
177 + SYSTEM_MODE_CONF_KEY app/models/grader_configuration.rb /^ SYSTEM_MODE_CONF_KEY = 'system.mode'$/;" C class:GraderConfiguration
178 + SYSTEM_USE_PROBLEM_GROUP app/models/grader_configuration.rb /^ SYSTEM_USE_PROBLEM_GROUP = 'system.use_problem_group'$/;" C class:GraderConfiguration
179 + SignInHelper test/test_helper.rb /^module SignInHelper$/;" m
124 180 Site app/models/site.rb /^class Site < ActiveRecord::Base$/;" c
125 181 SiteController app/controllers/site_controller.rb /^class SiteController < ApplicationController$/;" c
126 182 SiteHelper app/helpers/site_helper.rb /^module SiteHelper$/;" m
127 - SiteTest test/unit/site_test.rb /^class SiteTest < ActiveSupport::TestCase$/;" c
128 183 SitesController app/controllers/sites_controller.rb /^class SitesController < ApplicationController$/;" c
129 184 SitesHelper app/helpers/sites_helper.rb /^module SitesHelper$/;" m
130 185 SizeFilterHandler config/size_filter_handler.rb /^class SizeFilterHandler < Mongrel::HttpHandler$/;" c
131 - Spec script/spec_server /^module Spec$/;" m
132 - Submission app/models/submission.rb /^class Submission < ActiveRecord::Base$/;" c
133 - SubmissionTest test/unit/submission_test.rb /^class SubmissionTest < Test::Unit::TestCase$/;" c
186 + SourcesHelper app/helpers/sources_helper.rb /^module SourcesHelper$/;" m
187 + Submission app/models/submission.rb /^class Submission < ApplicationRecord$/;" c
188 + SubmissionViewLog app/models/submission_view_log.rb /^class SubmissionViewLog < ActiveRecord::Base$/;" c
189 + SubmissionsController app/controllers/submissions_controller.rb /^class SubmissionsController < ApplicationController$/;" c
190 + SubmissionsHelper app/helpers/submissions_helper.rb /^module SubmissionsHelper$/;" m
191 + SubmissionsTest test/system/submissions_test.rb /^class SubmissionsTest < ApplicationSystemTestCase$/;" c
192 + TASK_GRADING_INFO_FILENAME config/initializers/cafe_grader_config.rb /^TASK_GRADING_INFO_FILENAME = Rails.root + 'config\/tasks.yml'$/;" C
193 + TEMP_DIR test/load/runner.rb /^TEMP_DIR = '.\/tmp'$/;" C
194 + TEST_REQUEST_EARLY_TIMEOUT_KEY app/models/grader_configuration.rb /^ TEST_REQUEST_EARLY_TIMEOUT_KEY = 'contest.test_request.early_timeout'$/;" C class:GraderConfiguration
195 + TEST_REQUEST_INPUT_FILE_DIR config/initializers/cafe_grader_config.rb /^TEST_REQUEST_INPUT_FILE_DIR = (Rails.root + 'data\/test_request\/input').to_s$/;" C
196 + TEST_REQUEST_OUTPUT_FILE_DIR config/initializers/cafe_grader_config.rb /^TEST_REQUEST_OUTPUT_FILE_DIR = (Rails.root + 'data\/test_request\/output').to_s$/;" C
197 + Tag app/models/tag.rb /^class Tag < ApplicationRecord$/;" c
198 + TagTest test/models/tag_test.rb /^class TagTest < ActiveSupport::TestCase$/;" c
199 + TagsController app/controllers/tags_controller.rb /^class TagsController < ApplicationController$/;" c
200 + TagsControllerTest test/controllers/tags_controller_test.rb /^class TagsControllerTest < ActionController::TestCase$/;" c
201 + TagsHelper app/helpers/tags_helper.rb /^module TagsHelper$/;" m
134 202 Task app/models/task.rb /^class Task < ActiveRecord::Base$/;" c
135 - TaskTest test/unit/task_test.rb /^class TaskTest < Test::Unit::TestCase$/;" c
136 203 TasksController app/controllers/tasks_controller.rb /^class TasksController < ApplicationController$/;" c
137 204 TasksHelper app/helpers/tasks_helper.rb /^module TasksHelper$/;" m
205 + TestCase test/test_helper.rb /^class ActiveSupport::TestCase$/;" c module:ActiveSupport mixin:include:SignInHelper
138 206 TestController app/controllers/test_controller.rb /^class TestController < ApplicationController$/;" c
139 207 TestHelper app/helpers/test_helper.rb /^module TestHelper$/;" m
140 208 TestPair app/models/test_pair.rb /^class TestPair < ActiveRecord::Base$/;" c
141 - TestPairTest test/unit/test_pair_test.rb /^class TestPairTest < ActiveSupport::TestCase$/;" c
142 209 TestRequest app/models/test_request.rb /^class TestRequest < Task$/;" c
143 - TestRequestTest test/unit/test_request_test.rb /^class TestRequestTest < ActiveSupport::TestCase$/;" c
210 + Testcase app/models/testcase.rb /^class Testcase < ActiveRecord::Base$/;" c
211 + TestcasesController app/controllers/testcases_controller.rb /^class TestcasesController < ApplicationController$/;" c
212 + TestcasesControllerTest test/controllers/testcases_controller_test.rb /^class TestcasesControllerTest < ActionController::TestCase$/;" c
213 + TestcasesHelper app/helpers/testcases_helper.rb /^module TestcasesHelper$/;" m
144 214 TestdataImporter lib/testdata_importer.rb /^class TestdataImporter$/;" c
145 - UNUSED_test_get_inqueue_concurrent test/unit/task_test.rb /^ def UNUSED_test_get_inqueue_concurrent$/;" f class:TaskTest
215 + UpdateHeartBeat db/migrate/20150916054105_update_heart_beat.rb /^class UpdateHeartBeat < ActiveRecord::Migration[4.2]$/;" c
146 216 User app/models/user.rb /^class User < ActiveRecord::Base$/;" c
147 - User spec/models/user_spec.rb /^ class User$/;" c
148 - UserAdminController app/controllers/user_admin_controller.rb /^class UserAdminController < ApplicationController$/;" c
217 + UserAdminController app/controllers/user_admin_controller.rb /^class UserAdminController < ApplicationController$/;" c mixin:include:MailHelperMethods
149 218 UserAdminController test/functional/user_admin_controller_test.rb /^class UserAdminController; def rescue_action(e) raise e end; end$/;" c
150 219 UserAdminControllerTest test/functional/user_admin_controller_test.rb /^class UserAdminControllerTest < ActionController::TestCase$/;" c
151 220 UserAdminHelper app/helpers/user_admin_helper.rb /^module UserAdminHelper$/;" m
152 221 UserContestStat app/models/user_contest_stat.rb /^class UserContestStat < ActiveRecord::Base$/;" c
153 - UserContestStatTest test/unit/user_contest_stat_test.rb /^class UserContestStatTest < ActiveSupport::TestCase$/;" c
154 - UserTest test/unit/user_test.rb /^class UserTest < Test::Unit::TestCase$/;" c
155 - UsersController app/controllers/users_controller.rb /^class UsersController < ApplicationController$/;" c
222 + UsersController app/controllers/users_controller.rb /^class UsersController < ApplicationController$/;" c mixin:include:MailHelperMethods
156 223 UsersHelper app/helpers/users_helper.rb /^module UsersHelper$/;" m
224 + UsersTest test/system/users_test.rb /^class UsersTest < ApplicationSystemTestCase$/;" c
225 + VIEW_TESTCASE app/models/grader_configuration.rb /^ VIEW_TESTCASE = 'right.view_testcase'$/;" C class:GraderConfiguration
226 + VISITOR_OPTION_LIST test/load/common_visitors.rb /^ VISITOR_OPTION_LIST = {}$/;" C
227 + VISITOR_OPTION_LIST test/load/runner.rb /^VISITOR_OPTION_LIST = visitor_option_list$/;" C
157 228 Visitor test/load/visitor_curl_cli.rb /^class Visitor$/;" c
158 - [] app/models/grader_configuration.rb /^ def self.[](key)$/;" F class:GraderConfiguration
229 + WHITELIST_IGNORE_CONF_KEY app/controllers/application_controller.rb /^ WHITELIST_IGNORE_CONF_KEY = 'right.whitelist_ignore'$/;" C class:ApplicationController
230 + WHITELIST_IP_CONF_KEY app/controllers/application_controller.rb /^ WHITELIST_IP_CONF_KEY = 'right.whitelist_ip'$/;" C class:ApplicationController
231 + [] app/models/grader_configuration.rb /^ def self.[](key)$/;" S class:GraderConfiguration
232 + __anon51604b610100 test/load/visitor_curl_cli.rb /^ c = Class.new(Visitor)$/;" c method:visitor
159 233 activation_key app/models/user.rb /^ def activation_key$/;" f class:User
160 234 active app/controllers/user_admin_controller.rb /^ def active$/;" f class:UserAdminController
235 + active_class_when app/helpers/application_helper.rb /^ def active_class_when(options = {},cname = @active_controller, aname = @active_action)$/;" f module:ApplicationHelper
236 + active_controller_action app/controllers/application_controller.rb /^ def active_controller_action$/;" f class:ApplicationController
237 + add_authenticator app/controllers/login_controller.rb /^ def self.add_authenticator(authenticator)$/;" S class:LoginController
238 + add_menu app/helpers/application_helper.rb /^ def add_menu(title, controller, action, html_option = {})$/;" f module:ApplicationHelper
239 + add_problem app/controllers/groups_controller.rb /^ def add_problem$/;" f class:GroupsController
161 240 add_replied_message app/models/message.rb /^ def add_replied_message(m)$/;" f class:Message
162 - add_to_contest app/controllers/problems_controller.rb /^ def add_to_contest$/;" f
163 - add_to_contest app/controllers/user_admin_controller.rb /^ def add_to_contest$/;" f
164 - admin app/controllers/user_admin_controller.rb /^ def admin$/;" f
241 + add_to_contest app/controllers/problems_controller.rb /^ def add_to_contest$/;" f class:ProblemsController
242 + add_to_contest app/controllers/user_admin_controller.rb /^ def add_to_contest$/;" f class:UserAdminController
243 + add_user app/controllers/groups_controller.rb /^ def add_user$/;" f class:GroupsController
244 + add_users_skip_existing app/models/group.rb /^ def add_users_skip_existing(users_list)$/;" f class:Group
245 + admin app/controllers/user_admin_controller.rb /^ def admin$/;" f class:UserAdminController
165 246 admin? app/models/user.rb /^ def admin?$/;" f class:User
166 247 admin_authorization app/controllers/application_controller.rb /^ def admin_authorization$/;" f class:ApplicationController
167 - admin_change_users_contest_to spec/integration/contest_managements_spec.rb /^ def admin_change_users_contest_to(user_list, contest, reset_timer)$/;" f
168 248 alias_for_editing app/models/user.rb /^ def alias_for_editing$/;" f class:User
169 249 alias_for_editing= app/models/user.rb /^ def alias_for_editing=(e)$/;" f class:User
170 - allow_test_pair_import? app/controllers/problems_controller.rb /^ def allow_test_pair_import?$/;" f
171 - allow_test_request app/models/grader_configuration.rb /^ def self.allow_test_request(user)$/;" F class:GraderConfiguration
172 - analysis_mode app/models/grader_configuration.rb /^ def self.analysis_mode?$/;" F class:GraderConfiguration
250 + allow_test_pair_import? app/controllers/problems_controller.rb /^ def allow_test_pair_import?$/;" f class:ProblemsController
251 + allow_test_request app/models/grader_configuration.rb /^ def self.allow_test_request(user)$/;" S class:GraderConfiguration
252 + analysis_mode? app/models/grader_configuration.rb /^ def self.analysis_mode?$/;" S class:GraderConfiguration
253 + announcement_params app/controllers/announcements_controller.rb /^ def announcement_params$/;" f class:AnnouncementsController
173 254 announcements app/controllers/main_controller.rb /^ def announcements$/;" f class:MainController
174 - append_to app/helpers/application_helper.rb /^ def append_to(option,label, controller, action)$/;" f class:ApplicationHelper
255 + append_to app/helpers/application_helper.rb /^ def append_to(option,label, controller, action)$/;" f module:ApplicationHelper
175 256 assign_default_contest app/models/user.rb /^ def assign_default_contest$/;" f class:User
176 257 assign_default_site app/models/user.rb /^ def assign_default_site$/;" f class:User
177 - assign_from_list app/controllers/user_admin_controller.rb /^ def assign_from_list$/;" f
258 + assign_from_list app/controllers/user_admin_controller.rb /^ def assign_from_list$/;" f class:UserAdminController
178 259 assign_language app/models/submission.rb /^ def assign_language$/;" f class:Submission
179 260 assign_latest_number_if_new_recond app/models/submission.rb /^ def assign_latest_number_if_new_recond$/;" f class:Submission
180 261 assign_problem app/models/submission.rb /^ def assign_problem$/;" f class:Submission
181 - authenticate app/controllers/application_controller.rb /^ def authenticate$/;" f class:ApplicationController
182 - authenticate app/models/user.rb /^ def self.authenticate(login, password)$/;" F class:User
262 + authenticate app/models/user.rb /^ def self.authenticate(login, password)$/;" S class:User
263 + authenticate lib/programming_authenticator.rb /^ def authenticate(login, password)$/;" f class:ProgrammingAuthenticator
264 + authenticate_by_ip_address app/controllers/application_controller.rb /^ def authenticate_by_ip_address$/;" f class:ApplicationController
183 265 authenticated? app/models/user.rb /^ def authenticated?(password)$/;" f class:User
184 - authenticated_by_cucas? app/models/user.rb /^ def authenticated_by_cucas?(password)$/;" f class:User
185 - authenticated_by_pop3? app/models/user.rb /^ def authenticated_by_pop3?(password)$/;" f class:User
186 266 authorization app/controllers/application_controller.rb /^ def authorization$/;" f class:ApplicationController
187 267 authorization_by_roles app/controllers/application_controller.rb /^ def authorization_by_roles(allowed_roles)$/;" f class:ApplicationController
268 + available_problems app/models/problem.rb /^ def self.available_problems$/;" S class:Problem
188 269 available_problems app/models/user.rb /^ def available_problems$/;" f class:User
189 270 available_problems_group_by_contests app/models/user.rb /^ def available_problems_group_by_contests$/;" f class:User
190 - build_replying_message_hierarchy app/controllers/messages_controller.rb /^ def build_replying_message_hierarchy(user)$/;" f class:MessagesController
191 - build_replying_message_hierarchy app/models/message.rb /^ def self.build_replying_message_hierarchy(*args)$/;" F class:Message
192 - bulk_mail app/controllers/user_admin_controller.rb /^ def bulk_mail$/;" f
193 - cache_ext_hash app/models/language.rb /^ def self.cache_ext_hash$/;" F class:Language
194 - call_grader lib/grader_script.rb /^ def self.call_grader(params)$/;" F class:GraderScript
195 - call_import_problem lib/grader_script.rb /^ def self.call_import_problem(problem_name, $/;" F class:GraderScript
271 + available_problems_in_group app/models/user.rb /^ def available_problems_in_group$/;" f class:User
272 + base_url test/load/visitor_curl_cli.rb /^ attr_accessor :base_url$/;" A class:Visitor
273 + base_url= test/load/visitor_curl_cli.rb /^ attr_accessor :base_url$/;" A class:Visitor
274 + bootstrap_class_for app/helpers/application_helper.rb /^ def bootstrap_class_for(flash_type)$/;" f module:ApplicationHelper
275 + build_replying_message_hierarchy app/controllers/messages_controller.rb /^ def build_replying_message_hierarchy(user)$/;" f class:MessagesController
276 + build_replying_message_hierarchy app/models/message.rb /^ def self.build_replying_message_hierarchy(*args)$/;" S class:Message
277 + bulk_mail app/controllers/user_admin_controller.rb /^ def bulk_mail$/;" f class:UserAdminController
278 + bulk_manage app/controllers/user_admin_controller.rb /^ def bulk_manage$/;" f class:UserAdminController
279 + cache_ext_hash app/models/language.rb /^ def self.cache_ext_hash$/;" S class:Language
280 + calculate_max_score app/controllers/report_controller.rb /^ def calculate_max_score(problems, users,since_id,until_id, get_last_score = false)$/;" f class:ReportController
281 + call_grader lib/grader_script.rb /^ def self.call_grader(params)$/;" S module:GraderScript
282 + call_import_problem lib/grader_script.rb /^ def self.call_import_problem(problem_name, $/;" S module:GraderScript
283 + call_import_testcase lib/grader_script.rb /^ def self.call_import_testcase(problem_name)$/;" S module:GraderScript
196 284 can_view_problem? app/models/user.rb /^ def can_view_problem?(problem)$/;" f class:User
197 285 change db/migrate/20121001033508_rename_configurations_to_grader_configurations.rb /^ def change$/;" f class:RenameConfigurationsToGraderConfigurations
198 286 change db/migrate/20140823031747_add_more_detail_to_submission.rb /^ def change$/;" f class:AddMoreDetailToSubmission
199 287 change db/migrate/20140826095949_create_logins.rb /^ def change$/;" f class:CreateLogins
288 + change db/migrate/20140913060729_add_section_to_users.rb /^ def change$/;" f class:AddSectionToUsers
200 289 change db/migrate/20140917150629_add_ip_to_submissions.rb /^ def change$/;" f class:AddIpToSubmissions
290 + change db/migrate/20150203153534_add_more_to_users.rb /^ def change$/;" f class:AddMoreToUsers
291 + change db/migrate/20150827131927_create_submission_view_logs.rb /^ def change$/;" f class:CreateSubmissionViewLogs
292 + change db/migrate/20150827133841_add_last_ip_to_user.rb /^ def change$/;" f class:AddLastIpToUser
293 + change db/migrate/20150914090545_create_heart_beats.rb /^ def change$/;" f class:CreateHeartBeats
294 + change db/migrate/20150914155101_add_status_to_heart_beat.rb /^ def change$/;" f class:AddStatusToHeartBeat
295 + change db/migrate/20161014091417_create_testcases.rb /^ def change$/;" f class:CreateTestcases
296 + change db/migrate/20170123162543_change_testcase_size.rb /^ def change$/;" f class:ChangeTestcaseSize
297 + change db/migrate/20170124024527_add_view_testcase_to_problem.rb /^ def change$/;" f class:AddViewTestcaseToProblem
298 + change db/migrate/20170310110146_add_index_to_task.rb /^ def change$/;" f class:AddIndexToTask
299 + change db/migrate/20170911091143_create_groups.rb /^ def change$/;" f class:CreateGroups
300 + change db/migrate/20170914150545_create_tags.rb /^ def change$/;" f class:CreateTags
301 + change db/migrate/20170914150742_create_problem_tags.rb /^ def change$/;" f class:CreateProblemTags
302 + change db/migrate/20180612102327_change_submission_source_size.rb /^ def change$/;" f class:ChangeSubmissionSourceSize
303 + change db/migrate/20200404135714_add_index_to_submission.rb /^ def change$/;" f class:AddIndexToSubmission
304 + change db/migrate/20200404142959_add_id_to_group_user.rb /^ def change$/;" f class:AddIdToGroupUser
305 + change db/migrate/20200405112919_add_index_to_login.rb /^ def change$/;" f class:AddIndexToLogin
306 + change db/migrate/20200813083020_add_enabled_to_group.rb /^ def change$/;" f class:AddEnabledToGroup
307 + change db/migrate/20210124101028_add_on_nav_bar_to_announcement.rb /^ def change$/;" f class:AddOnNavBarToAnnouncement
308 + change db/migrate/20210130121812_add_default_language_to_user.rb /^ def change$/;" f class:AddDefaultLanguageToUser
309 + change db/migrate/20210809105935_add_index_to_task_status.rb /^ def change$/;" f class:AddIndexToTaskStatus
310 + change db/migrate/20220204080936_add_type_to_submission.rb /^ def change$/;" f class:AddTypeToSubmission
311 + change db/migrate/20220927070334_create_active_storage_tables.active_storage.rb /^ def change$/;" f class:CreateActiveStorageTables
201 312 change_contest_mode app/controllers/contest_management_controller.rb /^ def change_contest_mode$/;" f class:ContestManagementController
202 - change_date_added app/controllers/problems_controller.rb /^ def change_date_added$/;" f
203 - change_users_contest_to spec/controllers/user_admin_controller_spec.rb /^ def change_users_contest_to(user_login_list, contest, reset_timer=false)$/;" f
204 - change_users_contest_to spec/integration/contest_managements_spec.rb /^ def change_users_contest_to(user_login_list, contest, reset_timer=false)$/;" f class:ContestManagementSessionMethods
313 + change_date_added app/controllers/problems_controller.rb /^ def change_date_added$/;" f class:ProblemsController
314 + cheat_report app/controllers/report_controller.rb /^ def cheat_report$/;" f class:ReportController
315 + cheat_scrutinize app/controllers/report_controller.rb /^ def cheat_scrutinize$/;" f class:ReportController
316 + check_valid_login app/controllers/application_controller.rb /^ def check_valid_login$/;" f class:ApplicationController
205 317 check_viewability app/controllers/main_controller.rb /^ def check_viewability$/;" f class:MainController
206 318 check_viewability app/controllers/tasks_controller.rb /^ def check_viewability$/;" f class:TasksController
207 319 check_viewability app/controllers/test_controller.rb /^ def check_viewability$/;" f class:TestController
320 + chg_default_language app/controllers/users_controller.rb /^ def chg_default_language$/;" f class:UsersController
208 321 chg_passwd app/controllers/users_controller.rb /^ def chg_passwd$/;" f class:UsersController
209 - cleanup test/load/visitor_curl_cli.rb /^ def cleanup$/;" f
322 + cleanup test/load/visitor_curl_cli.rb /^ def cleanup$/;" f class:Visitor
210 323 clear app/controllers/graders_controller.rb /^ def clear$/;" f class:GradersController
211 - clear app/models/grader_configuration.rb /^ def self.clear$/;" F class:GraderConfiguration
324 + clear app/models/grader_configuration.rb /^ def self.clear$/;" S class:GraderConfiguration
212 325 clear_all app/controllers/graders_controller.rb /^ def clear_all$/;" f class:GradersController
213 326 clear_all_stat app/controllers/contest_management_controller.rb /^ def clear_all_stat$/;" f class:ContestManagementController
214 327 clear_all_tasks test/concurrent/task_test_setup.rb /^def clear_all_tasks$/;" f
215 328 clear_all_tasks test/concurrent/task_test_teardown.rb /^def clear_all_tasks$/;" f
216 - clear_reloadable_connections script/spec_server /^ def base.clear_reloadable_connections!$/;" F class:Spec.Runner.RailsSpecServer.run
329 + clear_last_ip app/controllers/user_admin_controller.rb /^ def clear_last_ip$/;" f class:UserAdminController
330 + clear_last_login app/models/user.rb /^ def self.clear_last_login$/;" S class:User
217 331 clear_start_time_if_not_started app/models/site.rb /^ def clear_start_time_if_not_started$/;" f class:Site
218 332 clear_stat app/controllers/contest_management_controller.rb /^ def clear_stat$/;" f class:ContestManagementController
219 333 clear_terminated app/controllers/graders_controller.rb /^ def clear_terminated$/;" f class:GradersController
334 + commands test/load/visitor_curl_cli.rb /^ attr_accessor :commands$/;" A class:Visitor
335 + commands= test/load/visitor_curl_cli.rb /^ attr_accessor :commands$/;" A class:Visitor
220 336 compiler_msg app/controllers/main_controller.rb /^ def compiler_msg$/;" f class:MainController
221 - config_cached app/models/grader_configuration.rb /^ def self.config_cached?$/;" F class:GraderConfiguration
337 + compiler_msg app/controllers/submissions_controller.rb /^ def compiler_msg$/;" f class:SubmissionsController
338 + config_cached? app/models/grader_configuration.rb /^ def self.config_cached?$/;" S class:GraderConfiguration
339 + configuration_params app/controllers/configurations_controller.rb /^ def configuration_params$/;" f class:ConfigurationsController
222 340 confirm app/controllers/users_controller.rb /^ def confirm$/;" f class:UsersController
223 341 confirm_and_update_start_time app/controllers/main_controller.rb /^ def confirm_and_update_start_time$/;" f class:MainController
224 342 confirm_contest_start app/controllers/main_controller.rb /^ def confirm_contest_start$/;" f class:MainController
225 343 console app/controllers/messages_controller.rb /^ def console$/;" f class:MessagesController
226 344 contest_finished? app/models/user.rb /^ def contest_finished?$/;" f class:User
227 - contest_management app/controllers/user_admin_controller.rb /^ def contest_management$/;" f
228 - contest_mode app/models/grader_configuration.rb /^ def self.contest_mode?$/;" F class:GraderConfiguration
345 + contest_management app/controllers/user_admin_controller.rb /^ def contest_management$/;" f class:UserAdminController
346 + contest_mode? app/models/grader_configuration.rb /^ def self.contest_mode?$/;" S class:GraderConfiguration
229 347 contest_started? app/models/user.rb /^ def contest_started?$/;" f class:User
230 348 contest_time_left app/models/user.rb /^ def contest_time_left$/;" f class:User
231 - contest_time_limit app/models/grader_configuration.rb /^ def self.contest_time_limit$/;" F class:GraderConfiguration
232 - contests app/controllers/user_admin_controller.rb /^ def contests$/;" f
233 - convert_type app/models/grader_configuration.rb /^ def self.convert_type(val,type)$/;" F class:GraderConfiguration
349 + contest_time_limit app/models/grader_configuration.rb /^ def self.contest_time_limit$/;" S class:GraderConfiguration
350 + contests app/controllers/user_admin_controller.rb /^ def contests$/;" f class:UserAdminController
351 + contests_params app/controllers/contests_controller.rb /^ def contests_params$/;" f class:ContestsController
352 + convert_type app/models/grader_configuration.rb /^ def self.convert_type(val,type)$/;" S class:GraderConfiguration
353 + cookies_stored test/load/visitor_curl_cli.rb /^ attr_accessor :cookies_stored$/;" A class:Visitor
354 + cookies_stored= test/load/visitor_curl_cli.rb /^ attr_accessor :cookies_stored$/;" A class:Visitor
234 355 create app/controllers/announcements_controller.rb /^ def create$/;" f class:AnnouncementsController
235 356 create app/controllers/contests_controller.rb /^ def create$/;" f class:ContestsController
357 + create app/controllers/groups_controller.rb /^ def create$/;" f class:GroupsController
236 358 create app/controllers/messages_controller.rb /^ def create$/;" f class:MessagesController
237 359 create app/controllers/problems_controller.rb /^ def create$/;" f class:ProblemsController
238 360 create app/controllers/sites_controller.rb /^ def create$/;" f class:SitesController
361 + create app/controllers/tags_controller.rb /^ def create$/;" f class:TagsController
239 362 create app/controllers/user_admin_controller.rb /^ def create$/;" f class:UserAdminController
240 - create_configuration_key db/seeds.rb /^def create_configuration_key(key, $/;" f
241 - create_from_import_form_params app/models/problem.rb /^ def self.create_from_import_form_params(params, old_problem=nil)$/;" F class:Problem
363 + create_configuration_key db/seeds.rb /^def create_configuration_key(key,$/;" f
364 + create_from_import_form_params app/models/problem.rb /^ def self.create_from_import_form_params(params, old_problem=nil)$/;" S class:Problem
242 365 create_from_list app/controllers/user_admin_controller.rb /^ def create_from_list$/;" f class:UserAdminController
243 - daemonize script/spec_server /^def daemonize(pid_file = nil)$/;" f
366 + create_from_list app/models/user.rb /^ def self.create_from_list(lines)$/;" S class:User
367 + current_score app/controllers/report_controller.rb /^ def current_score$/;" f class:ReportController
368 + current_user app/controllers/application_controller.rb /^ def current_user$/;" f class:ApplicationController
369 + description_params app/controllers/problems_controller.rb /^ def description_params$/;" f class:ProblemsController
244 370 destroy app/controllers/announcements_controller.rb /^ def destroy$/;" f class:AnnouncementsController
245 371 destroy app/controllers/contests_controller.rb /^ def destroy$/;" f class:ContestsController
372 + destroy app/controllers/groups_controller.rb /^ def destroy$/;" f class:GroupsController
246 373 destroy app/controllers/problems_controller.rb /^ def destroy$/;" f class:ProblemsController
247 374 destroy app/controllers/sites_controller.rb /^ def destroy$/;" f class:SitesController
248 - destroy app/controllers/user_admin_controller.rb /^ def destroy$/;" f
249 - disable_multicontest spec/config_spec_helper.rb /^ def disable_multicontest$/;" f class:ConfigSpecHelperMethods
250 - do_import app/controllers/problems_controller.rb /^ def do_import$/;" f
251 - do_manage app/controllers/problems_controller.rb /^ def do_manage$/;" f
252 - down db/migrate/001_create_users.rb /^ def self.down$/;" F class:CreateUsers
253 - down db/migrate/002_create_problems.rb /^ def self.down$/;" F class:CreateProblems
254 - down db/migrate/003_create_submissions.rb /^ def self.down$/;" F class:CreateSubmissions
255 - down db/migrate/004_create_languages.rb /^ def self.down$/;" F class:CreateLanguages
256 - down db/migrate/005_add_index_to_submissions.rb /^ def self.down$/;" F class:AddIndexToSubmissions
257 - down db/migrate/006_create_roles.rb /^ def self.down$/;" F class:CreateRoles
258 - down db/migrate/007_create_rights.rb /^ def self.down$/;" F class:CreateRights
259 - down db/migrate/008_create_tasks.rb /^ def self.down$/;" F class:CreateTasks
260 - down db/migrate/009_add_sessions.rb /^ def self.down$/;" F class:AddSessions
261 - down db/migrate/011_add_language_ext.rb /^ def self.down$/;" F class:AddLanguageExt
262 - down db/migrate/012_add_email_to_users.rb /^ def self.down$/;" F class:AddEmailToUsers
263 - down db/migrate/013_add_url_to_problem.rb /^ def self.down$/;" F class:AddUrlToProblem
264 - down db/migrate/014_create_grader_processes.rb /^ def self.down$/;" F class:CreateGraderProcesses
265 - down db/migrate/015_add_status_to_tasks.rb /^ def self.down$/;" F class:AddStatusToTasks
266 - down db/migrate/016_add_task_to_grader_process.rb /^ def self.down$/;" F class:AddTaskToGraderProcess
267 - down db/migrate/017_rename_grader_process_column_ip_to_host.rb /^ def self.down$/;" F class:RenameGraderProcessColumnIpToHost
268 - down db/migrate/018_add_number_to_submissions.rb /^ def self.down$/;" F class:AddNumberToSubmissions
269 - down db/migrate/019_create_test_requests.rb /^ def self.down$/;" F class:CreateTestRequests
270 - down db/migrate/021_change_compiler_message_type_test_request.rb /^ def self.down$/;" F class:ChangeCompilerMessageTypeTestRequest
271 - down db/migrate/022_create_configurations.rb /^ def self.down$/;" F class:CreateConfigurations
272 - down db/migrate/023_add_runstat_columns_to_test_request.rb /^ def self.down$/;" F class:AddRunstatColumnsToTestRequest
273 - down db/migrate/024_create_sites.rb /^ def self.down$/;" F class:CreateSites
274 - down db/migrate/025_add_site_to_user_and_add_default_site.rb /^ def self.down$/;" F
275 - down db/migrate/026_add_body_to_problems.rb /^ def self.down$/;" F class:AddBodyToProblems
276 - down db/migrate/027_create_descriptions.rb /^ def self.down$/;" F class:CreateDescriptions
277 - down db/migrate/028_refactor_problem_body_to_description.rb /^ def self.down$/;" F class:RefactorProblemBodyToDescription
278 - down db/migrate/029_add_test_allowed_to_problems.rb /^ def self.down$/;" F class:AddTestAllowedToProblems
279 - down db/migrate/030_create_announcements.rb /^ def self.down$/;" F class:CreateAnnouncements
280 - down db/migrate/031_add_supports_for_output_only_problems.rb /^ def self.down$/;" F class:AddSupportsForOutputOnlyProblems
281 - down db/migrate/032_create_messages.rb /^ def self.down$/;" F class:CreateMessages
282 - down db/migrate/033_add_task_type_to_grader_processes.rb /^ def self.down$/;" F class:AddTaskTypeToGraderProcesses
283 - down db/migrate/034_create_countries.rb /^ def self.down$/;" F class:CreateCountries
284 - down db/migrate/035_add_country_to_sites_and_users.rb /^ def self.down$/;" F class:AddCountryToSitesAndUsers
285 - down db/migrate/20081107145815_add_frontpage_flag_to_announcement.rb /^ def self.down$/;" F class:AddFrontpageFlagToAnnouncement
286 - down db/migrate/20081204122651_add_activated_to_users.rb /^ def self.down$/;" F
287 - down db/migrate/20081210021333_add_timestamps_to_users.rb /^ def self.down$/;" F class:AddTimestampsToUsers
288 - down db/migrate/20081215012843_change_user_login_string_limit.rb /^ def self.down$/;" F class:ChangeUserLoginStringLimit
289 - down db/migrate/20090206145016_add_contest_flag_to_announcements.rb /^ def self.down$/;" F class:AddContestFlagToAnnouncements
290 - down db/migrate/20090416235658_add_common_ext_to_languages.rb /^ def self.down$/;" F class:AddCommonExtToLanguages
291 - down db/migrate/20090426131044_add_terminated_to_grader_processes.rb /^ def self.down$/;" F class:AddTerminatedToGraderProcesses
292 - down db/migrate/20090815171610_add_title_to_announcements.rb /^ def self.down$/;" F class:AddTitleToAnnouncements
293 - down db/migrate/20100113094740_create_test_pairs.rb /^ def self.down$/;" F class:CreateTestPairs
294 - down db/migrate/20100124040107_add_description_to_config.rb /^ def self.down$/;" F class:AddDescriptionToConfig
295 - down db/migrate/20100124054458_create_user_contest_stats.rb /^ def self.down$/;" F class:CreateUserContestStats
296 - down db/migrate/20100129041917_change_input_solution_field_limit_in_test_pair.rb /^ def self.down$/;" F class:ChangeInputSolutionFieldLimitInTestPair
297 - down db/migrate/20100216105730_create_contests.rb /^ def self.down$/;" F class:CreateContests
298 - down db/migrate/20100216162324_create_contests_users_join_table.rb /^ def self.down$/;" F class:CreateContestsUsersJoinTable
299 - down db/migrate/20100216162940_create_contests_problems_join_table.rb /^ def self.down$/;" F class:CreateContestsProblemsJoinTable
300 - down db/migrate/20100219014840_add_description_filename_to_problems.rb /^ def self.down$/;" F class:AddDescriptionFilenameToProblems
301 - down db/migrate/20100303095700_add_name_to_contests.rb /^ def self.down$/;" F class:AddNameToContests
302 - down db/migrate/20100328123325_add_forced_logout_to_user_contest_stat.rb /^ def self.down$/;" F class:AddForcedLogoutToUserContestStat
303 - down db/migrate/20100506163112_add_notes_to_announcements.rb /^ def self.down$/;" F class:AddNotesToAnnouncements
375 + destroy app/controllers/tags_controller.rb /^ def destroy$/;" f class:TagsController
376 + destroy app/controllers/user_admin_controller.rb /^ def destroy$/;" f class:UserAdminController
377 + direct_edit_problem app/controllers/submissions_controller.rb /^ def direct_edit_problem$/;" f class:SubmissionsController
378 + display_manual script/score_subtask.rb /^def display_manual$/;" f
379 + do_import app/controllers/problems_controller.rb /^ def do_import$/;" f class:ProblemsController
380 + do_manage app/controllers/problems_controller.rb /^ def do_manage$/;" f class:ProblemsController
381 + down db/migrate/001_create_users.rb /^ def self.down$/;" S class:CreateUsers
382 + down db/migrate/002_create_problems.rb /^ def self.down$/;" S class:CreateProblems
383 + down db/migrate/003_create_submissions.rb /^ def self.down$/;" S class:CreateSubmissions
384 + down db/migrate/004_create_languages.rb /^ def self.down$/;" S class:CreateLanguages
385 + down db/migrate/005_add_index_to_submissions.rb /^ def self.down$/;" S class:AddIndexToSubmissions
386 + down db/migrate/006_create_roles.rb /^ def self.down$/;" S class:CreateRoles
387 + down db/migrate/007_create_rights.rb /^ def self.down$/;" S class:CreateRights
388 + down db/migrate/008_create_tasks.rb /^ def self.down$/;" S class:CreateTasks
389 + down db/migrate/009_add_sessions.rb /^ def self.down$/;" S class:AddSessions
390 + down db/migrate/011_add_language_ext.rb /^ def self.down$/;" S class:AddLanguageExt
391 + down db/migrate/012_add_email_to_users.rb /^ def self.down$/;" S class:AddEmailToUsers
392 + down db/migrate/013_add_url_to_problem.rb /^ def self.down$/;" S class:AddUrlToProblem
393 + down db/migrate/014_create_grader_processes.rb /^ def self.down$/;" S class:CreateGraderProcesses
394 + down db/migrate/015_add_status_to_tasks.rb /^ def self.down$/;" S class:AddStatusToTasks
395 + down db/migrate/016_add_task_to_grader_process.rb /^ def self.down$/;" S class:AddTaskToGraderProcess
396 + down db/migrate/017_rename_grader_process_column_ip_to_host.rb /^ def self.down$/;" S class:RenameGraderProcessColumnIpToHost
397 + down db/migrate/018_add_number_to_submissions.rb /^ def self.down$/;" S class:AddNumberToSubmissions
398 + down db/migrate/019_create_test_requests.rb /^ def self.down$/;" S class:CreateTestRequests
399 + down db/migrate/021_change_compiler_message_type_test_request.rb /^ def self.down$/;" S class:ChangeCompilerMessageTypeTestRequest
400 + down db/migrate/022_create_configurations.rb /^ def self.down$/;" S class:CreateConfigurations
401 + down db/migrate/023_add_runstat_columns_to_test_request.rb /^ def self.down$/;" S class:AddRunstatColumnsToTestRequest
402 + down db/migrate/024_create_sites.rb /^ def self.down$/;" S class:CreateSites
403 + down db/migrate/025_add_site_to_user_and_add_default_site.rb /^ def self.down$/;" S class:AddSiteToUserAndAddDefaultSite
404 + down db/migrate/026_add_body_to_problems.rb /^ def self.down$/;" S class:AddBodyToProblems
405 + down db/migrate/027_create_descriptions.rb /^ def self.down$/;" S class:CreateDescriptions
406 + down db/migrate/028_refactor_problem_body_to_description.rb /^ def self.down$/;" S class:RefactorProblemBodyToDescription
407 + down db/migrate/029_add_test_allowed_to_problems.rb /^ def self.down$/;" S class:AddTestAllowedToProblems
408 + down db/migrate/030_create_announcements.rb /^ def self.down$/;" S class:CreateAnnouncements
409 + down db/migrate/031_add_supports_for_output_only_problems.rb /^ def self.down$/;" S class:AddSupportsForOutputOnlyProblems
410 + down db/migrate/032_create_messages.rb /^ def self.down$/;" S class:CreateMessages
411 + down db/migrate/033_add_task_type_to_grader_processes.rb /^ def self.down$/;" S class:AddTaskTypeToGraderProcesses
412 + down db/migrate/034_create_countries.rb /^ def self.down$/;" S class:CreateCountries
413 + down db/migrate/035_add_country_to_sites_and_users.rb /^ def self.down$/;" S class:AddCountryToSitesAndUsers
414 + down db/migrate/20081107145815_add_frontpage_flag_to_announcement.rb /^ def self.down$/;" S class:AddFrontpageFlagToAnnouncement
415 + down db/migrate/20081204122651_add_activated_to_users.rb /^ def self.down$/;" S class:AddActivatedToUsers
416 + down db/migrate/20081210021333_add_timestamps_to_users.rb /^ def self.down$/;" S class:AddTimestampsToUsers
417 + down db/migrate/20081215012843_change_user_login_string_limit.rb /^ def self.down$/;" S class:ChangeUserLoginStringLimit
418 + down db/migrate/20090206145016_add_contest_flag_to_announcements.rb /^ def self.down$/;" S class:AddContestFlagToAnnouncements
419 + down db/migrate/20090416235658_add_common_ext_to_languages.rb /^ def self.down$/;" S class:AddCommonExtToLanguages
420 + down db/migrate/20090426131044_add_terminated_to_grader_processes.rb /^ def self.down$/;" S class:AddTerminatedToGraderProcesses
421 + down db/migrate/20090815171610_add_title_to_announcements.rb /^ def self.down$/;" S class:AddTitleToAnnouncements
422 + down db/migrate/20100113094740_create_test_pairs.rb /^ def self.down$/;" S class:CreateTestPairs
423 + down db/migrate/20100124040107_add_description_to_config.rb /^ def self.down$/;" S class:AddDescriptionToConfig
424 + down db/migrate/20100124054458_create_user_contest_stats.rb /^ def self.down$/;" S class:CreateUserContestStats
425 + down db/migrate/20100129041917_change_input_solution_field_limit_in_test_pair.rb /^ def self.down$/;" S class:ChangeInputSolutionFieldLimitInTestPair
426 + down db/migrate/20100216105730_create_contests.rb /^ def self.down$/;" S class:CreateContests
427 + down db/migrate/20100216162324_create_contests_users_join_table.rb /^ def self.down$/;" S class:CreateContestsUsersJoinTable
428 + down db/migrate/20100216162940_create_contests_problems_join_table.rb /^ def self.down$/;" S class:CreateContestsProblemsJoinTable
429 + down db/migrate/20100219014840_add_description_filename_to_problems.rb /^ def self.down$/;" S class:AddDescriptionFilenameToProblems
430 + down db/migrate/20100303095700_add_name_to_contests.rb /^ def self.down$/;" S class:AddNameToContests
431 + down db/migrate/20100328123325_add_forced_logout_to_user_contest_stat.rb /^ def self.down$/;" S class:AddForcedLogoutToUserContestStat
432 + down db/migrate/20100506163112_add_notes_to_announcements.rb /^ def self.down$/;" S class:AddNotesToAnnouncements
433 + down db/migrate/20150503164846_change_userid_on_login.rb /^ def down$/;" f class:ChangeUseridOnLogin
434 + down db/migrate/20150914223258_add_more_config.rb /^ def down$/;" f class:AddMoreConfig
435 + down db/migrate/20150916054105_update_heart_beat.rb /^ def down$/;" f class:UpdateHeartBeat
436 + down db/migrate/20161008050135_modify_grader_process.rb /^ def down$/;" f class:ModifyGraderProcess
437 + down db/migrate/20161031063337_add_config_view_test.rb /^ def down$/;" f class:AddConfigViewTest
438 + down db/migrate/20170427070345_add_heart_beat_full.rb /^ def down$/;" f class:AddHeartBeatFull
439 + download app/controllers/submissions_controller.rb /^ def download$/;" f class:SubmissionsController
304 440 download app/controllers/tasks_controller.rb /^ def download$/;" f class:TasksController
305 - download_file_basedir app/models/problem.rb /^ def self.download_file_basedir$/;" F class:Problem
441 + download_file_basedir app/models/problem.rb /^ def self.download_file_basedir$/;" S class:Problem
306 442 download_filename app/models/submission.rb /^ def download_filename$/;" f class:Submission
443 + download_input app/controllers/testcases_controller.rb /^ def download_input$/;" f class:TestcasesController
444 + download_sol app/controllers/testcases_controller.rb /^ def download_sol$/;" f class:TestcasesController
307 445 edit app/controllers/announcements_controller.rb /^ def edit$/;" f class:AnnouncementsController
308 446 edit app/controllers/contests_controller.rb /^ def edit$/;" f class:ContestsController
447 + edit app/controllers/groups_controller.rb /^ def edit$/;" f class:GroupsController
448 + edit app/controllers/heartbeat_controller.rb /^ def edit$/;" f class:HeartbeatController
309 449 edit app/controllers/problems_controller.rb /^ def edit$/;" f class:ProblemsController
310 450 edit app/controllers/sites_controller.rb /^ def edit$/;" f class:SitesController
311 - edit app/controllers/user_admin_controller.rb /^ def edit$/;" f
451 + edit app/controllers/submissions_controller.rb /^ def edit$/;" f class:SubmissionsController
452 + edit app/controllers/tags_controller.rb /^ def edit$/;" f class:TagsController
453 + edit app/controllers/user_admin_controller.rb /^ def edit$/;" f class:UserAdminController
312 454 email_for_editing app/models/user.rb /^ def email_for_editing$/;" f class:User
313 455 email_for_editing= app/models/user.rb /^ def email_for_editing=(e)$/;" f class:User
314 456 email_validation? app/models/user.rb /^ def email_validation?$/;" f class:User
315 - enable_multicontest spec/config_spec_helper.rb /^ def enable_multicontest$/;" f class:ConfigSpecHelperMethods
316 - encode_params test/load/visitor_curl_cli.rb /^ def encode_params(params)$/;" f
317 - encrypt app/models/user.rb /^ def self.encrypt(string,salt)$/;" F class:User
457 + encode_params test/load/visitor_curl_cli.rb /^ def encode_params(params)$/;" f class:Visitor
458 + encrypt app/models/user.rb /^ def self.encrypt(string,salt)$/;" S class:User
318 459 encrypt_new_password app/models/user.rb /^ def encrypt_new_password$/;" f class:User
319 460 enough_time_interval_between_same_email_registrations app/models/user.rb /^ def enough_time_interval_between_same_email_registrations$/;" f class:User
320 461 error app/controllers/main_controller.rb /^ def error$/;" f class:MainController
321 462 extract lib/testdata_importer.rb /^ def extract(tempfile)$/;" f class:TestdataImporter
322 - extract_params_and_check app/models/problem.rb /^ def self.extract_params_and_check(params, problem)$/;" F class:Problem
463 + extract_params_and_check app/models/problem.rb /^ def self.extract_params_and_check(params, problem)$/;" S class:Problem
323 464 extract_running_stat app/controllers/main_controller.rb /^ def extract_running_stat(results)$/;" f class:MainController
324 - find_all_by_user_problem app/models/submission.rb /^ def self.find_all_by_user_problem(user_id, problem_id)$/;" F class:Submission
325 - find_all_last_by_problem app/models/submission.rb /^ def self.find_all_last_by_problem(problem_id)$/;" F class:Submission
326 - find_all_sent_by_user app/models/message.rb /^ def self.find_all_sent_by_user(user)$/;" F class:Message
327 - find_all_system_unreplied_messages app/models/message.rb /^ def self.find_all_system_unreplied_messages$/;" F class:Message
328 - find_available_problems app/models/problem.rb /^ def self.find_available_problems$/;" F class:Problem
329 - find_by_extension app/models/language.rb /^ def self.find_by_extension(ext)$/;" F class:Language
330 - find_by_host_and_pid app/models/grader_process.rb /^ def self.find_by_host_and_pid(host,pid)$/;" F class:GraderProcess
331 - find_by_user_problem_number app/models/submission.rb /^ def self.find_by_user_problem_number(user_id, problem_id, number)$/;" F class:Submission
332 - find_contest_and_user_from_contest_id app/controllers/user_admin_controller.rb /^ def find_contest_and_user_from_contest_id(id)$/;" f
333 - find_for_frontpage app/models/announcement.rb /^ def self.find_for_frontpage$/;" F class:Announcement
334 - find_in_range_by_user_and_problem app/models/submission.rb /^ def self.find_in_range_by_user_and_problem(user_id, problem_id,since_id,until_id)$/;" F class:Submission
335 - find_language_in_source app/models/submission.rb /^ def self.find_language_in_source(source, source_filename="")$/;" F class:Submission
336 - find_last_by_user_and_problem app/models/submission.rb /^ def self.find_last_by_user_and_problem(user_id, problem_id)$/;" F class:Submission
337 - find_last_for_all_available_problems app/models/submission.rb /^ def self.find_last_for_all_available_problems(user_id)$/;" F class:Submission
338 - find_non_admin_with_prefix app/models/user.rb /^ def self.find_non_admin_with_prefix(prefix='')$/;" F class:User
339 - find_option_in_source app/models/submission.rb /^ def self.find_option_in_source(option, source)$/;" F class:Submission
340 - find_or_create_and_set_config spec/config_spec_helper.rb /^ def find_or_create_and_set_config(key, type, value)$/;" f class:ConfigSpecHelperMethods
341 - find_problem_in_source app/models/submission.rb /^ def self.find_problem_in_source(source, source_filename="")$/;" F class:Submission
342 - find_published app/models/announcement.rb /^ def self.find_published(contest_started=false)$/;" F class:Announcement
343 - find_running_graders app/models/grader_process.rb /^ def self.find_running_graders$/;" F class:GraderProcess
344 - find_stalled_process app/models/grader_process.rb /^ def self.find_stalled_process$/;" F class:GraderProcess
345 - find_terminated_graders app/models/grader_process.rb /^ def self.find_terminated_graders$/;" F class:GraderProcess
346 - find_users_with_no_contest app/models/user.rb /^ def self.find_users_with_no_contest()$/;" F class:User
465 + find_all_by_user_problem app/models/submission.rb /^ def self.find_all_by_user_problem(user_id, problem_id)$/;" S class:Submission
466 + find_all_last_by_problem app/models/submission.rb /^ def self.find_all_last_by_problem(problem_id)$/;" S class:Submission
467 + find_all_sent_by_user app/models/message.rb /^ def self.find_all_sent_by_user(user)$/;" S class:Message
468 + find_all_system_unreplied_messages app/models/message.rb /^ def self.find_all_system_unreplied_messages$/;" S class:Message
469 + find_by_extension app/models/language.rb /^ def self.find_by_extension(ext)$/;" S class:Language
470 + find_by_host_and_pid app/models/grader_process.rb /^ def self.find_by_host_and_pid(host,pid)$/;" S class:GraderProcess
471 + find_by_user_problem_number app/models/submission.rb /^ def self.find_by_user_problem_number(user_id, problem_id, number)$/;" S class:Submission
472 + find_contest_and_user_from_contest_id app/controllers/user_admin_controller.rb /^ def find_contest_and_user_from_contest_id(id)$/;" f class:UserAdminController
473 + find_in_range_by_user_and_problem app/models/submission.rb /^ def self.find_in_range_by_user_and_problem(user_id, problem_id,since_id,until_id)$/;" S class:Submission
474 + find_language_in_source app/models/submission.rb /^ def self.find_language_in_source(source, source_filename="")$/;" S class:Submission
475 + find_last_by_user_and_problem app/models/submission.rb /^ def self.find_last_by_user_and_problem(user_id, problem_id)$/;" S class:Submission
476 + find_last_for_all_available_problems app/models/submission.rb /^ def self.find_last_for_all_available_problems(user_id)$/;" S class:Submission
477 + find_non_admin_with_prefix app/models/user.rb /^ def self.find_non_admin_with_prefix(prefix='')$/;" S class:User
478 + find_option_in_source app/models/submission.rb /^ def self.find_option_in_source(option, source)$/;" S class:Submission
479 + find_or_create_user lib/programming_authenticator.rb /^ def find_or_create_user(result)$/;" f class:ProgrammingAuthenticator
480 + find_problem_in_source app/models/submission.rb /^ def self.find_problem_in_source(source, source_filename="")$/;" S class:Submission
481 + find_running_graders app/models/grader_process.rb /^ def self.find_running_graders$/;" S class:GraderProcess
482 + find_stalled_process app/models/grader_process.rb /^ def self.find_stalled_process$/;" S class:GraderProcess
483 + find_terminated_graders app/models/grader_process.rb /^ def self.find_terminated_graders$/;" S class:GraderProcess
484 + find_users_with_no_contest app/models/user.rb /^ def self.find_users_with_no_contest()$/;" S class:User
347 485 finished? app/models/site.rb /^ def finished?$/;" f class:Site
348 486 forget app/controllers/users_controller.rb /^ def forget$/;" f class:UsersController
349 - format_short_duration app/helpers/application_helper.rb /^ def format_short_duration(duration)$/;" f class:ApplicationHelper
350 - format_short_time app/helpers/application_helper.rb /^ def format_short_time(time)$/;" f class:ApplicationHelper
351 - gen_csv_from_scorearray app/controllers/user_admin_controller.rb /^ def gen_csv_from_scorearray(scorearray,problem)$/;" f
352 - generate_tasks test/unit/task_test.rb /^ def generate_tasks(n)$/;" f class:TaskTest
353 - get app/models/grader_configuration.rb /^ def self.get(key)$/;" F class:GraderConfiguration
354 - get test/load/visitor_curl_cli.rb /^ def get(url,params)$/;" f
355 - get test/load/visitor_curl_cli.rb /^ def self.get(url,params=nil)$/;" F
356 - get_cookie_fname test/load/visitor_curl_cli.rb /^ def get_cookie_fname$/;" f
357 - get_inqueue_and_change_status app/models/task.rb /^ def self.get_inqueue_and_change_status(status)$/;" F class:Task
358 - get_inqueue_and_change_status app/models/test_request.rb /^ def self.get_inqueue_and_change_status(status)$/;" F class:TestRequest
359 - get_main_list spec/integration/contest_managements_spec.rb /^ def get_main_list$/;" f class:MainSessionMethods
360 - get_main_list_and_assert_logout spec/integration/contest_managements_spec.rb /^ def get_main_list_and_assert_logout$/;" f class:MainSessionMethods
361 - get_output_fname test/load/visitor_curl_cli.rb /^ def get_output_fname$/;" f
362 - get_problems_from_params app/controllers/problems_controller.rb /^ def get_problems_from_params$/;" f
363 - grader_control_enabled lib/grader_script.rb /^ def self.grader_control_enabled?$/;" F class:GraderScript
487 + format_full_time_ago app/helpers/application_helper.rb /^ def format_full_time_ago(time)$/;" f module:ApplicationHelper
488 + format_short_duration app/helpers/application_helper.rb /^ def format_short_duration(duration)$/;" f module:ApplicationHelper
489 + format_short_time app/helpers/application_helper.rb /^ def format_short_time(time)$/;" f module:ApplicationHelper
490 + frontpage app/models/announcement.rb /^ def self.frontpage$/;" S class:Announcement
491 + gen_csv_from_scorearray app/controllers/report_controller.rb /^ def gen_csv_from_scorearray(scorearray,problem)$/;" f class:ReportController
492 + gen_csv_from_scorearray app/controllers/user_admin_controller.rb /^ def gen_csv_from_scorearray(scorearray,problem)$/;" f class:UserAdminController
493 + get app/models/grader_configuration.rb /^ def self.get(key)$/;" S class:GraderConfiguration
494 + get test/load/visitor_curl_cli.rb /^ def get(url,params)$/;" f class:Visitor
495 + get test/load/visitor_curl_cli.rb /^ def self.get(url,params=nil)$/;" S class:Visitor
496 + get_ace_mode app/helpers/application_helper.rb /^ def get_ace_mode(language)$/;" f module:ApplicationHelper
497 + get_authenticated_user app/controllers/login_controller.rb /^ def get_authenticated_user(login, password)$/;" f class:LoginController
498 + get_cookie_fname test/load/visitor_curl_cli.rb /^ def get_cookie_fname$/;" f class:Visitor
499 + get_inqueue_and_change_status app/models/task.rb /^ def self.get_inqueue_and_change_status(status)$/;" S class:Task
500 + get_inqueue_and_change_status app/models/test_request.rb /^ def self.get_inqueue_and_change_status(status)$/;" S class:TestRequest
501 + get_jschart_history app/models/problem.rb /^ def get_jschart_history$/;" f class:Problem
502 + get_latest_submission_status app/controllers/submissions_controller.rb /^ def get_latest_submission_status$/;" f class:SubmissionsController
503 + get_output_fname test/load/visitor_curl_cli.rb /^ def get_output_fname$/;" f class:Visitor
504 + get_problems_from_params app/controllers/problems_controller.rb /^ def get_problems_from_params$/;" f class:ProblemsController
505 + get_problems_stat app/controllers/problems_controller.rb /^ def get_problems_stat$/;" f class:ProblemsController
506 + get_submission_stat app/models/problem.rb /^ def get_submission_stat$/;" f class:Problem
507 + grader_control_enabled? lib/grader_script.rb /^ def self.grader_control_enabled?$/;" S module:GraderScript
364 508 grading_result_dir app/controllers/main_controller.rb /^ def grading_result_dir(user_name, problem_name, submission_id, case_num)$/;" f class:MainController
365 - grant_admin app/controllers/user_admin_controller.rb /^ def grant_admin$/;" f
509 + group_params app/controllers/groups_controller.rb /^ def group_params$/;" f class:GroupsController
510 + has_role? app/models/user.rb /^ def has_role?(role)$/;" f class:User
366 511 help app/controllers/main_controller.rb /^ def help$/;" f class:MainController
367 512 hide app/controllers/messages_controller.rb /^ def hide$/;" f class:MessagesController
368 - id test/load/visitor_curl_cli.rb /^ def id$/;" f
369 - import app/controllers/problems_controller.rb /^ def import$/;" f
370 - import app/controllers/user_admin_controller.rb /^ def import$/;" f
371 - import_from_file app/controllers/user_admin_controller.rb /^ def import_from_file(f)$/;" f
372 - import_from_file lib/testdata_importer.rb /^ def import_from_file(tempfile, $/;" f class:TestdataImporter
373 - import_full_score lib/testdata_importer.rb /^ def import_full_score(dirname)$/;" f
374 - import_problem_description lib/testdata_importer.rb /^ def import_problem_description(dirname)$/;" f
375 - import_problem_pdf lib/testdata_importer.rb /^ def import_problem_pdf(dirname)$/;" f
376 - import_test_pairs lib/testdata_importer.rb /^ def import_test_pairs(dirname)$/;" f
513 + id test/load/visitor_curl_cli.rb /^ def id$/;" f class:Visitor
514 + import app/controllers/problems_controller.rb /^ def import$/;" f class:ProblemsController
515 + import app/controllers/user_admin_controller.rb /^ def import$/;" f class:UserAdminController
516 + import_from_file app/controllers/user_admin_controller.rb /^ def import_from_file(f)$/;" f class:UserAdminController
517 + import_from_file lib/testdata_importer.rb /^ def import_from_file(tempfile,$/;" f class:TestdataImporter
518 + import_full_score lib/testdata_importer.rb /^ def import_full_score(dirname)$/;" f class:TestdataImporter
519 + import_problem_description lib/testdata_importer.rb /^ def import_problem_description(dirname)$/;" f class:TestdataImporter
520 + import_problem_pdf lib/testdata_importer.rb /^ def import_problem_pdf(dirname)$/;" f class:TestdataImporter
521 + import_test_pairs lib/testdata_importer.rb /^ def import_test_pairs(dirname)$/;" f class:TestdataImporter
377 522 index app/controllers/announcements_controller.rb /^ def index$/;" f class:AnnouncementsController
378 523 index app/controllers/configurations_controller.rb /^ def index$/;" f class:ConfigurationsController
379 524 index app/controllers/contest_management_controller.rb /^ def index$/;" f class:ContestManagementController
380 525 index app/controllers/contests_controller.rb /^ def index$/;" f class:ContestsController
381 526 index app/controllers/graders_controller.rb /^ def index$/;" f class:GradersController
527 + index app/controllers/groups_controller.rb /^ def index$/;" f class:GroupsController
528 + index app/controllers/heartbeat_controller.rb /^ def index$/;" f class:HeartbeatController
382 529 index app/controllers/login_controller.rb /^ def index$/;" f class:LoginController
383 - index app/controllers/main_controller.rb /^ def index$/;" f class:MainController
530 + index app/controllers/messages_controller.rb /^ def index$/;" f class:MessagesController
384 531 index app/controllers/problems_controller.rb /^ def index$/;" f class:ProblemsController
385 532 index app/controllers/site_controller.rb /^ def index$/;" f class:SiteController
386 533 index app/controllers/sites_controller.rb /^ def index$/;" f class:SitesController
534 + index app/controllers/submissions_controller.rb /^ def index$/;" f class:SubmissionsController
535 + index app/controllers/tags_controller.rb /^ def index$/;" f class:TagsController
387 536 index app/controllers/tasks_controller.rb /^ def index$/;" f class:TasksController
388 537 index app/controllers/test_controller.rb /^ def index$/;" f class:TestController
389 538 index app/controllers/user_admin_controller.rb /^ def index$/;" f class:UserAdminController
390 539 index app/controllers/users_controller.rb /^ def index$/;" f class:UsersController
391 - indv_contest_mode app/models/grader_configuration.rb /^ def self.indv_contest_mode?$/;" F class:GraderConfiguration
540 + indv_contest_mode? app/models/grader_configuration.rb /^ def self.indv_contest_mode?$/;" S class:GraderConfiguration
392 541 initialize config/size_filter_handler.rb /^ def initialize(options = {})$/;" f class:SizeFilterHandler
393 542 initialize lib/testdata_importer.rb /^ def initialize(problem)$/;" f class:TestdataImporter
394 - initialize test/load/visitor_curl_cli.rb /^ def initialize(id=0, base_dir='.')$/;" f
543 + initialize test/load/visitor_curl_cli.rb /^ def initialize(id=0, base_dir='.')$/;" f class:Visitor
395 544 initialize_temp_dir test/load/runner.rb /^def initialize_temp_dir$/;" f
396 - james_login_and_get_main_list spec/integration/contest_managements_spec.rb /^ def james_login_and_get_main_list(session)$/;" f
545 + is_request_ip_allowed? app/controllers/application_controller.rb /^ def is_request_ip_allowed?$/;" f class:ApplicationController
397 546 language app/models/test_request.rb /^ def language$/;" f class:TestRequest
398 - link_to_description_if_any app/helpers/main_helper.rb /^ def link_to_description_if_any(name, problem, options={})$/;" f class:MainHelper
547 + link_to_description_if_any app/helpers/main_helper.rb /^ def link_to_description_if_any(name, problem)$/;" f module:MainHelper
399 548 list app/controllers/graders_controller.rb /^ def list$/;" f class:GradersController
400 549 list app/controllers/main_controller.rb /^ def list$/;" f class:MainController
401 - list app/controllers/messages_controller.rb /^ def list$/;" f class:MessagesController
402 - list app/controllers/problems_controller.rb /^ def list$/;" f class:ProblemsController
403 550 list app/controllers/tasks_controller.rb /^ def list$/;" f class:TasksController
404 - list app/controllers/user_admin_controller.rb /^ def list$/;" f class:UserAdminController
551 + list_all app/controllers/messages_controller.rb /^ def list_all$/;" f class:MessagesController
405 552 load_output app/controllers/main_controller.rb /^ def load_output$/;" f class:MainController
406 553 login app/controllers/login_controller.rb /^ def login$/;" f class:LoginController
407 554 login app/controllers/main_controller.rb /^ def login$/;" f class:MainController
555 + login app/controllers/report_controller.rb /^ def login$/;" f class:ReportController
408 556 login app/controllers/site_controller.rb /^ def login$/;" f class:SiteController
409 - login spec/integration/contest_managements_spec.rb /^ def login(login_name, password)$/;" f class:MainSessionMethods
410 - login_stat app/controllers/report_controller.rb /^ def login_stat$/;" f class:ReportController
557 + login test/system/submissions_test.rb /^ def login(username,password)$/;" f class:SubmissionsTest
558 + login test/system/users_test.rb /^ def login(username,password)$/;" f class:UsersTest
559 + login_detail_query app/controllers/report_controller.rb /^ def login_detail_query$/;" f class:ReportController
560 + login_summary_query app/controllers/report_controller.rb /^ def login_summary_query$/;" f class:ReportController
561 + login_with_name app/models/user.rb /^ def login_with_name$/;" f class:User
562 + logout app/controllers/login_controller.rb /^ def logout$/;" f class:LoginController
563 + logout app/controllers/main_controller.rb /^ def logout$/;" f class:MainController
411 564 logout app/controllers/site_controller.rb /^ def logout$/;" f class:SiteController
412 - logout_users app/controllers/user_admin_controller.rb /^ def logout_users(users)$/;" f
413 - long_ext lib/testdata_importer.rb /^ def self.long_ext(filename)$/;" F class:TestdataImporter
414 - manage app/controllers/problems_controller.rb /^ def manage$/;" f
415 - manage_contest app/controllers/user_admin_controller.rb /^ def manage_contest$/;" f
416 - markdown app/helpers/application_helper.rb /^ def markdown(text)$/;" f class:ApplicationHelper
417 - mass_mailing app/controllers/user_admin_controller.rb /^ def mass_mailing$/;" f
418 - multicontests app/models/grader_configuration.rb /^ def self.multicontests?$/;" F class:GraderConfiguration
565 + logout_users app/controllers/user_admin_controller.rb /^ def logout_users(users)$/;" f class:UserAdminController
566 + long_ext lib/testdata_importer.rb /^ def self.long_ext(filename)$/;" S class:TestdataImporter
567 + long_name app/models/problem.rb /^ def long_name$/;" f class:Problem
568 + manage app/controllers/problems_controller.rb /^ def manage$/;" f class:ProblemsController
569 + manage_contest app/controllers/user_admin_controller.rb /^ def manage_contest$/;" f class:UserAdminController
570 + markdown app/helpers/application_helper.rb /^ def markdown(text)$/;" f module:ApplicationHelper
571 + mass_mailing app/controllers/user_admin_controller.rb /^ def mass_mailing$/;" f class:UserAdminController
572 + max_score app/controllers/report_controller.rb /^ def max_score$/;" f class:ReportController
573 + message_params app/controllers/messages_controller.rb /^ def message_params$/;" f class:MessagesController
574 + modify_role app/controllers/user_admin_controller.rb /^ def modify_role$/;" f class:UserAdminController
575 + multicontests? app/models/grader_configuration.rb /^ def self.multicontests?$/;" S class:GraderConfiguration
576 + multiple_login app/controllers/report_controller.rb /^ def multiple_login$/;" f class:ReportController
419 577 must_have_valid_problem app/models/submission.rb /^ def must_have_valid_problem$/;" f class:Submission
420 - must_have_valid_problem app/models/test_request.rb /^ def must_have_valid_problem$/;" f
578 + must_have_valid_problem app/models/test_request.rb /^ def must_have_valid_problem$/;" f class:TestRequest
421 579 must_specify_language app/models/submission.rb /^ def must_specify_language$/;" f class:Submission
422 - name_of app/models/test_request.rb /^ def self.name_of(problem)$/;" F class:TestRequest
580 + name_of app/models/test_request.rb /^ def self.name_of(problem)$/;" S class:TestRequest
581 + nav_announcement app/controllers/application_controller.rb /^ def nav_announcement$/;" f class:ApplicationController
582 + navbar_user_header app/helpers/application_helper.rb /^ def navbar_user_header$/;" f module:ApplicationHelper
423 583 new app/controllers/announcements_controller.rb /^ def new$/;" f class:AnnouncementsController
424 584 new app/controllers/contests_controller.rb /^ def new$/;" f class:ContestsController
585 + new app/controllers/groups_controller.rb /^ def new$/;" f class:GroupsController
425 586 new app/controllers/problems_controller.rb /^ def new$/;" f class:ProblemsController
426 587 new app/controllers/sites_controller.rb /^ def new$/;" f class:SitesController
588 + new app/controllers/tags_controller.rb /^ def new$/;" f class:TagsController
427 589 new app/controllers/user_admin_controller.rb /^ def new$/;" f class:UserAdminController
428 590 new app/controllers/users_controller.rb /^ def new$/;" f class:UsersController
429 - new_from_form_params app/models/test_request.rb /^ def self.new_from_form_params(user,params)$/;" F class:TestRequest
591 + new_from_form_params app/models/test_request.rb /^ def self.new_from_form_params(user,params)$/;" S class:TestRequest
430 592 output_filename app/controllers/main_controller.rb /^ def output_filename(user_name, problem_name, submission_id, case_num)$/;" f class:MainController
593 + password app/models/user.rb /^ attr_accessor :password$/;" A class:User
594 + password= app/models/user.rb /^ attr_accessor :password$/;" A class:User
431 595 password_required? app/models/user.rb /^ def password_required?$/;" f class:User
432 - post test/load/visitor_curl_cli.rb /^ def post(url,params,options)$/;" f
433 - post test/load/visitor_curl_cli.rb /^ def self.post(url,params=nil,options=nil)$/;" F
596 + post test/load/visitor_curl_cli.rb /^ def post(url,params,options)$/;" f class:Visitor
597 + post test/load/visitor_curl_cli.rb /^ def self.post(url,params=nil,options=nil)$/;" S class:Visitor
434 598 prepare_announcements app/controllers/main_controller.rb /^ def prepare_announcements(recent=nil)$/;" f class:MainController
435 599 prepare_grading_result app/controllers/main_controller.rb /^ def prepare_grading_result(submission)$/;" f class:MainController
436 600 prepare_index_information app/controllers/test_controller.rb /^ def prepare_index_information$/;" f class:TestController
437 601 prepare_list_information app/controllers/main_controller.rb /^ def prepare_list_information$/;" f class:MainController
438 - preprocess_param_hash test/load/visitor_curl_cli.rb /^ def self.preprocess_param_hash(params)$/;" F
439 - problem_hof app/controllers/report_controller.rb /^ def problem_hof$/;" f
602 + preprocess_param_hash test/load/visitor_curl_cli.rb /^ def self.preprocess_param_hash(params)$/;" S class:Visitor
603 + primary_and_foreign_key_types db/migrate/20220927070334_create_active_storage_tables.active_storage.rb /^ def primary_and_foreign_key_types$/;" f class:CreateActiveStorageTables
604 + problem_hof app/controllers/report_controller.rb /^ def problem_hof$/;" f class:ReportController
440 605 problem_in_user_contests? app/models/user.rb /^ def problem_in_user_contests?(problem)$/;" f class:User
441 606 problem_name app/models/test_request.rb /^ def problem_name$/;" f class:TestRequest
607 + problem_params app/controllers/problems_controller.rb /^ def problem_params$/;" f class:ProblemsController
442 608 process config/size_filter_handler.rb /^ def process(request, response)$/;" f class:SizeFilterHandler
443 - process_options test/load/visitor_curl_cli.rb /^ def self.process_options(options)$/;" F
609 + process_comment script/score_subtask.rb /^def process_comment(st)$/;" f
610 + process_options script/score_subtask.rb /^def process_options$/;" f
611 + process_options test/load/visitor_curl_cli.rb /^ def self.process_options(options)$/;" S class:Visitor
612 + process_query_record app/controllers/application_controller.rb /^ def process_query_record(record, $/;" f class:ApplicationController
613 + process_subtask script/score_subtask.rb /^def process_subtask(st)$/;" f
444 614 profile app/controllers/users_controller.rb /^ def profile$/;" f class:UsersController
445 615 profile_authorization app/controllers/users_controller.rb /^ def profile_authorization$/;" f class:UsersController
616 + published app/models/announcement.rb /^ def self.published(contest_started=false)$/;" S class:Announcement
446 617 quick_create app/controllers/problems_controller.rb /^ def quick_create$/;" f class:ProblemsController
447 - random_all_passwords app/controllers/user_admin_controller.rb /^ def random_all_passwords$/;" f
448 - random_input_file_name app/models/test_request.rb /^ def self.random_input_file_name(user,problem)$/;" F class:TestRequest
449 - random_password app/controllers/user_admin_controller.rb /^ def random_password(length=5)$/;" f
450 - random_password app/models/user.rb /^ def self.random_password(length=5)$/;" F class:User
451 - raw_dir lib/grader_script.rb /^ def self.raw_dir$/;" F class:GraderScript
618 + random_all_passwords app/controllers/user_admin_controller.rb /^ def random_all_passwords$/;" f class:UserAdminController
619 + random_input_file_name app/models/test_request.rb /^ def self.random_input_file_name(user,problem)$/;" S class:TestRequest
620 + random_password app/controllers/user_admin_controller.rb /^ def random_password(length=5)$/;" f class:UserAdminController
621 + random_password app/models/user.rb /^ def self.random_password(length=5)$/;" S class:User
622 + raw_dir lib/grader_script.rb /^ def self.raw_dir$/;" S module:GraderScript
452 623 read app/controllers/test_controller.rb /^ def read$/;" f class:TestController
453 - read_config app/models/grader_configuration.rb /^ def self.read_config$/;" F class:GraderConfiguration
454 - read_grading_info app/models/grader_configuration.rb /^ def self.read_grading_info$/;" F class:GraderConfiguration
624 + read_config app/models/grader_configuration.rb /^ def self.read_config$/;" S class:GraderConfiguration
625 + read_grading_info app/models/grader_configuration.rb /^ def self.read_grading_info$/;" S class:GraderConfiguration
455 626 read_grading_result app/controllers/main_controller.rb /^ def read_grading_result(user_name, problem_name, submission_id, case_num)$/;" f class:MainController
456 - read_one_key app/models/grader_configuration.rb /^ def self.read_one_key(key)$/;" F class:GraderConfiguration
457 - read_textfile app/helpers/application_helper.rb /^ def read_textfile(fname,max_size=2048)$/;" f class:ApplicationHelper
627 + read_one_key app/models/grader_configuration.rb /^ def self.read_one_key(key)$/;" S class:GraderConfiguration
628 + read_textfile app/helpers/application_helper.rb /^ def read_textfile(fname,max_size=2048)$/;" f module:ApplicationHelper
458 629 register app/controllers/users_controller.rb /^ def register$/;" f class:UsersController
459 - register app/models/grader_process.rb /^ def self.register(host,pid,mode)$/;" F class:GraderProcess
630 + register app/models/grader_process.rb /^ def self.register(host,pid,mode)$/;" S class:GraderProcess
460 631 reject_announcement_refresh_when_logged_out app/controllers/main_controller.rb /^ def reject_announcement_refresh_when_logged_out$/;" f class:MainController
632 + rejudge app/controllers/submissions_controller.rb /^ def rejudge$/;" f class:SubmissionsController
461 633 reload app/controllers/configurations_controller.rb /^ def reload$/;" f class:ConfigurationsController
462 - reload app/models/grader_configuration.rb /^ def self.reload$/;" F class:GraderConfiguration
463 - remove_contest app/controllers/problems_controller.rb /^ def remove_contest$/;" f
464 - remove_from_contest app/controllers/user_admin_controller.rb /^ def remove_from_contest$/;" f
634 + reload app/models/grader_configuration.rb /^ def self.reload$/;" S class:GraderConfiguration
635 + remove_all_problem app/controllers/groups_controller.rb /^ def remove_all_problem$/;" f class:GroupsController
636 + remove_all_user app/controllers/groups_controller.rb /^ def remove_all_user$/;" f class:GroupsController
637 + remove_contest app/controllers/problems_controller.rb /^ def remove_contest$/;" f class:ProblemsController
638 + remove_from_contest app/controllers/user_admin_controller.rb /^ def remove_from_contest$/;" f class:UserAdminController
639 + remove_problem app/controllers/groups_controller.rb /^ def remove_problem$/;" f class:GroupsController
640 + remove_user app/controllers/groups_controller.rb /^ def remove_user$/;" f class:GroupsController
641 + replied_messages app/models/message.rb /^ attr_accessor :replied_messages$/;" A class:Message
642 + replied_messages= app/models/message.rb /^ attr_accessor :replied_messages$/;" A class:Message
465 643 reply app/controllers/messages_controller.rb /^ def reply$/;" f class:MessagesController
466 644 report_active app/models/grader_process.rb /^ def report_active(task=nil)$/;" f class:GraderProcess
467 645 report_inactive app/models/grader_process.rb /^ def report_inactive(task=nil)$/;" f class:GraderProcess
468 646 request_begins config/size_filter_handler.rb /^ def request_begins(params)$/;" f class:SizeFilterHandler
469 647 reset_timer_and_save app/models/user_contest_stat.rb /^ def reset_timer_and_save$/;" f class:UserContestStat
470 - restart_test_server script/spec_server /^def restart_test_server$/;" f
471 648 result app/controllers/main_controller.rb /^ def result$/;" f class:MainController
472 649 result app/controllers/test_controller.rb /^ def result$/;" f class:TestController
473 650 retrieve_password app/controllers/users_controller.rb /^ def retrieve_password$/;" f class:UsersController
474 - revoke_admin app/controllers/user_admin_controller.rb /^ def revoke_admin$/;" f
475 - run script/spec_server /^ def run(argv, stderr, stdout)$/;" f class:Spec.Runner.RailsSpecServer
476 - run test/load/visitor_curl_cli.rb /^ def run(times=nil, options={})$/;" f
651 + role_authorization app/controllers/application_controller.rb /^ def role_authorization(roles)$/;" f class:ApplicationController
652 + run test/load/visitor_curl_cli.rb /^ def run(times=nil, options={})$/;" f class:Visitor
477 653 runner test/load/runner.rb /^def runner(visitor_lists, load_time=60, options={})$/;" f
478 - save_additional_file app/models/test_request.rb /^ def self.save_additional_file(tempfile,dir)$/;" F
479 - save_input_file app/models/test_request.rb /^ def self.save_input_file(tempfile, user, problem)$/;" F class:TestRequest
654 + save_additional_file app/models/test_request.rb /^ def self.save_additional_file(tempfile,dir)$/;" S class:TestRequest
655 + save_input_file app/models/test_request.rb /^ def self.save_input_file(tempfile, user, problem)$/;" S class:TestRequest
480 656 save_testdata_file lib/testdata_importer.rb /^ def save_testdata_file(tempfile)$/;" f class:TestdataImporter
657 + score app/controllers/report_controller.rb /^ def score$/;" f class:ReportController
481 658 seed_config db/seeds.rb /^def seed_config$/;" f
482 659 seed_more_languages db/seeds.rb /^def seed_more_languages$/;" f
483 660 seed_roles db/seeds.rb /^def seed_roles$/;" f
484 661 seed_root db/seeds.rb /^def seed_root$/;" f
485 662 seed_users_and_roles db/seeds.rb /^def seed_users_and_roles$/;" f
486 663 send_confirmation_email app/controllers/users_controller.rb /^ def send_confirmation_email(user)$/;" f class:UsersController
487 - send_contest_update_notification_email app/controllers/user_admin_controller.rb /^ def send_contest_update_notification_email(user, contest)$/;" f
664 + send_contest_update_notification_email app/controllers/user_admin_controller.rb /^ def send_contest_update_notification_email(user, contest)$/;" f class:UserAdminController
488 665 send_file_to_user app/controllers/tasks_controller.rb /^ def send_file_to_user(filename, base_filename)$/;" f class:TasksController
489 - send_mail lib/mail_helper_methods.rb /^ def send_mail(mail_to, mail_subject, mail_body)$/;" f class:MailHelperMethods
666 + send_mail lib/mail_helper_methods.rb /^ def send_mail(mail_to, mail_subject, mail_body)$/;" f module:MailHelperMethods
490 667 send_new_password_email app/controllers/users_controller.rb /^ def send_new_password_email(user)$/;" f class:UsersController
491 - set_contest_time_limit spec/config_spec_helper.rb /^ def set_contest_time_limit(limit)$/;" f class:ConfigSpecHelperMethods
492 - set_indv_contest_mode spec/config_spec_helper.rb /^ def set_indv_contest_mode$/;" f class:ConfigSpecHelperMethods
493 - set_standard_mode spec/config_spec_helper.rb /^ def set_standard_mode$/;" f class:ConfigSpecHelperMethods
668 + set_available app/controllers/problems_controller.rb /^ def set_available(avail)$/;" f class:ProblemsController
669 + set_exam_right app/controllers/configurations_controller.rb /^ def set_exam_right$/;" f class:ConfigurationsController
670 + set_group app/controllers/groups_controller.rb /^ def set_group$/;" f class:GroupsController
671 + set_message app/controllers/messages_controller.rb /^ def set_message$/;" f class:MessagesController
672 + set_submission app/controllers/submissions_controller.rb /^ def set_submission$/;" f class:SubmissionsController
673 + set_tag app/controllers/submissions_controller.rb /^ def set_tag$/;" f class:SubmissionsController
674 + set_tag app/controllers/tags_controller.rb /^ def set_tag$/;" f class:TagsController
675 + set_testcase app/controllers/testcases_controller.rb /^ def set_testcase$/;" f class:TestcasesController
494 676 setup test/functional/login_controller_test.rb /^ def setup$/;" f class:LoginControllerTest
495 677 setup test/functional/user_admin_controller_test.rb /^ def setup$/;" f class:UserAdminControllerTest
496 678 show app/controllers/announcements_controller.rb /^ def show$/;" f class:AnnouncementsController
497 679 show app/controllers/contests_controller.rb /^ def show$/;" f class:ContestsController
680 + show app/controllers/groups_controller.rb /^ def show$/;" f class:GroupsController
498 681 show app/controllers/messages_controller.rb /^ def show$/;" f class:MessagesController
499 682 show app/controllers/problems_controller.rb /^ def show$/;" f class:ProblemsController
500 683 show app/controllers/sites_controller.rb /^ def show$/;" f class:SitesController
684 + show app/controllers/submissions_controller.rb /^ def show$/;" f class:SubmissionsController
685 + show app/controllers/tags_controller.rb /^ def show$/;" f class:TagsController
501 686 show app/controllers/user_admin_controller.rb /^ def show$/;" f class:UserAdminController
502 - show_grading_result app/models/grader_configuration.rb /^ def self.show_grading_result$/;" F class:GraderConfiguration
503 - show_raw_stat test/load/visitor_curl_cli.rb /^ def show_raw_stat$/;" f
504 - show_submitbox_to app/models/grader_configuration.rb /^ def self.show_submitbox_to?(user)$/;" F class:GraderConfiguration
505 - show_tasks_to app/models/grader_configuration.rb /^ def self.show_tasks_to?(user)$/;" F class:GraderConfiguration
687 + show_grading_result app/models/grader_configuration.rb /^ def self.show_grading_result$/;" S class:GraderConfiguration
688 + show_max_score app/controllers/report_controller.rb /^ def show_max_score$/;" f class:ReportController
689 + show_problem app/controllers/testcases_controller.rb /^ def show_problem$/;" f class:TestcasesController
690 + show_raw_stat test/load/visitor_curl_cli.rb /^ def show_raw_stat$/;" f class:Visitor
691 + show_submitbox_to? app/models/grader_configuration.rb /^ def self.show_submitbox_to?(user)$/;" S class:GraderConfiguration
692 + show_tasks_to? app/models/grader_configuration.rb /^ def self.show_tasks_to?(user)$/;" S class:GraderConfiguration
693 + show_testcase app/models/grader_configuration.rb /^ def self.show_testcase$/;" S class:GraderConfiguration
506 694 show_usage test/load/runner.rb /^def show_usage$/;" f
695 + sign_in_as test/test_helper.rb /^ def sign_in_as(user,password)$/;" f module:SignInHelper
507 696 site_admin_authorization app/controllers/site_controller.rb /^ def site_admin_authorization$/;" f class:SiteController
508 697 site_login app/controllers/login_controller.rb /^ def site_login$/;" f class:LoginController
509 - site_url test/load/visitor_curl_cli.rb /^ def self.site_url(url)$/;" F
698 + site_params app/controllers/site_controller.rb /^ def site_params$/;" f class:SiteController
699 + site_params app/controllers/sites_controller.rb /^ def site_params$/;" f class:SitesController
700 + site_url test/load/visitor_curl_cli.rb /^ def self.site_url(url)$/;" S class:Visitor
701 + solve_all_available_problems? app/models/user.rb /^ def solve_all_available_problems?$/;" f class:User
510 702 source app/controllers/main_controller.rb /^ def source$/;" f class:MainController
511 - stalled_time app/models/grader_process.rb /^ def self.stalled_time()$/;" F class:GraderProcess
512 - standard_mode app/models/grader_configuration.rb /^ def self.standard_mode?$/;" F class:GraderConfiguration
703 + stalled_time app/models/grader_process.rb /^ def self.stalled_time()$/;" S class:GraderProcess
704 + standard_mode? app/models/grader_configuration.rb /^ def self.standard_mode?$/;" S class:GraderConfiguration
513 705 start app/controllers/site_controller.rb /^ def start$/;" f class:SiteController
514 - start_exam app/controllers/graders_controller.rb /^ def start_exam$/;" f
515 - start_grader lib/grader_script.rb /^ def self.start_grader(env)$/;" F class:GraderScript
516 - start_grading app/controllers/graders_controller.rb /^ def start_grading$/;" f
517 - stat app/controllers/problems_controller.rb /^ def stat$/;" f
518 - statistics test/load/visitor_curl_cli.rb /^ def statistics$/;" f
706 + start_exam app/controllers/graders_controller.rb /^ def start_exam$/;" f class:GradersController
707 + start_grader lib/grader_script.rb /^ def self.start_grader(env)$/;" S module:GraderScript
708 + start_grading app/controllers/graders_controller.rb /^ def start_grading$/;" f class:GradersController
709 + stat app/controllers/problems_controller.rb /^ def stat$/;" f class:ProblemsController
710 + stat app/controllers/users_controller.rb /^ def stat$/;" f class:UsersController
711 + statistics test/load/visitor_curl_cli.rb /^ def statistics$/;" f class:Visitor
519 712 status_complete app/models/task.rb /^ def status_complete$/;" f class:Task
520 713 status_complete! app/models/task.rb /^ def status_complete!$/;" f class:Task
521 714 status_grading app/models/task.rb /^ def status_grading$/;" f class:Task
@@ -523,28 +716,32
523 716 status_inqueue app/models/task.rb /^ def status_inqueue$/;" f class:Task
524 717 status_inqueue! app/models/task.rb /^ def status_inqueue!$/;" f class:Task
525 718 status_str app/models/task.rb /^ def status_str$/;" f class:Task
526 - stop app/controllers/graders_controller.rb /^ def stop $/;" f
527 - stop! test/load/visitor_curl_cli.rb /^ def stop!$/;" f
528 - stop_all app/controllers/graders_controller.rb /^ def stop_all$/;" f
529 - stop_grader lib/grader_script.rb /^ def self.stop_grader(pid)$/;" F class:GraderScript
530 - stop_graders lib/grader_script.rb /^ def self.stop_graders(pids)$/;" F class:GraderScript
531 - stores_cookies test/load/visitor_curl_cli.rb /^ def self.stores_cookies$/;" F
532 - submission app/controllers/graders_controller.rb /^ def submission$/;" f class:GradersController
533 - submission app/controllers/main_controller.rb /^ def submission$/;" f class:MainController
534 - submission_stat app/controllers/report_controller.rb /^ def submission_stat$/;" f class:ReportController
719 + stop app/controllers/graders_controller.rb /^ def stop $/;" f class:GradersController
720 + stop! test/load/visitor_curl_cli.rb /^ def stop!$/;" f class:Visitor
721 + stop_all app/controllers/graders_controller.rb /^ def stop_all$/;" f class:GradersController
722 + stop_grader lib/grader_script.rb /^ def self.stop_grader(pid)$/;" S module:GraderScript
723 + stop_graders lib/grader_script.rb /^ def self.stop_graders(pids)$/;" S module:GraderScript
724 + stores_cookies test/load/visitor_curl_cli.rb /^ def self.stores_cookies$/;" S class:Visitor
725 + stuck app/controllers/report_controller.rb /^ def stuck #report struggling user,problem$/;" f class:ReportController
726 + submission app/controllers/report_controller.rb /^ def submission$/;" f class:ReportController
727 + submission_authorization app/controllers/submissions_controller.rb /^ def submission_authorization$/;" f class:SubmissionsController
728 + submission_query app/controllers/report_controller.rb /^ def submission_query$/;" f class:ReportController
535 729 submit app/controllers/main_controller.rb /^ def submit$/;" f class:MainController
536 730 submit app/controllers/test_controller.rb /^ def submit$/;" f class:TestController
537 - substitute_id test/load/visitor_curl_cli.rb /^ def substitute_id(st)$/;" f
731 + substitute_id test/load/visitor_curl_cli.rb /^ def substitute_id(st)$/;" f class:Visitor
732 + system! bin/setup /^def system!(*args)$/;" f
733 + system! bin/update /^def system!(*args)$/;" f
734 + tag_params app/controllers/tags_controller.rb /^ def tag_params$/;" f class:TagsController
538 735 take_wait_return test/concurrent/task_test_get.rb /^def take_wait_return$/;" f
736 + talkative test/load/visitor_curl_cli.rb /^ attr_accessor :talkative$/;" A class:Visitor
737 + talkative= test/load/visitor_curl_cli.rb /^ attr_accessor :talkative$/;" A class:Visitor
539 738 task app/controllers/graders_controller.rb /^ def task$/;" f class:GradersController
540 - task_grading_info app/models/grader_configuration.rb /^ def self.task_grading_info$/;" F class:GraderConfiguration
739 + task_grading_info app/models/grader_configuration.rb /^ def self.task_grading_info$/;" S class:GraderConfiguration
541 740 terminate app/models/grader_process.rb /^ def terminate$/;" f class:GraderProcess
542 741 test_create_with_correct_confirmation_password test/functional/user_admin_controller_test.rb /^ def test_create_with_correct_confirmation_password$/;" f class:UserAdminControllerTest
543 742 test_create_with_wrong_confirmation_password test/functional/user_admin_controller_test.rb /^ def test_create_with_wrong_confirmation_password$/;" f class:UserAdminControllerTest
544 743 test_destroy test/functional/user_admin_controller_test.rb /^ def test_destroy$/;" f class:UserAdminControllerTest
545 744 test_edit test/functional/user_admin_controller_test.rb /^ def test_edit$/;" f class:UserAdminControllerTest
546 - test_get_inqueue_simple test/unit/task_test.rb /^ def test_get_inqueue_simple$/;" f class:TaskTest
547 - test_homepage test/performance/browsing_test.rb /^ def test_homepage$/;" f class:BrowsingTest
548 745 test_index test/functional/user_admin_controller_test.rb /^ def test_index$/;" f class:UserAdminControllerTest
549 746 test_list test/functional/user_admin_controller_test.rb /^ def test_list$/;" f class:UserAdminControllerTest
550 747 test_new test/functional/user_admin_controller_test.rb /^ def test_new$/;" f class:UserAdminControllerTest
@@ -559,95 +756,105
559 756 test_should_not_allow_normal_user_to_see test/functional/user_admin_controller_test.rb /^ def test_should_not_allow_normal_user_to_see$/;" f class:UserAdminControllerTest
560 757 test_should_reject_user_with_wrong_password test/functional/login_controller_test.rb /^ def test_should_reject_user_with_wrong_password$/;" f class:LoginControllerTest
561 758 test_show test/functional/user_admin_controller_test.rb /^ def test_show$/;" f class:UserAdminControllerTest
562 - test_truth test/unit/announcement_test.rb /^ def test_truth$/;" f class:AnnouncementTest
563 - test_truth test/unit/configuration_test.rb /^ def test_truth$/;" f class:ConfigurationTest
564 - test_truth test/unit/country_test.rb /^ def test_truth$/;" f class:CountryTest
565 - test_truth test/unit/description_test.rb /^ def test_truth$/;" f class:DescriptionTest
566 - test_truth test/unit/grader_process_test.rb /^ def test_truth$/;" f class:GraderProcessTest
567 - test_truth test/unit/language_test.rb /^ def test_truth$/;" f class:LanguageTest
568 - test_truth test/unit/message_test.rb /^ def test_truth$/;" f class:MessageTest
569 - test_truth test/unit/problem_test.rb /^ def test_truth$/;" f class:ProblemTest
570 - test_truth test/unit/right_test.rb /^ def test_truth$/;" f class:RightTest
571 - test_truth test/unit/role_test.rb /^ def test_truth$/;" f class:RoleTest
572 - test_truth test/unit/site_test.rb /^ def test_truth$/;" f class:SiteTest
573 - test_truth test/unit/submission_test.rb /^ def test_truth$/;" f class:SubmissionTest
574 - test_truth test/unit/test_request_test.rb /^ def test_truth$/;" f class:TestRequestTest
575 - test_truth test/unit/user_test.rb /^ def test_truth$/;" f class:UserTest
576 759 test_update test/functional/user_admin_controller_test.rb /^ def test_update$/;" f class:UserAdminControllerTest
760 + testcase_authorization app/controllers/application_controller.rb /^ def testcase_authorization$/;" f class:ApplicationController
761 + testcase_params app/controllers/testcases_controller.rb /^ def testcase_params$/;" f class:TestcasesController
577 762 time_left app/models/site.rb /^ def time_left$/;" f class:Site
578 - time_limit_mode app/models/grader_configuration.rb /^ def self.time_limit_mode?$/;" F class:GraderConfiguration
579 - to_f_or_default app/models/problem.rb /^ def self.to_f_or_default(st, default)$/;" F class:Problem
580 - to_i_or_default app/models/problem.rb /^ def self.to_i_or_default(st, default)$/;" F class:Problem
763 + time_limit_mode? app/models/grader_configuration.rb /^ def self.time_limit_mode?$/;" S class:GraderConfiguration
764 + to_f_or_default app/models/problem.rb /^ def self.to_f_or_default(st, default)$/;" S class:Problem
765 + to_i_or_default app/models/problem.rb /^ def self.to_i_or_default(st, default)$/;" S class:Problem
766 + toggle app/controllers/announcements_controller.rb /^ def toggle$/;" f class:AnnouncementsController
767 + toggle app/controllers/groups_controller.rb /^ def toggle$/;" f class:GroupsController
581 768 toggle app/controllers/problems_controller.rb /^ def toggle$/;" f class:ProblemsController
769 + toggle_activate app/controllers/users_controller.rb /^ def toggle_activate$/;" f class:UsersController
770 + toggle_button app/helpers/application_helper.rb /^ def toggle_button(on,toggle_url,id, option={})$/;" f module:ApplicationHelper
771 + toggle_enable app/controllers/users_controller.rb /^ def toggle_enable$/;" f class:UsersController
772 + toggle_front app/controllers/announcements_controller.rb /^ def toggle_front$/;" f class:AnnouncementsController
773 + toggle_test app/controllers/problems_controller.rb /^ def toggle_test$/;" f class:ProblemsController
774 + toggle_view_testcase app/controllers/problems_controller.rb /^ def toggle_view_testcase$/;" f class:ProblemsController
582 775 turn_all_off app/controllers/problems_controller.rb /^ def turn_all_off$/;" f class:ProblemsController
583 - turn_all_on app/controllers/problems_controller.rb /^ def turn_all_on$/;" f
776 + turn_all_on app/controllers/problems_controller.rb /^ def turn_all_on$/;" f class:ProblemsController
777 + unauthorized_redirect app/controllers/application_controller.rb /^ def unauthorized_redirect(notice = 'You are not authorized to view the page you requested')$/;" f class:ApplicationController
778 + unique_visitor_id app/controllers/application_controller.rb /^ def unique_visitor_id$/;" f class:ApplicationController
584 779 uniqueness_of_email_from_activated_users app/models/user.rb /^ def uniqueness_of_email_from_activated_users$/;" f class:User
585 - up db/migrate/001_create_users.rb /^ def self.up$/;" F class:CreateUsers
586 - up db/migrate/002_create_problems.rb /^ def self.up$/;" F class:CreateProblems
587 - up db/migrate/003_create_submissions.rb /^ def self.up$/;" F class:CreateSubmissions
588 - up db/migrate/004_create_languages.rb /^ def self.up$/;" F class:CreateLanguages
589 - up db/migrate/005_add_index_to_submissions.rb /^ def self.up$/;" F class:AddIndexToSubmissions
590 - up db/migrate/006_create_roles.rb /^ def self.up$/;" F class:CreateRoles
591 - up db/migrate/007_create_rights.rb /^ def self.up$/;" F class:CreateRights
592 - up db/migrate/008_create_tasks.rb /^ def self.up$/;" F class:CreateTasks
593 - up db/migrate/009_add_sessions.rb /^ def self.up$/;" F class:AddSessions
594 - up db/migrate/011_add_language_ext.rb /^ def self.up$/;" F class:AddLanguageExt
595 - up db/migrate/012_add_email_to_users.rb /^ def self.up$/;" F class:AddEmailToUsers
596 - up db/migrate/013_add_url_to_problem.rb /^ def self.up$/;" F class:AddUrlToProblem
597 - up db/migrate/014_create_grader_processes.rb /^ def self.up$/;" F class:CreateGraderProcesses
598 - up db/migrate/015_add_status_to_tasks.rb /^ def self.up$/;" F class:AddStatusToTasks
599 - up db/migrate/016_add_task_to_grader_process.rb /^ def self.up$/;" F class:AddTaskToGraderProcess
600 - up db/migrate/017_rename_grader_process_column_ip_to_host.rb /^ def self.up$/;" F class:RenameGraderProcessColumnIpToHost
601 - up db/migrate/018_add_number_to_submissions.rb /^ def self.up$/;" F class:AddNumberToSubmissions
602 - up db/migrate/019_create_test_requests.rb /^ def self.up$/;" F class:CreateTestRequests
603 - up db/migrate/021_change_compiler_message_type_test_request.rb /^ def self.up$/;" F class:ChangeCompilerMessageTypeTestRequest
604 - up db/migrate/022_create_configurations.rb /^ def self.up$/;" F class:CreateConfigurations
605 - up db/migrate/023_add_runstat_columns_to_test_request.rb /^ def self.up$/;" F class:AddRunstatColumnsToTestRequest
606 - up db/migrate/024_create_sites.rb /^ def self.up$/;" F class:CreateSites
607 - up db/migrate/025_add_site_to_user_and_add_default_site.rb /^ def self.up$/;" F class:AddSiteToUserAndAddDefaultSite
608 - up db/migrate/026_add_body_to_problems.rb /^ def self.up$/;" F class:AddBodyToProblems
609 - up db/migrate/027_create_descriptions.rb /^ def self.up$/;" F class:CreateDescriptions
610 - up db/migrate/028_refactor_problem_body_to_description.rb /^ def self.up$/;" F class:RefactorProblemBodyToDescription
611 - up db/migrate/029_add_test_allowed_to_problems.rb /^ def self.up$/;" F class:AddTestAllowedToProblems
612 - up db/migrate/030_create_announcements.rb /^ def self.up$/;" F class:CreateAnnouncements
613 - up db/migrate/031_add_supports_for_output_only_problems.rb /^ def self.up$/;" F class:AddSupportsForOutputOnlyProblems
614 - up db/migrate/032_create_messages.rb /^ def self.up$/;" F class:CreateMessages
615 - up db/migrate/033_add_task_type_to_grader_processes.rb /^ def self.up$/;" F class:AddTaskTypeToGraderProcesses
616 - up db/migrate/034_create_countries.rb /^ def self.up$/;" F class:CreateCountries
617 - up db/migrate/035_add_country_to_sites_and_users.rb /^ def self.up$/;" F class:AddCountryToSitesAndUsers
618 - up db/migrate/20081107145815_add_frontpage_flag_to_announcement.rb /^ def self.up$/;" F class:AddFrontpageFlagToAnnouncement
619 - up db/migrate/20081204122651_add_activated_to_users.rb /^ def self.up$/;" F class:AddActivatedToUsers
620 - up db/migrate/20081210021333_add_timestamps_to_users.rb /^ def self.up$/;" F class:AddTimestampsToUsers
621 - up db/migrate/20081215012843_change_user_login_string_limit.rb /^ def self.up$/;" F class:ChangeUserLoginStringLimit
622 - up db/migrate/20090206145016_add_contest_flag_to_announcements.rb /^ def self.up$/;" F class:AddContestFlagToAnnouncements
623 - up db/migrate/20090416235658_add_common_ext_to_languages.rb /^ def self.up$/;" F class:AddCommonExtToLanguages
624 - up db/migrate/20090426131044_add_terminated_to_grader_processes.rb /^ def self.up$/;" F class:AddTerminatedToGraderProcesses
625 - up db/migrate/20090815171610_add_title_to_announcements.rb /^ def self.up$/;" F class:AddTitleToAnnouncements
626 - up db/migrate/20100113094740_create_test_pairs.rb /^ def self.up$/;" F class:CreateTestPairs
627 - up db/migrate/20100124040107_add_description_to_config.rb /^ def self.up$/;" F class:AddDescriptionToConfig
628 - up db/migrate/20100124054458_create_user_contest_stats.rb /^ def self.up$/;" F class:CreateUserContestStats
629 - up db/migrate/20100129041917_change_input_solution_field_limit_in_test_pair.rb /^ def self.up$/;" F class:ChangeInputSolutionFieldLimitInTestPair
630 - up db/migrate/20100216105730_create_contests.rb /^ def self.up$/;" F class:CreateContests
631 - up db/migrate/20100216162324_create_contests_users_join_table.rb /^ def self.up$/;" F class:CreateContestsUsersJoinTable
632 - up db/migrate/20100216162940_create_contests_problems_join_table.rb /^ def self.up$/;" F class:CreateContestsProblemsJoinTable
633 - up db/migrate/20100219014840_add_description_filename_to_problems.rb /^ def self.up$/;" F class:AddDescriptionFilenameToProblems
634 - up db/migrate/20100303095700_add_name_to_contests.rb /^ def self.up$/;" F class:AddNameToContests
635 - up db/migrate/20100328123325_add_forced_logout_to_user_contest_stat.rb /^ def self.up$/;" F class:AddForcedLogoutToUserContestStat
636 - up db/migrate/20100506163112_add_notes_to_announcements.rb /^ def self.up$/;" F class:AddNotesToAnnouncements
780 + up db/migrate/001_create_users.rb /^ def self.up$/;" S class:CreateUsers
781 + up db/migrate/002_create_problems.rb /^ def self.up$/;" S class:CreateProblems
782 + up db/migrate/003_create_submissions.rb /^ def self.up$/;" S class:CreateSubmissions
783 + up db/migrate/004_create_languages.rb /^ def self.up$/;" S class:CreateLanguages
784 + up db/migrate/005_add_index_to_submissions.rb /^ def self.up$/;" S class:AddIndexToSubmissions
785 + up db/migrate/006_create_roles.rb /^ def self.up$/;" S class:CreateRoles
786 + up db/migrate/007_create_rights.rb /^ def self.up$/;" S class:CreateRights
787 + up db/migrate/008_create_tasks.rb /^ def self.up$/;" S class:CreateTasks
788 + up db/migrate/009_add_sessions.rb /^ def self.up$/;" S class:AddSessions
789 + up db/migrate/011_add_language_ext.rb /^ def self.up$/;" S class:AddLanguageExt
790 + up db/migrate/012_add_email_to_users.rb /^ def self.up$/;" S class:AddEmailToUsers
791 + up db/migrate/013_add_url_to_problem.rb /^ def self.up$/;" S class:AddUrlToProblem
792 + up db/migrate/014_create_grader_processes.rb /^ def self.up$/;" S class:CreateGraderProcesses
793 + up db/migrate/015_add_status_to_tasks.rb /^ def self.up$/;" S class:AddStatusToTasks
794 + up db/migrate/016_add_task_to_grader_process.rb /^ def self.up$/;" S class:AddTaskToGraderProcess
795 + up db/migrate/017_rename_grader_process_column_ip_to_host.rb /^ def self.up$/;" S class:RenameGraderProcessColumnIpToHost
796 + up db/migrate/018_add_number_to_submissions.rb /^ def self.up$/;" S class:AddNumberToSubmissions
797 + up db/migrate/019_create_test_requests.rb /^ def self.up$/;" S class:CreateTestRequests
798 + up db/migrate/021_change_compiler_message_type_test_request.rb /^ def self.up$/;" S class:ChangeCompilerMessageTypeTestRequest
799 + up db/migrate/022_create_configurations.rb /^ def self.up$/;" S class:CreateConfigurations
800 + up db/migrate/023_add_runstat_columns_to_test_request.rb /^ def self.up$/;" S class:AddRunstatColumnsToTestRequest
801 + up db/migrate/024_create_sites.rb /^ def self.up$/;" S class:CreateSites
802 + up db/migrate/025_add_site_to_user_and_add_default_site.rb /^ def self.up$/;" S class:AddSiteToUserAndAddDefaultSite
803 + up db/migrate/026_add_body_to_problems.rb /^ def self.up$/;" S class:AddBodyToProblems
804 + up db/migrate/027_create_descriptions.rb /^ def self.up$/;" S class:CreateDescriptions
805 + up db/migrate/028_refactor_problem_body_to_description.rb /^ def self.up$/;" S class:RefactorProblemBodyToDescription
806 + up db/migrate/029_add_test_allowed_to_problems.rb /^ def self.up$/;" S class:AddTestAllowedToProblems
807 + up db/migrate/030_create_announcements.rb /^ def self.up$/;" S class:CreateAnnouncements
808 + up db/migrate/031_add_supports_for_output_only_problems.rb /^ def self.up$/;" S class:AddSupportsForOutputOnlyProblems
809 + up db/migrate/032_create_messages.rb /^ def self.up$/;" S class:CreateMessages
810 + up db/migrate/033_add_task_type_to_grader_processes.rb /^ def self.up$/;" S class:AddTaskTypeToGraderProcesses
811 + up db/migrate/034_create_countries.rb /^ def self.up$/;" S class:CreateCountries
812 + up db/migrate/035_add_country_to_sites_and_users.rb /^ def self.up$/;" S class:AddCountryToSitesAndUsers
813 + up db/migrate/20081107145815_add_frontpage_flag_to_announcement.rb /^ def self.up$/;" S class:AddFrontpageFlagToAnnouncement
814 + up db/migrate/20081204122651_add_activated_to_users.rb /^ def self.up$/;" S class:AddActivatedToUsers
815 + up db/migrate/20081210021333_add_timestamps_to_users.rb /^ def self.up$/;" S class:AddTimestampsToUsers
816 + up db/migrate/20081215012843_change_user_login_string_limit.rb /^ def self.up$/;" S class:ChangeUserLoginStringLimit
817 + up db/migrate/20090206145016_add_contest_flag_to_announcements.rb /^ def self.up$/;" S class:AddContestFlagToAnnouncements
818 + up db/migrate/20090416235658_add_common_ext_to_languages.rb /^ def self.up$/;" S class:AddCommonExtToLanguages
819 + up db/migrate/20090426131044_add_terminated_to_grader_processes.rb /^ def self.up$/;" S class:AddTerminatedToGraderProcesses
820 + up db/migrate/20090815171610_add_title_to_announcements.rb /^ def self.up$/;" S class:AddTitleToAnnouncements
821 + up db/migrate/20100113094740_create_test_pairs.rb /^ def self.up$/;" S class:CreateTestPairs
822 + up db/migrate/20100124040107_add_description_to_config.rb /^ def self.up$/;" S class:AddDescriptionToConfig
823 + up db/migrate/20100124054458_create_user_contest_stats.rb /^ def self.up$/;" S class:CreateUserContestStats
824 + up db/migrate/20100129041917_change_input_solution_field_limit_in_test_pair.rb /^ def self.up$/;" S class:ChangeInputSolutionFieldLimitInTestPair
825 + up db/migrate/20100216105730_create_contests.rb /^ def self.up$/;" S class:CreateContests
826 + up db/migrate/20100216162324_create_contests_users_join_table.rb /^ def self.up$/;" S class:CreateContestsUsersJoinTable
827 + up db/migrate/20100216162940_create_contests_problems_join_table.rb /^ def self.up$/;" S class:CreateContestsProblemsJoinTable
828 + up db/migrate/20100219014840_add_description_filename_to_problems.rb /^ def self.up$/;" S class:AddDescriptionFilenameToProblems
829 + up db/migrate/20100303095700_add_name_to_contests.rb /^ def self.up$/;" S class:AddNameToContests
830 + up db/migrate/20100328123325_add_forced_logout_to_user_contest_stat.rb /^ def self.up$/;" S class:AddForcedLogoutToUserContestStat
831 + up db/migrate/20100506163112_add_notes_to_announcements.rb /^ def self.up$/;" S class:AddNotesToAnnouncements
832 + up db/migrate/20150503164846_change_userid_on_login.rb /^ def up$/;" f class:ChangeUseridOnLogin
833 + up db/migrate/20150914223258_add_more_config.rb /^ def up$/;" f class:AddMoreConfig
834 + up db/migrate/20150916054105_update_heart_beat.rb /^ def up$/;" f class:UpdateHeartBeat
835 + up db/migrate/20161008050135_modify_grader_process.rb /^ def up$/;" f class:ModifyGraderProcess
836 + up db/migrate/20161031063337_add_config_view_test.rb /^ def up$/;" f class:AddConfigViewTest
837 + up db/migrate/20170427070345_add_heart_beat_full.rb /^ def up$/;" f class:AddHeartBeatFull
637 838 update app/controllers/announcements_controller.rb /^ def update$/;" f class:AnnouncementsController
839 + update app/controllers/configurations_controller.rb /^ def update$/;" f class:ConfigurationsController
638 840 update app/controllers/contests_controller.rb /^ def update$/;" f class:ContestsController
841 + update app/controllers/groups_controller.rb /^ def update$/;" f class:GroupsController
639 842 update app/controllers/problems_controller.rb /^ def update$/;" f class:ProblemsController
640 843 update app/controllers/sites_controller.rb /^ def update$/;" f class:SitesController
641 - update app/controllers/user_admin_controller.rb /^ def update$/;" f
844 + update app/controllers/tags_controller.rb /^ def update$/;" f class:TagsController
845 + update app/controllers/user_admin_controller.rb /^ def update$/;" f class:UserAdminController
642 846 update_start_time app/models/user.rb /^ def update_start_time$/;" f class:User
643 - user_header app/helpers/application_helper.rb /^ def user_header$/;" f class:ApplicationHelper
847 + use_problem_group? app/models/grader_configuration.rb /^ def self.use_problem_group?$/;" S class:GraderConfiguration
848 + user_header app/helpers/application_helper.rb /^ def user_header$/;" f module:ApplicationHelper
849 + user_params app/controllers/user_admin_controller.rb /^ def user_params$/;" f class:UserAdminController
850 + user_params app/controllers/users_controller.rb /^ def user_params$/;" f class:UsersController
644 851 user_stat app/controllers/contest_management_controller.rb /^ def user_stat$/;" f class:ContestManagementController
645 - user_stat app/controllers/user_admin_controller.rb /^ def user_stat$/;" f
646 - user_stat_max app/controllers/user_admin_controller.rb /^ def user_stat_max$/;" f
647 - user_title_bar app/helpers/application_helper.rb /^ def user_title_bar(user)$/;" f class:ApplicationHelper
648 - valid? db/migrate/025_add_site_to_user_and_add_default_site.rb /^ def valid?$/;" f class:AddSiteToUserAndAddDefaultSite.up
649 - valid? db/migrate/20081204122651_add_activated_to_users.rb /^ def valid?$/;" f class:AddActivatedToUsers.up
650 - valid? db/seeds.rb /^ def valid?(context=nil)$/;" f class:seed_root
852 + user_stat app/controllers/user_admin_controller.rb /^ def user_stat$/;" f class:UserAdminController
853 + user_stat_max app/controllers/user_admin_controller.rb /^ def user_stat_max$/;" f class:UserAdminController
854 + user_title_bar app/helpers/application_helper.rb /^ def user_title_bar(user)$/;" f module:ApplicationHelper
855 + valid? db/migrate/025_add_site_to_user_and_add_default_site.rb /^ def valid?$/;" f singletonMethod:AddSiteToUserAndAddDefaultSite.up
856 + valid? db/migrate/20081204122651_add_activated_to_users.rb /^ def valid?$/;" f singletonMethod:AddActivatedToUsers.up
857 + valid? db/seeds.rb /^ def valid?(context=nil)$/;" f method:seed_root
651 858 verify_activation_key app/models/user.rb /^ def verify_activation_key(key)$/;" f class:User
652 859 verify_online_registration app/controllers/users_controller.rb /^ def verify_online_registration$/;" f class:UsersController
653 860 verify_time_limit app/controllers/application_controller.rb /^ def verify_time_limit$/;" f class:ApplicationController
@@ -1,8 +0,0
1 - <h1>New problem</h1>
2 -
3 - <%= form_tag :action => 'create' do %>
4 - <%= render :partial => 'form' %>
5 - <%= submit_tag "Create" %>
6 - <% end %>
7 -
8 - <%= link_to 'Back', problems_path %>
You need to be logged in to leave comments. Login now