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

r687:0c1baca84cbc - - 1 file changed: 2 inserted, 2 deleted

@@ -275,99 +275,99
275 275 other_avaiable_problems = Problem.available.find_all {|p| pin[p.id]==nil and p.contests.length==0}
276 276 contest_problems << {
277 277 :contest => nil,
278 278 :problems => other_avaiable_problems
279 279 }
280 280 return contest_problems
281 281 end
282 282
283 283 def solve_all_available_problems?
284 284 available_problems.each do |p|
285 285 u = self
286 286 sub = Submission.find_last_by_user_and_problem(u.id,p.id)
287 287 return false if !p or !sub or sub.points < p.full_score
288 288 end
289 289 return true
290 290 end
291 291
292 292 def available_problems
293 293 if not GraderConfiguration.multicontests?
294 294 if GraderConfiguration.use_problem_group?
295 295 return available_problems_in_group
296 296 else
297 297 return Problem.available_problems
298 298 end
299 299 else
300 300 contest_problems = []
301 301 pin = {}
302 302 contests.enabled.each do |contest|
303 303 contest.problems.available.each do |problem|
304 304 if not pin.has_key? problem.id
305 305 contest_problems << problem
306 306 end
307 307 pin[problem.id] = true
308 308 end
309 309 end
310 310 other_avaiable_problems = Problem.available.find_all {|p| pin[p.id]==nil and p.contests.length==0}
311 311 return contest_problems + other_avaiable_problems
312 312 end
313 313 end
314 314
315 315 def available_problems_in_group
316 316 problem = []
317 317 self.groups.each do |group|
318 318 group.problems.where(available: true).each { |p| problem << p }
319 319 end
320 320 problem.uniq!.sort! do |a,b|
321 321 case
322 322 when a.date_added < b.date_added
323 - -1
323 + 1
324 324 when a.date_added > b.date_added
325 - 1
325 + -1
326 326 else
327 327 a.name <=> b.name
328 328 end
329 329 end
330 330 return problem
331 331 end
332 332
333 333 def can_view_problem?(problem)
334 334 if not GraderConfiguration.multicontests?
335 335 return problem.available
336 336 else
337 337 return problem_in_user_contests? problem
338 338 end
339 339 end
340 340
341 341 def self.clear_last_login
342 342 User.update_all(:last_ip => nil)
343 343 end
344 344
345 345 protected
346 346 def encrypt_new_password
347 347 return if password.blank?
348 348 self.salt = (10+rand(90)).to_s
349 349 self.hashed_password = User.encrypt(self.password,self.salt)
350 350 end
351 351
352 352 def assign_default_site
353 353 # have to catch error when migrating (because self.site is not available).
354 354 begin
355 355 if self.site==nil
356 356 self.site = Site.find_by_name('default')
357 357 if self.site==nil
358 358 self.site = Site.find(1) # when 'default has be renamed'
359 359 end
360 360 end
361 361 rescue
362 362 end
363 363 end
364 364
365 365 def assign_default_contest
366 366 # have to catch error when migrating (because self.site is not available).
367 367 begin
368 368 if self.contests.length == 0
369 369 default_contest = Contest.find_by_name(GraderConfiguration['contest.default_contest_name'])
370 370 if default_contest
371 371 self.contests = [default_contest]
372 372 end
373 373 end
You need to be logged in to leave comments. Login now