Description:
[web] added test_allowed flag to problems git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@181 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r94:c175b74a31f0 - - 4 files changed: 24 inserted, 10 deleted

@@ -73,17 +73,23
73 73 if @test_request==nil or @test_request.user_id != @user.id
74 74 flash[:notice] = 'Invalid request'
75 75 redirect_to :action => 'index'
76 76 return
77 77 end
78 78 end
79 79
80 80 protected
81 81
82 82 def prepare_index_information
83 83 @user = User.find(session[:user_id])
84 84 @submissions = Submission.find_last_for_all_available_problems(@user.id)
85 - @problems = @submissions.collect { |submission| submission.problem }
85 + all_problems = @submissions.collect { |submission| submission.problem }
86 + @problems = []
87 + all_problems.each do |problem|
88 + if problem.test_allowed
89 + @problems << problem
90 + end
91 + end
86 92 @test_requests = @user.test_requests
87 93 end
88 94
89 95 end
@@ -4,30 +4,35
4 4 <p><label for="problem_name">Name</label><br/>
5 5 <%= text_field 'problem', 'name' %></p>
6 6
7 7 <p><label for="problem_full_name">Full name</label><br/>
8 8 <%= text_field 'problem', 'full_name' %></p>
9 9
10 10 <p><label for="problem_full_score">Full score</label><br/>
11 11 <%= text_field 'problem', 'full_score' %></p>
12 12
13 13 <p><label for="problem_date_added">Date added</label><br/>
14 14 <%= date_select 'problem', 'date_added' %></p>
15 15
16 + <p><label for="problem_available">Available?</label>
17 + <%= select("problem","available",[['True',true],['False',false]]) %></p>
18 +
19 + <p><label for="problem_test_allowed">Test allowed?</label>
20 + <%= select("problem","test_allowed",[['True',true],['False',false]]) %></p>
21 +
16 22 <%= error_messages_for 'description' %>
17 23
18 24 <p><label for="description_body">Description</label><br/>
19 25 <%= text_area :description, :body, :rows => 10, :cols => 80 %></p>
20 26
21 27 <p><label for="description_markdowned">Markdowned?</label>
22 28 <%= select "description",
23 29 "markdowned",
24 30 [['True',true],['False',false]],
25 31 {:selected => (@description) ? @description.markdowned : false }
26 32 %></p>
27 33
28 34 <p><label for="problem_url">URL</label><br/>
29 35 <%= text_field 'problem', 'url' %></p>
30 36
31 - <p><label for="problem_available">Available</label><br/>
32 - <%= select("problem","available",[['True',true],['False',false]]) %></p>
37 +
33 38 <!--[eoform:problem]-->
@@ -6,35 +6,37
6 6
7 7 <h1>Listing problems</h1>
8 8
9 9 <%= link_to 'New problem', :action => 'new' %>
10 10 <%= link_to 'Turn off all problems', :action => 'turn_all_off' %><br/>
11 11
12 12 <table>
13 13 <tr>
14 14 <th>Name</th>
15 15 <th>Full name</th>
16 16 <th>Full score</th>
17 17 <th>Date added</th>
18 - <th>Available</th>
18 + <th>Avail?</th>
19 + <th>Test?</th>
19 20 </tr>
20 21
21 22 <% for problem in @problems %>
22 23 <tr class="<%= (problem.available) ? "available" : "not-available" %>">
23 24 <% @problem=problem %>
24 - <td><%= in_place_editor_field :problem, :name, {}, :rows=>1 %>
25 - <td><%= in_place_editor_field :problem, :full_name, {}, :rows=>1 %>
26 - <td><%= in_place_editor_field :problem, :full_score, {}, :rows=>1 %>
27 - <td><%= problem.date_added %>
28 - <td><%= problem.available %>
25 + <td><%= in_place_editor_field :problem, :name, {}, :rows=>1 %></td>
26 + <td><%= in_place_editor_field :problem, :full_name, {}, :rows=>1 %></td>
27 + <td><%= in_place_editor_field :problem, :full_score, {}, :rows=>1 %></td>
28 + <td><%= problem.date_added %></td>
29 + <td><%= problem.available %></td>
30 + <td><%= problem.test_allowed %></td>
29 31
30 32 <td><%= link_to '[Toggle]', :action => 'toggle_avail', :id => problem.id %></td>
31 33 <td><%= link_to '[Stat]', :action => 'stat', :id => problem.id %></td>
32 34 <td><%= link_to '[Show]', :action => 'show', :id => problem %></td>
33 35 <td><%= link_to '[Edit]', :action => 'edit', :id => problem %></td>
34 36 <td><%= link_to '[Destroy]', { :action => 'destroy', :id => problem }, :confirm => 'Are you sure?', :method => :post %></td>
35 37 </tr>
36 38 <% end %>
37 39 </table>
38 40
39 41
40 42 <br />
@@ -1,24 +1,24
1 1 # This file is auto-generated from the current state of the database. Instead of editing this file,
2 2 # please use the migrations feature of ActiveRecord to incrementally modify your database, and
3 3 # then regenerate this schema definition.
4 4 #
5 5 # Note that this schema.rb definition is the authoritative source for your database schema. If you need
6 6 # to create the application database on another system, you should be using db:schema:load, not running
7 7 # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8 8 # you'll amass, the slower it'll run and the greater likelihood for issues).
9 9 #
10 10 # It's strongly recommended to check this file into your version control system.
11 11
12 - ActiveRecord::Schema.define(:version => 28) do
12 + ActiveRecord::Schema.define(:version => 29) do
13 13
14 14 create_table "configurations", :force => true do |t|
15 15 t.string "key"
16 16 t.string "value_type"
17 17 t.string "value"
18 18 t.datetime "created_at"
19 19 t.datetime "updated_at"
20 20 end
21 21
22 22 create_table "descriptions", :force => true do |t|
23 23 t.text "body"
24 24 t.boolean "markdowned"
@@ -43,24 +43,25
43 43 t.string "pretty_name"
44 44 t.string "ext", :limit => 10
45 45 end
46 46
47 47 create_table "problems", :force => true do |t|
48 48 t.string "name", :limit => 30
49 49 t.string "full_name"
50 50 t.integer "full_score"
51 51 t.date "date_added"
52 52 t.boolean "available"
53 53 t.string "url"
54 54 t.integer "description_id"
55 + t.boolean "test_allowed"
55 56 end
56 57
57 58 create_table "rights", :force => true do |t|
58 59 t.string "name"
59 60 t.string "controller"
60 61 t.string "action"
61 62 end
62 63
63 64 create_table "rights_roles", :id => false, :force => true do |t|
64 65 t.integer "right_id"
65 66 t.integer "role_id"
66 67 end
You need to be logged in to leave comments. Login now