Description:
added options to enable test-pair import
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r212:e6f50b45f902 - - 3 files changed: 24 inserted, 7 deleted

@@ -138,44 +138,56
138 def manage
138 def manage
139 @problems = Problem.find(:all, :order => 'date_added DESC')
139 @problems = Problem.find(:all, :order => 'date_added DESC')
140 end
140 end
141
141
142 def do_manage
142 def do_manage
143 if params.has_key? 'change_date_added'
143 if params.has_key? 'change_date_added'
144 change_date_added
144 change_date_added
145 end
145 end
146 redirect_to :action => 'manage'
146 redirect_to :action => 'manage'
147 end
147 end
148
148
149 def import
149 def import
150 + @allow_test_pair_import = allow_test_pair_import?
150 end
151 end
151
152
152 def do_import
153 def do_import
153 old_problem = Problem.find_by_name(params[:name])
154 old_problem = Problem.find_by_name(params[:name])
155 + if !allow_test_pair_import? and params.has_key? :import_to_db
156 + params.delete :import_to_db
157 + end
154 @problem, import_log = Problem.create_from_import_form_params(params,
158 @problem, import_log = Problem.create_from_import_form_params(params,
155 old_problem)
159 old_problem)
156
160
157 if @problem.errors.length != 0
161 if @problem.errors.length != 0
158 render :action => 'import' and return
162 render :action => 'import' and return
159 end
163 end
160
164
161 if old_problem!=nil
165 if old_problem!=nil
162 flash[:notice] = "The test data has been replaced for problem #{@problem.name}"
166 flash[:notice] = "The test data has been replaced for problem #{@problem.name}"
163 end
167 end
164 @log = import_log
168 @log = import_log
165 end
169 end
166
170
167 ##################################
171 ##################################
168 protected
172 protected
169
173
174 + def allow_test_pair_import?
175 + if defined? ALLOW_TEST_PAIR_IMPORT
176 + return ALLOW_TEST_PAIR_IMPORT
177 + else
178 + return false
179 + end
180 + end
181 +
170 def change_date_added
182 def change_date_added
171 problems = get_problems_from_params
183 problems = get_problems_from_params
172 year = params[:date_added][:year].to_i
184 year = params[:date_added][:year].to_i
173 month = params[:date_added][:month].to_i
185 month = params[:date_added][:month].to_i
174 day = params[:date_added][:day].to_i
186 day = params[:date_added][:day].to_i
175 date = Date.new(year,month,day)
187 date = Date.new(year,month,day)
176 problems.each do |p|
188 problems.each do |p|
177 p.date_added = date
189 p.date_added = date
178 p.save
190 p.save
179 end
191 end
180 end
192 end
181
193
@@ -24,29 +24,30
24 %td Testdata file:
24 %td Testdata file:
25 %td= file_field_tag 'file'
25 %td= file_field_tag 'file'
26 %tr
26 %tr
27 %td
27 %td
28 %td
28 %td
29 %span{:class => 'help'}
29 %span{:class => 'help'}
30 In .zip, .tgz, tar.gz, .tar format.
30 In .zip, .tgz, tar.gz, .tar format.
31 It should includes inputs (e.g., 1.in, 2a.in, 2b.in)
31 It should includes inputs (e.g., 1.in, 2a.in, 2b.in)
32 and solutions (e.g., 1.sol, 2a.sol, 2b.sol).
32 and solutions (e.g., 1.sol, 2a.sol, 2b.sol).
33 %br/
33 %br/
34 You may put task description in *.html for raw html
34 You may put task description in *.html for raw html
35 and *.md or *.markdown for markdown.
35 and *.md or *.markdown for markdown.
36 - %tr
36 + - if @allow_test_pair_import
37 - %td
37 + %tr
38 - %td
38 + %td
39 - = check_box_tag 'import_to_db'
39 + %td
40 - Import test data to database (for a test-pair task)
40 + = check_box_tag 'import_to_db'
41 + Import test data to database (for a test-pair task)
41 %tr
42 %tr
42 %td Time limit:
43 %td Time limit:
43 %td
44 %td
44 = text_field_tag 'time_limit'
45 = text_field_tag 'time_limit'
45 %span{:class => 'help'} In seconds. Leave blank to use 1 sec.
46 %span{:class => 'help'} In seconds. Leave blank to use 1 sec.
46 %tr
47 %tr
47 %td Memory limit:
48 %td Memory limit:
48 %td
49 %td
49 = text_field_tag 'memory_limit'
50 = text_field_tag 'memory_limit'
50 %span{:class => 'help'} In MB. Leave blank to use 32MB.
51 %span{:class => 'help'} In MB. Leave blank to use 32MB.
51 %tr
52 %tr
52 %td
53 %td
@@ -81,21 +81,25
81
81
82 # These are where inputs and outputs of test requests are stored
82 # These are where inputs and outputs of test requests are stored
83 TEST_REQUEST_INPUT_FILE_DIR = RAILS_ROOT + '/data/test_request/input'
83 TEST_REQUEST_INPUT_FILE_DIR = RAILS_ROOT + '/data/test_request/input'
84 TEST_REQUEST_OUTPUT_FILE_DIR = RAILS_ROOT + '/data/test_request/output'
84 TEST_REQUEST_OUTPUT_FILE_DIR = RAILS_ROOT + '/data/test_request/output'
85
85
86 # To use ANALYSIS MODE, provide the testcases/testruns breakdown,
86 # To use ANALYSIS MODE, provide the testcases/testruns breakdown,
87 # and the directory of the grading result (usually in judge's dir).
87 # and the directory of the grading result (usually in judge's dir).
88 TASK_GRADING_INFO_FILENAME = RAILS_ROOT + '/config/tasks.yml'
88 TASK_GRADING_INFO_FILENAME = RAILS_ROOT + '/config/tasks.yml'
89
89
90 # TODO: change this to where results are kept.
90 # TODO: change this to where results are kept.
91 GRADING_RESULT_DIR = 'RESULT-DIR'
91 GRADING_RESULT_DIR = 'RESULT-DIR'
92
92
93 - # Uncomment so that configuration is read only once when the server is loaded
93 + # Change this to allow importing testdata into database as test-pairs.
94 - # Configuration.enable_caching
94 + # This is mainly for Code Jom contest.
95 + ALLOW_TEST_PAIR_IMPORT = false
95
96
96 # Uncomment so that the system validates user e-mails
97 # Uncomment so that the system validates user e-mails
97 # VALIDATE_USER_EMAILS = true
98 # VALIDATE_USER_EMAILS = true
98
99
99 # Uncomment so that Apache X-Sendfile is used when delivering files
100 # Uncomment so that Apache X-Sendfile is used when delivering files
100 # (e.g., in /tasks/view).
101 # (e.g., in /tasks/view).
101 # USE_APACHE_XSENDFILE = true
102 # USE_APACHE_XSENDFILE = true
103 +
104 + # Uncomment so that configuration is read only once when the server is loaded
105 + # Configuration.enable_caching
You need to be logged in to leave comments. Login now