Description:
fix change date not working in problem bulk manage
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r739:dd100c4f33f7 - - 1 file changed: 1 inserted, 1 deleted

@@ -211,100 +211,100
211 flash[:alert] = "The following problems are already in the group #{group.name}: " + failed.join(', ') if failed.count > 0
211 flash[:alert] = "The following problems are already in the group #{group.name}: " + failed.join(', ') if failed.count > 0
212 elsif params.has_key? 'add_tags'
212 elsif params.has_key? 'add_tags'
213 get_problems_from_params.each do |p|
213 get_problems_from_params.each do |p|
214 p.tag_ids += params[:tag_ids]
214 p.tag_ids += params[:tag_ids]
215 end
215 end
216 end
216 end
217
217
218 redirect_to :action => 'manage'
218 redirect_to :action => 'manage'
219 end
219 end
220
220
221 def import
221 def import
222 @allow_test_pair_import = allow_test_pair_import?
222 @allow_test_pair_import = allow_test_pair_import?
223 end
223 end
224
224
225 def do_import
225 def do_import
226 old_problem = Problem.find_by_name(params[:name])
226 old_problem = Problem.find_by_name(params[:name])
227 if !allow_test_pair_import? and params.has_key? :import_to_db
227 if !allow_test_pair_import? and params.has_key? :import_to_db
228 params.delete :import_to_db
228 params.delete :import_to_db
229 end
229 end
230 @problem, import_log = Problem.create_from_import_form_params(params,
230 @problem, import_log = Problem.create_from_import_form_params(params,
231 old_problem)
231 old_problem)
232
232
233 if !@problem.errors.empty?
233 if !@problem.errors.empty?
234 render :action => 'import' and return
234 render :action => 'import' and return
235 end
235 end
236
236
237 if old_problem!=nil
237 if old_problem!=nil
238 flash[:notice] = "The test data has been replaced for problem #{@problem.name}"
238 flash[:notice] = "The test data has been replaced for problem #{@problem.name}"
239 end
239 end
240 @log = import_log
240 @log = import_log
241 end
241 end
242
242
243 def remove_contest
243 def remove_contest
244 problem = Problem.find(params[:id])
244 problem = Problem.find(params[:id])
245 contest = Contest.find(params[:contest_id])
245 contest = Contest.find(params[:contest_id])
246 if problem!=nil and contest!=nil
246 if problem!=nil and contest!=nil
247 problem.contests.delete(contest)
247 problem.contests.delete(contest)
248 end
248 end
249 redirect_to :action => 'manage'
249 redirect_to :action => 'manage'
250 end
250 end
251
251
252 ##################################
252 ##################################
253 protected
253 protected
254
254
255 def allow_test_pair_import?
255 def allow_test_pair_import?
256 if defined? ALLOW_TEST_PAIR_IMPORT
256 if defined? ALLOW_TEST_PAIR_IMPORT
257 return ALLOW_TEST_PAIR_IMPORT
257 return ALLOW_TEST_PAIR_IMPORT
258 else
258 else
259 return false
259 return false
260 end
260 end
261 end
261 end
262
262
263 def change_date_added
263 def change_date_added
264 problems = get_problems_from_params
264 problems = get_problems_from_params
265 date = Date.parse(params[:date_added])
265 date = Date.parse(params[:date_added])
266 problems.each do |p|
266 problems.each do |p|
267 p.date_added = date
267 p.date_added = date
268 p.save
268 p.save
269 end
269 end
270 end
270 end
271
271
272 def add_to_contest
272 def add_to_contest
273 problems = get_problems_from_params
273 problems = get_problems_from_params
274 contest = Contest.find(params[:contest][:id])
274 contest = Contest.find(params[:contest][:id])
275 if contest!=nil and contest.enabled
275 if contest!=nil and contest.enabled
276 problems.each do |p|
276 problems.each do |p|
277 p.contests << contest
277 p.contests << contest
278 end
278 end
279 end
279 end
280 end
280 end
281
281
282 def set_available(avail)
282 def set_available(avail)
283 problems = get_problems_from_params
283 problems = get_problems_from_params
284 problems.each do |p|
284 problems.each do |p|
285 p.available = avail
285 p.available = avail
286 p.save
286 p.save
287 end
287 end
288 end
288 end
289
289
290 def get_problems_from_params
290 def get_problems_from_params
291 problems = []
291 problems = []
292 params.keys.each do |k|
292 params.keys.each do |k|
293 if k.index('prob-')==0
293 if k.index('prob-')==0
294 name, id, order = k.split('-')
294 name, id, order = k.split('-')
295 problems << Problem.find(id)
295 problems << Problem.find(id)
296 end
296 end
297 end
297 end
298 problems
298 problems
299 end
299 end
300
300
301 def get_problems_stat
301 def get_problems_stat
302 end
302 end
303
303
304 private
304 private
305
305
306 def problem_params
306 def problem_params
307 - params.require(:problem).permit(:name, :full_name, :full_score, :date_added, :available, :test_allowed,:output_only, :url, :description, tag_ids:[])
307 + params.require(:problem).permit(:name, :full_name, :full_score, :change_date_added, :date_added, :available, :test_allowed,:output_only, :url, :description, tag_ids:[])
308 end
308 end
309
309
310 end
310 end
You need to be logged in to leave comments. Login now