Description:
merge
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r478:489c9011341f - - 4 files changed: 17 inserted, 179 deleted
@@ -0,0 +1,6 | |||||
|
|
1 | + class AddMoreToUsers < ActiveRecord::Migration | ||
|
|
2 | + def change | ||
|
|
3 | + add_column :users, :enabled, :boolean, default: 1 | ||
|
|
4 | + add_column :users, :remark, :string | ||
|
|
5 | + end | ||
|
|
6 | + end |
@@ -1,182 +1,10 | |||||
|
1 | - == Welcome to Rails |
|
1 | + == cafe grader |
|
2 | - |
|
||
|
3 | - Rails is a web-application and persistence framework that includes everything |
|
||
|
4 | - needed to create database-backed web-applications according to the |
|
||
|
5 | - Model-View-Control pattern of separation. This pattern splits the view (also |
|
||
|
6 | - called the presentation) into "dumb" templates that are primarily responsible |
|
||
|
7 | - for inserting pre-built data in between HTML tags. The model contains the |
|
||
|
8 | - "smart" domain objects (such as Account, Product, Person, Post) that holds all |
|
||
|
9 | - the business logic and knows how to persist themselves to a database. The |
|
||
|
10 | - controller handles the incoming requests (such as Save New Account, Update |
|
||
|
11 | - Product, Show Post) by manipulating the model and directing data to the view. |
|
||
|
12 | - |
|
||
|
13 | - In Rails, the model is handled by what's called an object-relational mapping |
|
||
|
14 | - layer entitled Active Record. This layer allows you to present the data from |
|
||
|
15 | - database rows as objects and embellish these data objects with business logic |
|
||
|
16 | - methods. You can read more about Active Record in |
|
||
|
17 | - link:files/vendor/rails/activerecord/README.html. |
|
||
|
18 | - |
|
||
|
19 | - The controller and view are handled by the Action Pack, which handles both |
|
||
|
20 | - layers by its two parts: Action View and Action Controller. These two layers |
|
||
|
21 | - are bundled in a single package due to their heavy interdependence. This is |
|
||
|
22 | - unlike the relationship between the Active Record and Action Pack that is much |
|
||
|
23 | - more separate. Each of these packages can be used independently outside of |
|
||
|
24 | - Rails. You can read more about Action Pack in |
|
||
|
25 | - link:files/vendor/rails/actionpack/README.html. |
|
||
|
26 | - |
|
||
|
27 | - |
|
||
|
28 | - == Getting started |
|
||
|
29 | - |
|
||
|
30 | - 1. At the command prompt, start a new rails application using the rails command |
|
||
|
31 | - and your application name. Ex: rails myapp |
|
||
|
32 | - (If you've downloaded rails in a complete tgz or zip, this step is already done) |
|
||
|
33 | - 2. Change directory into myapp and start the web server: <tt>script/server</tt> (run with --help for options) |
|
||
|
34 | - 3. Go to http://localhost:3000/ and get "Welcome aboard: You’re riding the Rails!" |
|
||
|
35 | - 4. Follow the guidelines to start developing your application |
|
||
|
36 | - |
|
||
|
37 | - |
|
||
|
38 | - == Web Servers |
|
||
|
39 | - |
|
||
|
40 | - By default, Rails will try to use Mongrel and lighttpd if they are installed, otherwise |
|
||
|
41 | - Rails will use the WEBrick, the webserver that ships with Ruby. When you run script/server, |
|
||
|
42 | - Rails will check if Mongrel exists, then lighttpd and finally fall back to WEBrick. This ensures |
|
||
|
43 | - that you can always get up and running quickly. |
|
||
|
44 |
|
2 | ||
|
45 | - Mongrel is a Ruby-based webserver with a C-component (which requires compilation) that is |
|
3 | + cafe grader is a programming contest platform used in Thailand IOI training. |
|
46 | - suitable for development and deployment of Rails applications. If you have Ruby Gems installed, |
|
4 | + The package includes 2 repositories, jittat/cafe-grader-web and jittat/cafe-grader-judge-scripts. |
|
47 | - getting up and running with mongrel is as easy as: <tt>gem install mongrel</tt>. |
|
||
|
48 | - More info at: http://mongrel.rubyforge.org |
|
||
|
49 | - |
|
||
|
50 | - If Mongrel is not installed, Rails will look for lighttpd. It's considerably faster than |
|
||
|
51 | - Mongrel and WEBrick and also suited for production use, but requires additional |
|
||
|
52 | - installation and currently only works well on OS X/Unix (Windows users are encouraged |
|
||
|
53 | - to start with Mongrel). We recommend version 1.4.11 and higher. You can download it from |
|
||
|
54 | - http://www.lighttpd.net. |
|
||
|
55 | - |
|
||
|
56 | - And finally, if neither Mongrel or lighttpd are installed, Rails will use the built-in Ruby |
|
||
|
57 | - web server, WEBrick. WEBrick is a small Ruby web server suitable for development, but not |
|
||
|
58 | - for production. |
|
||
|
59 | - |
|
||
|
60 | - But of course its also possible to run Rails on any platform that supports FCGI. |
|
||
|
61 | - Apache, LiteSpeed, IIS are just a few. For more information on FCGI, |
|
||
|
62 | - please visit: http://wiki.rubyonrails.com/rails/pages/FastCGI |
|
||
|
63 | - |
|
||
|
64 | - |
|
||
|
65 | - == Debugging Rails |
|
||
|
66 | - |
|
||
|
67 | - Have "tail -f" commands running on the server.log and development.log. Rails will |
|
||
|
68 | - automatically display debugging and runtime information to these files. Debugging |
|
||
|
69 | - info will also be shown in the browser on requests from 127.0.0.1. |
|
||
|
70 | - |
|
||
|
71 | - |
|
||
|
72 | - == Breakpoints |
|
||
|
73 | - |
|
||
|
74 | - Breakpoint support is available through the script/breakpointer client. This |
|
||
|
75 | - means that you can break out of execution at any point in the code, investigate |
|
||
|
76 | - and change the model, AND then resume execution! Example: |
|
||
|
77 | - |
|
||
|
78 | - class WeblogController < ActionController::Base |
|
||
|
79 | - def index |
|
||
|
80 | - @posts = Post.find(:all) |
|
||
|
81 | - breakpoint "Breaking out from the list" |
|
||
|
82 | - end |
|
||
|
83 | - end |
|
||
|
84 | - |
|
||
|
85 | - So the controller will accept the action, run the first line, then present you |
|
||
|
86 | - with a IRB prompt in the breakpointer window. Here you can do things like: |
|
||
|
87 | - |
|
||
|
88 | - Executing breakpoint "Breaking out from the list" at .../webrick_server.rb:16 in 'breakpoint' |
|
||
|
89 |
|
5 | ||
|
90 | - >> @posts.inspect |
|
6 | + === Installation |
|
91 | - => "[#<Post:0x14a6be8 @attributes={\"title\"=>nil, \"body\"=>nil, \"id\"=>\"1\"}>, |
|
||
|
92 | - #<Post:0x14a6620 @attributes={\"title\"=>\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" |
|
||
|
93 | - >> @posts.first.title = "hello from a breakpoint" |
|
||
|
94 | - => "hello from a breakpoint" |
|
||
|
95 | - |
|
||
|
96 | - ...and even better is that you can examine how your runtime objects actually work: |
|
||
|
97 | - |
|
||
|
98 | - >> f = @posts.first |
|
||
|
99 | - => #<Post:0x13630c4 @attributes={"title"=>nil, "body"=>nil, "id"=>"1"}> |
|
||
|
100 | - >> f. |
|
||
|
101 | - Display all 152 possibilities? (y or n) |
|
||
|
102 | - |
|
||
|
103 | - Finally, when you're ready to resume execution, you press CTRL-D |
|
||
|
104 | - |
|
||
|
105 | - |
|
||
|
106 | - == Console |
|
||
|
107 | - |
|
||
|
108 | - You can interact with the domain model by starting the console through <tt>script/console</tt>. |
|
||
|
109 | - Here you'll have all parts of the application configured, just like it is when the |
|
||
|
110 | - application is running. You can inspect domain models, change values, and save to the |
|
||
|
111 | - database. Starting the script without arguments will launch it in the development environment. |
|
||
|
112 | - Passing an argument will specify a different environment, like <tt>script/console production</tt>. |
|
||
|
113 | - |
|
||
|
114 | - To reload your controllers and models after launching the console run <tt>reload!</tt> |
|
||
|
115 | - |
|
||
|
116 | - To reload your controllers and models after launching the console run <tt>reload!</tt> |
|
||
|
117 | - |
|
||
|
118 | - |
|
||
|
119 | - |
|
||
|
120 | - == Description of contents |
|
||
|
121 | - |
|
||
|
122 | - app |
|
||
|
123 | - Holds all the code that's specific to this particular application. |
|
||
|
124 | - |
|
||
|
125 | - app/controllers |
|
||
|
126 | - Holds controllers that should be named like weblogs_controller.rb for |
|
||
|
127 | - automated URL mapping. All controllers should descend from ApplicationController |
|
||
|
128 | - which itself descends from ActionController::Base. |
|
||
|
129 | - |
|
||
|
130 | - app/models |
|
||
|
131 | - Holds models that should be named like post.rb. |
|
||
|
132 | - Most models will descend from ActiveRecord::Base. |
|
||
|
133 |
|
7 | ||
|
134 | - app/views |
|
8 | + The system is tested on ubuntu 14.04 LTS. Use the installation script in |
|
135 | - Holds the template files for the view that should be named like |
|
9 | + cafe-grader-judge-scripts/installer/install.sh . See http://theory.cpe.ku.ac.th/wiki/index.php/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87_Cafe_grader for the detail. |
|
136 | - weblogs/index.rhtml for the WeblogsController#index action. All views use eRuby |
|
||
|
137 | - syntax. |
|
||
|
138 | - |
|
||
|
139 | - app/views/layouts |
|
||
|
140 | - Holds the template files for layouts to be used with views. This models the common |
|
||
|
141 | - header/footer method of wrapping views. In your views, define a layout using the |
|
||
|
142 | - <tt>layout :default</tt> and create a file named default.rhtml. Inside default.rhtml, |
|
||
|
143 | - call <% yield %> to render the view using this layout. |
|
||
|
144 | - |
|
||
|
145 | - app/helpers |
|
||
|
146 | - Holds view helpers that should be named like weblogs_helper.rb. These are generated |
|
||
|
147 | - for you automatically when using script/generate for controllers. Helpers can be used to |
|
||
|
148 | - wrap functionality for your views into methods. |
|
||
|
149 | - |
|
||
|
150 | - config |
|
||
|
151 | - Configuration files for the Rails environment, the routing map, the database, and other dependencies. |
|
||
|
152 | - |
|
||
|
153 | - components |
|
||
|
154 | - Self-contained mini-applications that can bundle together controllers, models, and views. |
|
||
|
155 |
|
10 | ||
|
156 | - db |
|
||
|
157 | - Contains the database schema in schema.rb. db/migrate contains all |
|
||
|
158 | - the sequence of Migrations for your schema. |
|
||
|
159 | - |
|
||
|
160 | - doc |
|
||
|
161 | - This directory is where your application documentation will be stored when generated |
|
||
|
162 | - using <tt>rake doc:app</tt> |
|
||
|
163 | - |
|
||
|
164 | - lib |
|
||
|
165 | - Application specific libraries. Basically, any kind of custom code that doesn't |
|
||
|
166 | - belong under controllers, models, or helpers. This directory is in the load path. |
|
||
|
167 | - |
|
||
|
168 | - public |
|
||
|
169 | - The directory available for the web server. Contains subdirectories for images, stylesheets, |
|
||
|
170 | - and javascripts. Also contains the dispatchers and the default HTML files. This should be |
|
||
|
171 | - set as the DOCUMENT_ROOT of your web server. |
|
||
|
172 | - |
|
||
|
173 | - script |
|
||
|
174 | - Helper scripts for automation and generation. |
|
||
|
175 | - |
|
||
|
176 | - test |
|
||
|
177 | - Unit and functional tests along with fixtures. When using the script/generate scripts, template |
|
||
|
178 | - test files will be generated for you and placed in this directory. |
|
||
|
179 | - |
|
||
|
180 | - vendor |
|
||
|
181 | - External libraries that the application depends on. Also includes the plugins subdirectory. |
|
||
|
182 | - This directory is in the load path. |
|
@@ -31,12 +31,13 | |||||
|
31 | %tr |
|
31 | %tr |
|
32 | %th User |
|
32 | %th User |
|
33 | %th Name |
|
33 | %th Name |
|
34 | %th Activated? |
|
34 | %th Activated? |
|
35 | %th Logged in |
|
35 | %th Logged in |
|
36 | %th Contest(s) |
|
36 | %th Contest(s) |
|
|
37 | + %th Remark | ||
|
37 | - @problems.each do |p| |
|
38 | - @problems.each do |p| |
|
38 | %th= p.name |
|
39 | %th= p.name |
|
39 | %th Total |
|
40 | %th Total |
|
40 | %th Passed |
|
41 | %th Passed |
|
41 | %tbody |
|
42 | %tbody |
|
42 | - @scorearray.each do |sc| |
|
43 | - @scorearray.each do |sc| |
@@ -46,12 +47,13 | |||||
|
46 | - if i == 0 |
|
47 | - if i == 0 |
|
47 | %td= link_to sc[i].login, controller: 'users', action: 'profile', id: sc[i] |
|
48 | %td= link_to sc[i].login, controller: 'users', action: 'profile', id: sc[i] |
|
48 | %td= sc[i].full_name |
|
49 | %td= sc[i].full_name |
|
49 | %td= sc[i].activated |
|
50 | %td= sc[i].activated |
|
50 | %td= sc[i].try(:contest_stat).try(:started_at)!=nil ? 'yes' : 'no' |
|
51 | %td= sc[i].try(:contest_stat).try(:started_at)!=nil ? 'yes' : 'no' |
|
51 | %td= sc[i].contests.collect {|c| c.name}.join(', ') |
|
52 | %td= sc[i].contests.collect {|c| c.name}.join(', ') |
|
|
53 | + %td= sc[i].remark | ||
|
52 | - else |
|
54 | - else |
|
53 | %td= sc[i][0] |
|
55 | %td= sc[i][0] |
|
54 | - total += sc[i][0] |
|
56 | - total += sc[i][0] |
|
55 | - num_passed += 1 if sc[i][1] |
|
57 | - num_passed += 1 if sc[i][1] |
|
56 | %td= total |
|
58 | %td= total |
|
57 | %td= num_passed |
|
59 | %td= num_passed |
@@ -8,13 +8,13 | |||||
|
8 | # system, you should be using db:schema:load, not running all the migrations |
|
8 | # system, you should be using db:schema:load, not running all the migrations |
|
9 | # from scratch. The latter is a flawed and unsustainable approach (the more migrations |
|
9 | # from scratch. The latter is a flawed and unsustainable approach (the more migrations |
|
10 | # you'll amass, the slower it'll run and the greater likelihood for issues). |
|
10 | # you'll amass, the slower it'll run and the greater likelihood for issues). |
|
11 | # |
|
11 | # |
|
12 | # It's strongly recommended to check this file into your version control system. |
|
12 | # It's strongly recommended to check this file into your version control system. |
|
13 |
|
13 | ||
|
14 |
- ActiveRecord::Schema.define(:version => 201 |
|
14 | + ActiveRecord::Schema.define(:version => 20150203153534) do |
|
15 |
|
15 | ||
|
16 | create_table "announcements", :force => true do |t| |
|
16 | create_table "announcements", :force => true do |t| |
|
17 | t.string "author" |
|
17 | t.string "author" |
|
18 | t.text "body" |
|
18 | t.text "body" |
|
19 | t.boolean "published" |
|
19 | t.boolean "published" |
|
20 | t.datetime "created_at", :null => false |
|
20 | t.datetime "created_at", :null => false |
@@ -236,11 +236,13 | |||||
|
236 | t.string "email" |
|
236 | t.string "email" |
|
237 | t.integer "site_id" |
|
237 | t.integer "site_id" |
|
238 | t.integer "country_id" |
|
238 | t.integer "country_id" |
|
239 | t.boolean "activated", :default => false |
|
239 | t.boolean "activated", :default => false |
|
240 | t.datetime "created_at" |
|
240 | t.datetime "created_at" |
|
241 | t.datetime "updated_at" |
|
241 | t.datetime "updated_at" |
|
|
242 | + t.boolean "enabled", :default => true | ||
|
|
243 | + t.string "remark" | ||
|
242 | end |
|
244 | end |
|
243 |
|
245 | ||
|
244 | add_index "users", ["login"], :name => "index_users_on_login", :unique => true |
|
246 | add_index "users", ["login"], :name => "index_users_on_login", :unique => true |
|
245 |
|
247 | ||
|
246 | end |
|
248 | end |
You need to be logged in to leave comments.
Login now