Description:
added codejom controller, show status in public
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r254:dff48a9ca2cd - - 8 files changed: 54 inserted, 3 deleted

@@ -0,0 +1,13
1 + class CodejomController < ApplicationController
2 +
3 + before_filter :admin_authorization
4 + before_filter :authenticate
5 +
6 + def index
7 + @user = User.find(session[:user_id])
8 + @problems = Problem.find(:all)
9 + @available_problems = @problems.find_all {|p| not p.available }
10 + @activated_problems = @problems.find_all {|p| p.available }
11 + end
12 +
13 + end
@@ -0,0 +1,2
1 + module CodejomHelper
2 + end
@@ -0,0 +1,11
1 + %h1 Code Jom Control Panel
2 +
3 + %h2= "Available problems (#{@available_problems.length})"
4 + %ul
5 + - @available_problems.each do |problem|
6 + %li= problem.name
7 +
8 + %h2= "Activated problems (#{@activated_problems.length})"
9 + - @activated_problems.each do |problem|
10 + = problem.name
11 +
@@ -0,0 +1,8
1 + require 'test_helper'
2 +
3 + class CodejomControllerTest < ActionController::TestCase
4 + # Replace this with your real tests.
5 + test "the truth" do
6 + assert true
7 + end
8 + end
@@ -0,0 +1,4
1 + require 'test_helper'
2 +
3 + class CodejomHelperTest < ActionView::TestCase
4 + end
@@ -1,27 +1,38
1 class StatusesController < ApplicationController
1 class StatusesController < ApplicationController
2
2
3 - # protect the statuses, for now
3 + def index
4 - before_filter :admin_authorization
4 + if not SHOW_CONTEST_STATUS
5 + render :status => 403 and return
6 + end
5
7
6 - def index
7 problem_count = Problem.available_problem_count
8 problem_count = Problem.available_problem_count
8
9
9 @dead_users = []
10 @dead_users = []
10 @level_users = {}
11 @level_users = {}
11 @levels = (0..CODEJOM_MAX_ALIVE_LEVEL)
12 @levels = (0..CODEJOM_MAX_ALIVE_LEVEL)
12 @levels.each { |l| @level_users[l] = [] }
13 @levels.each { |l| @level_users[l] = [] }
13 User.find(:all).each do |user|
14 User.find(:all).each do |user|
14 if user.codejom_status==nil
15 if user.codejom_status==nil
15 user.update_codejom_status
16 user.update_codejom_status
16 user.codejom_status(true) # reload
17 user.codejom_status(true) # reload
17 end
18 end
18
19
19 if not user.codejom_status.alive
20 if not user.codejom_status.alive
20 @dead_users << user
21 @dead_users << user
21 else
22 else
22 @level_users[user.codejom_level] << user
23 @level_users[user.codejom_level] << user
23 end
24 end
24 end
25 end
26 +
27 + respond_to do |format|
28 + format.html
29 + format.xml do
30 + render :xml => {
31 + :levels => @level_users,
32 + :dead_users => @dead_users
33 + }
34 + end
35 + end
25 end
36 end
26
37
27 end
38 end
@@ -99,12 +99,13
99
99
100 # Uncomment so that Apache X-Sendfile is used when delivering files
100 # Uncomment so that Apache X-Sendfile is used when delivering files
101 # (e.g., in /tasks/view).
101 # (e.g., in /tasks/view).
102 # USE_APACHE_XSENDFILE = true
102 # USE_APACHE_XSENDFILE = true
103
103
104 # Uncomment so that configuration is read only once when the server is loaded
104 # Uncomment so that configuration is read only once when the server is loaded
105 # Configuration.enable_caching
105 # Configuration.enable_caching
106
106
107 # OPTIONS FOR CODE JOM
107 # OPTIONS FOR CODE JOM
108 # --------------------
108 # --------------------
109 CODEJOM_MAX_ALIVE_LEVEL = 10
109 CODEJOM_MAX_ALIVE_LEVEL = 10
110 TEST_ASSIGNMENT_EXPIRATION_DURATION = 5.minute
110 TEST_ASSIGNMENT_EXPIRATION_DURATION = 5.minute
111 + SHOW_CONTEST_STATUS = false
@@ -1,15 +1,16
1 ActionController::Routing::Routes.draw do |map|
1 ActionController::Routing::Routes.draw do |map|
2 map.resources :announcements
2 map.resources :announcements
3 map.resources :sites
3 map.resources :sites
4 + map.resources :statuses
4
5
5 # The priority is based upon order of creation: first created -> highest priority.
6 # The priority is based upon order of creation: first created -> highest priority.
6
7
7 # Sample of regular route:
8 # Sample of regular route:
8 # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
9 # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
9 # Keep in mind you can assign values other than :controller and :action
10 # Keep in mind you can assign values other than :controller and :action
10
11
11 # Sample of named route:
12 # Sample of named route:
12 # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
13 # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
13 # This route can be invoked with purchase_url(:id => product.id)
14 # This route can be invoked with purchase_url(:id => product.id)
14
15
15 # You can have the root of your site routed by hooking up ''
16 # You can have the root of your site routed by hooking up ''
You need to be logged in to leave comments. Login now