Description:
fixed codejom stutus update to ignore disabled problems
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r246:180b30450ef3 - - 1 file changed: 2 inserted, 2 deleted

@@ -1,25 +1,25
1 - # -*- coding: undecided -*-
1 + # -*- coding: utf-8 -*-
2 require 'digest/sha1'
2 require 'digest/sha1'
3
3
4 class User < ActiveRecord::Base
4 class User < ActiveRecord::Base
5
5
6 has_and_belongs_to_many :roles
6 has_and_belongs_to_many :roles
7
7
8 has_many :test_requests, :order => "submitted_at DESC"
8 has_many :test_requests, :order => "submitted_at DESC"
9
9
10 has_many :messages,
10 has_many :messages,
11 :class_name => "Message",
11 :class_name => "Message",
12 :foreign_key => "sender_id",
12 :foreign_key => "sender_id",
13 :order => 'created_at DESC'
13 :order => 'created_at DESC'
14
14
15 has_many :replied_messages,
15 has_many :replied_messages,
16 :class_name => "Message",
16 :class_name => "Message",
17 :foreign_key => "receiver_id",
17 :foreign_key => "receiver_id",
18 :order => 'created_at DESC'
18 :order => 'created_at DESC'
19
19
20 has_many :test_pair_assignments, :dependent => :delete_all
20 has_many :test_pair_assignments, :dependent => :delete_all
21 has_many :submission_statuses
21 has_many :submission_statuses
22
22
23 has_one :contest_stat, :class_name => "UserContestStat"
23 has_one :contest_stat, :class_name => "UserContestStat"
24
24
25 belongs_to :site
25 belongs_to :site
@@ -213,49 +213,49
213 elsif Configuration.indv_contest_mode?
213 elsif Configuration.indv_contest_mode?
214 time_limit = Configuration.contest_time_limit
214 time_limit = Configuration.contest_time_limit
215
215
216 return false if contest_stat==nil
216 return false if contest_stat==nil
217
217
218 return contest_time_left == 0
218 return contest_time_left == 0
219 else
219 else
220 return false
220 return false
221 end
221 end
222 end
222 end
223
223
224 def contest_started?
224 def contest_started?
225 if Configuration.contest_mode?
225 if Configuration.contest_mode?
226 return true if site==nil
226 return true if site==nil
227 return site.started
227 return site.started
228 else
228 else
229 return true
229 return true
230 end
230 end
231 end
231 end
232
232
233 # For Code Jom
233 # For Code Jom
234 def update_codejom_status
234 def update_codejom_status
235 status = codejom_status || CodejomStatus.new(:user => self)
235 status = codejom_status || CodejomStatus.new(:user => self)
236 problem_count = Problem.available_problem_count
236 problem_count = Problem.available_problem_count
237 - status.num_problems_passed = (self.submission_statuses.find_all {|s| s.passed}).length
237 + status.num_problems_passed = (self.submission_statuses.find_all {|s| s.passed and s.problem.available }).length
238 status.alive = (problem_count - (status.num_problems_passed)) <= CODEJOM_MAX_ALIVE_LEVEL
238 status.alive = (problem_count - (status.num_problems_passed)) <= CODEJOM_MAX_ALIVE_LEVEL
239 status.save
239 status.save
240 end
240 end
241
241
242 def codejom_level
242 def codejom_level
243 problem_count = Problem.available_problem_count
243 problem_count = Problem.available_problem_count
244 if codejom_status!=nil
244 if codejom_status!=nil
245 return problem_count - codejom_status.num_problems_passed
245 return problem_count - codejom_status.num_problems_passed
246 else
246 else
247 return problem_count
247 return problem_count
248 end
248 end
249 end
249 end
250
250
251 protected
251 protected
252 def encrypt_new_password
252 def encrypt_new_password
253 return if password.blank?
253 return if password.blank?
254 self.salt = (10+rand(90)).to_s
254 self.salt = (10+rand(90)).to_s
255 self.hashed_password = User.encrypt(self.password,self.salt)
255 self.hashed_password = User.encrypt(self.password,self.salt)
256 end
256 end
257
257
258 def assign_default_site
258 def assign_default_site
259 # have to catch error when migrating (because self.site is not available).
259 # have to catch error when migrating (because self.site is not available).
260 begin
260 begin
261 if self.site==nil
261 if self.site==nil
You need to be logged in to leave comments. Login now