# HG changeset patch # User Jittat Fakcharoenphol # Date 2010-01-25 00:54:10 # Node ID 3fd96d06658c432af648730a12b568201c2b2100 # Parent 95cc49d72ca89ff00d6a5396940c645e4125b960 added codejom status view diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb new file mode 100644 --- /dev/null +++ b/app/controllers/statuses_controller.rb @@ -0,0 +1,24 @@ +class StatusesController < ApplicationController + + def index + problem_count = Problem.available_problem_count + + @dead_users = [] + @level_users = {} + @levels = (0..CODEJOM_MAX_ALIVE_LEVEL) + @levels.each { |l| @level_users[l] = [] } + User.find(:all).each do |user| + if user.codejom_status==nil + user.update_codejom_status + user.codejom_status(true) # reload + end + + if not user.codejom_status.alive + @dead_users << user + else + @level_users[user.codejom_level] << user + end + end + end + +end diff --git a/app/helpers/statuses_helper.rb b/app/helpers/statuses_helper.rb new file mode 100644 --- /dev/null +++ b/app/helpers/statuses_helper.rb @@ -0,0 +1,2 @@ +module StatusesHelper +end diff --git a/app/views/layouts/statuses.html.erb b/app/views/layouts/statuses.html.erb new file mode 100644 --- /dev/null +++ b/app/views/layouts/statuses.html.erb @@ -0,0 +1,17 @@ + + + + + + Users: <%= controller.action_name %> + <%= stylesheet_link_tag 'status' %> + + + +

<%= flash[:notice] %>

+ +<%= yield %> + + + diff --git a/app/views/statuses/index.html.erb b/app/views/statuses/index.html.erb new file mode 100644 --- /dev/null +++ b/app/views/statuses/index.html.erb @@ -0,0 +1,17 @@ +

Thailand Code Jom

+ +
+

Bye bye

+ <% @dead_users.each do |user| %> + <%= user.login %> + <% end %> +
+
+ <% @levels.each do |level| %> +
+ <% @level_users[level].each do |user| %> + <%= user.login %> + <% end %> +
+ <% end %> +
diff --git a/public/stylesheets/status.css b/public/stylesheets/status.css new file mode 100644 --- /dev/null +++ b/public/stylesheets/status.css @@ -0,0 +1,79 @@ +h1 { + height: 25px; + color: black; + text-align: center; +} + +#dead-status { + float: right; + width: 200px; + background: black; + color: white; + height: 1000px; + padding: 10px; + line-height: 30px; +} + +.region { + padding: 10px; + text-align: center; + line-height: 30px; +} + +.region-level-0 { + background: #f7f7ff; +} +.region-level-1 { + background: #f0f0ff; +} +.region-level-2 { + background: #e0e0f0; +} +.region-level-3 { + background: #d0d0f0; +} +.region-level-4 { + background: #c0c0d0; +} +.region-level-5 { + background: #b0b0c0; +} +.region-level-6 { + background: #a0a0b0; +} +.region-level-7 { + background: #808090; +} +.region-level-8 { + background: #606080; +} +.region-level-9 { + background: #404080; +} +.region-level-10 { + background: #202060; +} + +.user-label { + -moz-border-radius: 5px; + color: white; + font-weight: bold; + padding-top: 2px; + padding-bottom: 2px; + padding-left: 20px; + padding-right: 20px; + margin: 2px; +} + +.user-level-dead { background: #707070; color: black; } +.user-level-0 { background: #a0a0ff; } +.user-level-1 { background: #7070ff; } +.user-level-2 { background: #6060ff; } +.user-level-3 { background: #5050ff; } +.user-level-4 { background: #5050e0; } +.user-level-5 { background: #5050d0; } +.user-level-6 { background: #4040d0; } +.user-level-7 { background: #4040c0; } +.user-level-8 { background: #4040b0; } +.user-level-9 { background: #2020a0; } +.user-level-10 { background: #202070; } diff --git a/test/functional/statuses_controller_test.rb b/test/functional/statuses_controller_test.rb new file mode 100644 --- /dev/null +++ b/test/functional/statuses_controller_test.rb @@ -0,0 +1,8 @@ +require 'test_helper' + +class StatusesControllerTest < ActionController::TestCase + # Replace this with your real tests. + test "the truth" do + assert true + end +end diff --git a/test/unit/helpers/statuses_helper_test.rb b/test/unit/helpers/statuses_helper_test.rb new file mode 100644 --- /dev/null +++ b/test/unit/helpers/statuses_helper_test.rb @@ -0,0 +1,4 @@ +require 'test_helper' + +class StatusesHelperTest < ActionView::TestCase +end