Description:
NOT WORKING add submission view log
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r528:dfe79b5eef35 - - 7 files changed: 123 inserted, 14 deleted

@@ -0,0 +1,3
1 + class SubmissionViewLogs < ActiveRecord::Base
2 + attr_accessible :submission_id, :user_id
3 + end
@@ -0,0 +1,82
1 + - content_for :header do
2 + = stylesheet_link_tag 'tablesorter-theme.cafe'
3 + = javascript_include_tag 'local_jquery'
4 +
5 + %script{:type=>"text/javascript"}
6 + $(function () {
7 + $('#since_datetime').datetimepicker({ showButtonPanel: true, dateFormat: "yy-mm-dd", controlType: "slider"} );
8 + $('#until_datetime').datetimepicker({ showButtonPanel: true, dateFormat: "yy-mm-dd", controlType: "slider"} );
9 + $('#my_table').tablesorter({widthFixed: true, widgets: ['zebra']});
10 + $('#my_table2').tablesorter({widthFixed: true, widgets: ['zebra']});
11 + $('#sub_table').tablesorter({widthFixed: true, widgets: ['zebra']});
12 + });
13 +
14 + %h1 Login status
15 +
16 + =render partial: 'report_menu'
17 +
18 +
19 + = form_tag({session: :url }) do
20 + .submitbox
21 + %table
22 + %tr
23 + %td{colspan: 6, style: 'font-weight: bold'}= 'Query login & submit in the range'
24 + %tr
25 + %td{style: 'width: 120px; font-weight: bold'}= 'Login date range'
26 + %td{align: 'right'} since:
27 + %td= text_field_tag 'since_datetime', @since_time
28 + %tr
29 + %td
30 + %td{align: 'right'} until:
31 + %td= text_field_tag 'until_datetime', @until_time
32 + %tr
33 + %td
34 + %td
35 + %td Blank mean no condition
36 + %tr
37 + %td{style: 'width: 120px; font-weight: bold'}= "ID"
38 + %td{colspan: 2}= text_field_tag 'SID', @sid, size: 40
39 + %tr
40 + %td
41 + %td
42 + %td= submit_tag 'query'
43 +
44 +
45 + %h2 Logs
46 +
47 + - if @sid
48 + %table
49 + %tbody
50 + - @sid.each do |id|
51 + - user = User.where("login = ?",id).first
52 + %tr
53 + //%td= link_to id, controller: :user, action: :profile, id: id
54 + %td= link_to id, "https://www.nattee.net/java/users/profile/#{user.id}"
55 + %td= user.full_name
56 +
57 + //%table.tablesorter-cafe#my_table
58 + %table.info
59 + %thead
60 + %tr.info-head
61 + %th Time
62 + %th Action
63 + %th IP
64 + %th login
65 + %th name
66 + %th problem
67 + %th score
68 + %tbody
69 + - if @logs
70 + - @logs.each do |l|
71 + %tr{class: cycle('info-even','info-odd')}
72 + %td= l[:submitted_at].strftime "%Y.%b.%d %H:%M:%S"
73 + //%td= l[:id] == -1 ? "LOGIN" : link_to("submit #{l[:id]}", controller: 'graders' , action: 'submission', id: l[:id])
74 + %td= l[:id] == -1 ? "LOGIN" : link_to( "submit #{l[:id]}", "https://www.nattee.net/java/graders/submission/#{l[:id]}")
75 + %td= l[:ip_address]
76 + //%td= link_to l[:login], controller: 'users', action: 'profile', id: l[:id]
77 + %td= link_to( l[:login], "https://www.nattee.net/java/users/profile/#{l.user_id}")
78 + %td= l[:full_name]
79 + %td= l[:id] == -1 ? "" : l.problem.name
80 + %td= l[:id] == -1 ? "" : l.points * 100/ l.problem.full_score
81 +
82 +
@@ -0,0 +1,10
1 + class CreateSubmissionViewLogs < ActiveRecord::Migration
2 + def change
3 + create_table :submission_view_logs do |t|
4 + t.integer :user_id
5 + t.integer :submission_id
6 +
7 + t.timestamps
8 + end
9 + end
10 + end
@@ -0,0 +1,5
1 + require 'spec_helper'
2 +
3 + describe SubmissionViewLogs do
4 + pending "add some examples to (or delete) #{__FILE__}"
5 + end
@@ -69,25 +69,25
69 69 jquery-rails
70 70 railties (>= 3.1.0)
71 71 jquery-ui-sass-rails (4.0.3.0)
72 72 jquery-rails
73 73 jquery-ui-rails (= 4.0.3)
74 74 railties (>= 3.1.0)
75 75 json (1.8.2)
76 76 mail (2.5.4)
77 77 mime-types (~> 1.16)
78 78 treetop (~> 1.4.8)
79 79 mime-types (1.25.1)
80 80 multi_json (1.10.1)
81 - mysql2 (0.3.17)
81 + mysql2 (0.3.20)
82 82 polyglot (0.3.5)
83 83 power_assert (0.2.2)
84 84 prototype-rails (3.2.1)
85 85 rails (~> 3.2)
86 86 rack (1.4.5)
87 87 rack-cache (1.2)
88 88 rack (>= 0.4)
89 89 rack-ssl (1.3.4)
90 90 rack
91 91 rack-test (0.6.3)
92 92 rack (>= 1.0)
93 93 rails (3.2.21)
@@ -77,24 +77,26
77 77 lexer = case @submission.language.name
78 78 when "c" then Rouge::Lexers::C.new
79 79 when "cpp" then Rouge::Lexers::Cpp.new
80 80 when "pas" then Rouge::Lexers::Pas.new
81 81 when "ruby" then Rouge::Lexers::Ruby.new
82 82 when "python" then Rouge::Lexers::Python.new
83 83 when "java" then Rouge::Lexers::Java.new
84 84 when "php" then Rouge::Lexers::PHP.new
85 85 end
86 86 @formatted_code = formatter.format(lexer.lex(@submission.source))
87 87 @css_style = Rouge::Themes::ThankfulEyes.render(scope: '.highlight')
88 88
89 + SubmissionLogView.create(user_id: user.id,submission_id: @submission.id)
90 +
89 91 end
90 92
91 93 # various grader controls
92 94
93 95 def stop
94 96 grader_proc = GraderProcess.find(params[:id])
95 97 GraderScript.stop_grader(grader_proc.pid)
96 98 flash[:notice] = 'Grader stopped. It may not disappear now, but it should disappear shortly.'
97 99 redirect_to :action => 'list'
98 100 end
99 101
100 102 def stop_all
@@ -2,29 +2,29
2 2 # This file is auto-generated from the current state of the database. Instead
3 3 # of editing this file, please use the migrations feature of Active Record to
4 4 # incrementally modify your database, and then regenerate this schema definition.
5 5 #
6 6 # Note that this schema.rb definition is the authoritative source for your
7 7 # database schema. If you need to create the application database on another
8 8 # system, you should be using db:schema:load, not running all the migrations
9 9 # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10 10 # you'll amass, the slower it'll run and the greater likelihood for issues).
11 11 #
12 12 # It's strongly recommended to check this file into your version control system.
13 13
14 - ActiveRecord::Schema.define(:version => 20150618085823) do
14 + ActiveRecord::Schema.define(:version => 20150827131927) do
15 15
16 16 create_table "announcements", :force => true do |t|
17 17 t.string "author"
18 - t.text "body"
18 + t.text "body", :limit => 16777215
19 19 t.boolean "published"
20 20 t.datetime "created_at", :null => false
21 21 t.datetime "updated_at", :null => false
22 22 t.boolean "frontpage", :default => false
23 23 t.boolean "contest_only", :default => false
24 24 t.string "title"
25 25 t.string "notes"
26 26 end
27 27
28 28 create_table "contests", :force => true do |t|
29 29 t.string "title"
30 30 t.boolean "enabled"
@@ -41,37 +41,37
41 41 create_table "contests_users", :id => false, :force => true do |t|
42 42 t.integer "contest_id"
43 43 t.integer "user_id"
44 44 end
45 45
46 46 create_table "countries", :force => true do |t|
47 47 t.string "name"
48 48 t.datetime "created_at", :null => false
49 49 t.datetime "updated_at", :null => false
50 50 end
51 51
52 52 create_table "descriptions", :force => true do |t|
53 - t.text "body"
53 + t.text "body", :limit => 16777215
54 54 t.boolean "markdowned"
55 55 t.datetime "created_at", :null => false
56 56 t.datetime "updated_at", :null => false
57 57 end
58 58
59 59 create_table "grader_configurations", :force => true do |t|
60 60 t.string "key"
61 61 t.string "value_type"
62 62 t.string "value"
63 63 t.datetime "created_at", :null => false
64 64 t.datetime "updated_at", :null => false
65 - t.text "description"
65 + t.text "description", :limit => 16777215
66 66 end
67 67
68 68 create_table "grader_processes", :force => true do |t|
69 69 t.string "host", :limit => 20
70 70 t.integer "pid"
71 71 t.string "mode"
72 72 t.boolean "active"
73 73 t.datetime "created_at", :null => false
74 74 t.datetime "updated_at", :null => false
75 75 t.integer "task_id"
76 76 t.string "task_type"
77 77 t.boolean "terminated"
@@ -88,25 +88,25
88 88
89 89 create_table "logins", :force => true do |t|
90 90 t.integer "user_id"
91 91 t.string "ip_address"
92 92 t.datetime "created_at", :null => false
93 93 t.datetime "updated_at", :null => false
94 94 end
95 95
96 96 create_table "messages", :force => true do |t|
97 97 t.integer "sender_id"
98 98 t.integer "receiver_id"
99 99 t.integer "replying_message_id"
100 - t.text "body"
100 + t.text "body", :limit => 16777215
101 101 t.boolean "replied"
102 102 t.datetime "created_at", :null => false
103 103 t.datetime "updated_at", :null => false
104 104 end
105 105
106 106 create_table "problems", :force => true do |t|
107 107 t.string "name", :limit => 30
108 108 t.string "full_name"
109 109 t.integer "full_score"
110 110 t.date "date_added"
111 111 t.boolean "available"
112 112 t.string "url"
@@ -133,91 +133,98
133 133 t.string "name"
134 134 end
135 135
136 136 create_table "roles_users", :id => false, :force => true do |t|
137 137 t.integer "role_id"
138 138 t.integer "user_id"
139 139 end
140 140
141 141 add_index "roles_users", ["user_id"], :name => "index_roles_users_on_user_id"
142 142
143 143 create_table "sessions", :force => true do |t|
144 144 t.string "session_id"
145 - t.text "data"
145 + t.text "data", :limit => 16777215
146 146 t.datetime "updated_at"
147 147 end
148 148
149 149 add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
150 150 add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
151 151
152 152 create_table "sites", :force => true do |t|
153 153 t.string "name"
154 154 t.boolean "started"
155 155 t.datetime "start_time"
156 156 t.datetime "created_at", :null => false
157 157 t.datetime "updated_at", :null => false
158 158 t.integer "country_id"
159 159 t.string "password"
160 160 end
161 161
162 + create_table "submission_view_logs", :force => true do |t|
163 + t.integer "user_id"
164 + t.integer "submission_id"
165 + t.datetime "created_at", :null => false
166 + t.datetime "updated_at", :null => false
167 + end
168 +
162 169 create_table "submissions", :force => true do |t|
163 170 t.integer "user_id"
164 171 t.integer "problem_id"
165 172 t.integer "language_id"
166 - t.text "source"
173 + t.text "source", :limit => 16777215
167 174 t.binary "binary"
168 175 t.datetime "submitted_at"
169 176 t.datetime "compiled_at"
170 - t.text "compiler_message"
177 + t.text "compiler_message", :limit => 16777215
171 178 t.datetime "graded_at"
172 179 t.integer "points"
173 - t.text "grader_comment"
180 + t.text "grader_comment", :limit => 16777215
174 181 t.integer "number"
175 182 t.string "source_filename"
176 183 t.float "max_runtime"
177 184 t.integer "peak_memory"
178 185 t.integer "effective_code_length"
179 186 t.string "ip_address"
180 187 end
181 188
182 189 add_index "submissions", ["user_id", "problem_id", "number"], :name => "index_submissions_on_user_id_and_problem_id_and_number", :unique => true
183 190 add_index "submissions", ["user_id", "problem_id"], :name => "index_submissions_on_user_id_and_problem_id"
184 191
185 192 create_table "tasks", :force => true do |t|
186 193 t.integer "submission_id"
187 194 t.datetime "created_at"
188 195 t.integer "status"
189 196 t.datetime "updated_at"
190 197 end
191 198
192 199 create_table "test_pairs", :force => true do |t|
193 200 t.integer "problem_id"
194 - t.text "input", :limit => 16777215
195 - t.text "solution", :limit => 16777215
201 + t.text "input", :limit => 2147483647
202 + t.text "solution", :limit => 2147483647
196 203 t.datetime "created_at", :null => false
197 204 t.datetime "updated_at", :null => false
198 205 end
199 206
200 207 create_table "test_requests", :force => true do |t|
201 208 t.integer "user_id"
202 209 t.integer "problem_id"
203 210 t.integer "submission_id"
204 211 t.string "input_file_name"
205 212 t.string "output_file_name"
206 213 t.string "running_stat"
207 214 t.integer "status"
208 215 t.datetime "updated_at", :null => false
209 216 t.datetime "submitted_at"
210 217 t.datetime "compiled_at"
211 - t.text "compiler_message"
218 + t.text "compiler_message", :limit => 16777215
212 219 t.datetime "graded_at"
213 220 t.string "grader_comment"
214 221 t.datetime "created_at", :null => false
215 222 t.float "running_time"
216 223 t.string "exit_status"
217 224 t.integer "memory_usage"
218 225 end
219 226
220 227 add_index "test_requests", ["user_id", "problem_id"], :name => "index_test_requests_on_user_id_and_problem_id"
221 228
222 229 create_table "user_contest_stats", :force => true do |t|
223 230 t.integer "user_id"
@@ -230,20 +237,20
230 237 create_table "users", :force => true do |t|
231 238 t.string "login", :limit => 50
232 239 t.string "full_name"
233 240 t.string "hashed_password"
234 241 t.string "salt", :limit => 5
235 242 t.string "alias"
236 243 t.string "email"
237 244 t.integer "site_id"
238 245 t.integer "country_id"
239 246 t.boolean "activated", :default => false
240 247 t.datetime "created_at"
241 248 t.datetime "updated_at"
249 + t.string "section"
242 250 t.boolean "enabled", :default => true
243 251 t.string "remark"
244 - t.string "last_ip"
245 252 end
246 253
247 254 add_index "users", ["login"], :name => "index_users_on_login", :unique => true
248 255
249 256 end
You need to be logged in to leave comments. Login now