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

r775:3d1a060b0378 - - 1 file changed: 5 inserted, 1 deleted

@@ -8,49 +8,49
8 8 in_place_edit_for :problem, :full_score
9 9
10 10 def index
11 11 @problems = Problem.order(date_added: :desc)
12 12 end
13 13
14 14 # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
15 15 verify :method => :post, :only => [ :create, :quick_create,
16 16 :do_manage,
17 17 :do_import,
18 18 ],
19 19 :redirect_to => { :action => :index }
20 20
21 21 def show
22 22 @problem = Problem.find(params[:id])
23 23 end
24 24
25 25 def new
26 26 @problem = Problem.new
27 27 @description = nil
28 28 end
29 29
30 30 def create
31 31 @problem = Problem.new(problem_params)
32 - @description = Description.new(params[:description])
32 + @description = Description.new(description_params)
33 33 if @description.body!=''
34 34 if !@description.save
35 35 render :action => new and return
36 36 end
37 37 else
38 38 @description = nil
39 39 end
40 40 @problem.description = @description
41 41 if @problem.save
42 42 flash[:notice] = 'Problem was successfully created.'
43 43 redirect_to action: :index
44 44 else
45 45 render :action => 'new'
46 46 end
47 47 end
48 48
49 49 def quick_create
50 50 @problem = Problem.new(problem_params)
51 51 @problem.full_name = @problem.name if @problem.full_name == ''
52 52 @problem.full_score = 100
53 53 @problem.available = false
54 54 @problem.test_allowed = true
55 55 @problem.output_only = false
56 56 @problem.date_added = Time.new
@@ -231,48 +231,52
231 231 old_problem)
232 232
233 233 if !@problem.errors.empty?
234 234 render :action => 'import' and return
235 235 end
236 236
237 237 if old_problem!=nil
238 238 flash[:notice] = "The test data has been replaced for problem #{@problem.name}"
239 239 end
240 240 @log = import_log
241 241 end
242 242
243 243 def remove_contest
244 244 problem = Problem.find(params[:id])
245 245 contest = Contest.find(params[:contest_id])
246 246 if problem!=nil and contest!=nil
247 247 problem.contests.delete(contest)
248 248 end
249 249 redirect_to :action => 'manage'
250 250 end
251 251
252 252 ##################################
253 253 protected
254 254
255 + def description_params
256 + params.require(:description).permit(:body, :markdowned)
257 + end
258 +
255 259 def allow_test_pair_import?
256 260 if defined? ALLOW_TEST_PAIR_IMPORT
257 261 return ALLOW_TEST_PAIR_IMPORT
258 262 else
259 263 return false
260 264 end
261 265 end
262 266
263 267 def change_date_added
264 268 problems = get_problems_from_params
265 269 date = Date.parse(params[:date_added])
266 270 problems.each do |p|
267 271 p.date_added = date
268 272 p.save
269 273 end
270 274 end
271 275
272 276 def add_to_contest
273 277 problems = get_problems_from_params
274 278 contest = Contest.find(params[:contest][:id])
275 279 if contest!=nil and contest.enabled
276 280 problems.each do |p|
277 281 p.contests << contest
278 282 end
You need to be logged in to leave comments. Login now