Description:
added codejom controller, show status in public
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
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,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 | 1 | class StatusesController < ApplicationController |
|
2 | 2 | |
|
3 | - # protect the statuses, for now | |
|
4 | - before_filter :admin_authorization | |
|
3 | + def index | |
|
4 | + if not SHOW_CONTEST_STATUS | |
|
5 | + render :status => 403 and return | |
|
6 | + end | |
|
5 | 7 | |
|
6 | - def index | |
|
7 | 8 | problem_count = Problem.available_problem_count |
|
8 | 9 | |
|
9 | 10 | @dead_users = [] |
|
10 | 11 | @level_users = {} |
|
11 | 12 | @levels = (0..CODEJOM_MAX_ALIVE_LEVEL) |
|
12 | 13 | @levels.each { |l| @level_users[l] = [] } |
|
13 | 14 | User.find(:all).each do |user| |
|
14 | 15 | if user.codejom_status==nil |
|
15 | 16 | user.update_codejom_status |
|
16 | 17 | user.codejom_status(true) # reload |
|
17 | 18 | end |
|
18 | 19 | |
|
19 | 20 | if not user.codejom_status.alive |
|
20 | 21 | @dead_users << user |
|
21 | 22 | else |
|
22 | 23 | @level_users[user.codejom_level] << user |
|
23 | 24 | end |
|
24 | 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 | 36 | end |
|
26 | 37 | |
|
27 | 38 | end |
@@ -99,12 +99,13 | |||
|
99 | 99 | |
|
100 | 100 | # Uncomment so that Apache X-Sendfile is used when delivering files |
|
101 | 101 | # (e.g., in /tasks/view). |
|
102 | 102 | # USE_APACHE_XSENDFILE = true |
|
103 | 103 | |
|
104 | 104 | # Uncomment so that configuration is read only once when the server is loaded |
|
105 | 105 | # Configuration.enable_caching |
|
106 | 106 | |
|
107 | 107 | # OPTIONS FOR CODE JOM |
|
108 | 108 | # -------------------- |
|
109 | 109 | CODEJOM_MAX_ALIVE_LEVEL = 10 |
|
110 | 110 | TEST_ASSIGNMENT_EXPIRATION_DURATION = 5.minute |
|
111 | + SHOW_CONTEST_STATUS = false |
@@ -1,15 +1,16 | |||
|
1 | 1 | ActionController::Routing::Routes.draw do |map| |
|
2 | 2 | map.resources :announcements |
|
3 | 3 | map.resources :sites |
|
4 | + map.resources :statuses | |
|
4 | 5 | |
|
5 | 6 | # The priority is based upon order of creation: first created -> highest priority. |
|
6 | 7 | |
|
7 | 8 | # Sample of regular route: |
|
8 | 9 | # map.connect 'products/:id', :controller => 'catalog', :action => 'view' |
|
9 | 10 | # Keep in mind you can assign values other than :controller and :action |
|
10 | 11 | |
|
11 | 12 | # Sample of named route: |
|
12 | 13 | # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase' |
|
13 | 14 | # This route can be invoked with purchase_url(:id => product.id) |
|
14 | 15 | |
|
15 | 16 | # You can have the root of your site routed by hooking up '' |
You need to be logged in to leave comments.
Login now