# HG changeset patch # User jittat # Date 2008-02-08 08:43:10 # Node ID 4d37e9a6cab5faad4d2e1051c7f7af48b69c8262 # Parent d8813c40713d807603bcac2f9d376583754828b7 +task description git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@43 6386c4cd-e34a-4fa8-8920-d93eb39b512e diff --git a/NOTES b/NOTES new file mode 100644 --- /dev/null +++ b/NOTES @@ -0,0 +1,69 @@ +Steps +===== + +1. Set up mongrel_cluster + +follow: http://mongrel.rubyforge.org/docs/mongrel_cluster.html + +run it with user ioi:ioi + + +2. Set up Apache + +in general follow: +http://mongrel.rubyforge.org/docs/apache.html + +2.1 enable mods + +run: +sudo a2enmod rewrite +sudo a2enmod proxy +sudo a2enmod proxy_balancer +sudo a2enmod proxy_http +sudo a2enmod deflate +sudo a2enmod headers + +2.2 edit virtual host at /etc/apache2/site-(available|enabled) + +added: +=========================================== + + Options FollowSymLinks + AllowOverride None + Order allow,deny + Allow from all + + + + BalancerMember http://127.0.0.1:8000 + BalancerMember http://127.0.0.1:8001 + BalancerMember http://127.0.0.1:8002 + BalancerMember http://127.0.0.1:8003 + BalancerMember http://127.0.0.1:8004 + Allow from localhost + + +# can't use proxypass because we want access to balancer-manager +#ProxyPass / balancer://mongrel_cluster/ +#ProxyPassReverse / balancer://mongrel_cluster/ + + + SetHandler balancer-manager + + +RewriteEngine On + +# Uncomment for rewrite debugging +RewriteLog "/var/log/apache2/ioi_rewrite.log" +RewriteLogLevel 9 + +# Rewrite to check for Rails cached page +RewriteRule ^([^.]+)$ $1.html [QSA] + +# Redirect all non-static requests to cluster +RewriteCond %{REQUEST_URI} !^/balancer-manager/(.*)$ +RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f +RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L] +=========================================== + + diff --git a/app/views/main/list.rhtml b/app/views/main/list.rhtml --- a/app/views/main/list.rhtml +++ b/app/views/main/list.rhtml @@ -22,6 +22,7 @@
<%= "#{i+1}: #{p.full_name} (#{p.name})" %> + <%= link_to '[task description]', p.url if p.url!=nil %>
<%= format_submission(@prob_submissions[i][1], diff --git a/app/views/problems/_form.rhtml b/app/views/problems/_form.rhtml --- a/app/views/problems/_form.rhtml +++ b/app/views/problems/_form.rhtml @@ -13,6 +13,9 @@


<%= date_select 'problem', 'date_added' %>

+


+<%= text_field 'problem', 'url' %>

+


<%= select("problem","available",[['True',true],['False',false]]) %>

diff --git a/db/migrate/013_add_url_to_problem.rb b/db/migrate/013_add_url_to_problem.rb new file mode 100644 --- /dev/null +++ b/db/migrate/013_add_url_to_problem.rb @@ -0,0 +1,9 @@ +class AddUrlToProblem < ActiveRecord::Migration + def self.up + add_column :problems, :url, :string + end + + def self.down + remove_column :problems, :url + end +end diff --git a/db/schema.rb b/db/schema.rb --- a/db/schema.rb +++ b/db/schema.rb @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 12) do +ActiveRecord::Schema.define(:version => 13) do create_table "languages", :force => true do |t| t.string "name", :limit => 10 @@ -23,6 +23,7 @@ t.integer "full_score" t.date "date_added" t.boolean "available" + t.string "url" end create_table "rights", :force => true do |t|