Description:
(in progress) add date range
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r412:cee35860e689 - - 8 files changed: 70 inserted, 11 deleted

@@ -0,0 +1,6
1 + //= require jquery
2 + //= require jquery_ujs
3 + //= require jquery.ui.all
4 + //= require jquery.ui.datepicker
5 + //= require jquery.ui.slider
6 + //= require jquery-ui-timepicker-addon
@@ -1,50 +1,56
1 source 'https://rubygems.org'
1 source 'https://rubygems.org'
2
2
3 gem 'rails', '3.2.19'
3 gem 'rails', '3.2.19'
4
4
5 # Bundle edge Rails instead:
5 # Bundle edge Rails instead:
6 # gem 'rails', :git => 'git://github.com/rails/rails.git'
6 # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
7
8 gem 'mysql2'
8 gem 'mysql2'
9
9
10 # Gems used only for assets and not required
10 # Gems used only for assets and not required
11 # in production environments by default.
11 # in production environments by default.
12 group :assets do
12 group :assets do
13 gem 'sass-rails', '~> 3.2.3'
13 gem 'sass-rails', '~> 3.2.3'
14 gem 'coffee-rails', '~> 3.2.1'
14 gem 'coffee-rails', '~> 3.2.1'
15
15
16 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
16 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
17 # gem 'therubyracer', :platforms => :ruby
17 # gem 'therubyracer', :platforms => :ruby
18
18
19 gem 'uglifier', '>= 1.0.3'
19 gem 'uglifier', '>= 1.0.3'
20 end
20 end
21
21
22 gem 'prototype-rails'
22 gem 'prototype-rails'
23
23
24 # To use ActiveModel has_secure_password
24 # To use ActiveModel has_secure_password
25 # gem 'bcrypt-ruby', '~> 3.0.0'
25 # gem 'bcrypt-ruby', '~> 3.0.0'
26
26
27 # To use Jbuilder templates for JSON
27 # To use Jbuilder templates for JSON
28 # gem 'jbuilder'
28 # gem 'jbuilder'
29
29
30 # Use unicorn as the app server
30 # Use unicorn as the app server
31 # gem 'unicorn'
31 # gem 'unicorn'
32
32
33 # Deploy with Capistrano
33 # Deploy with Capistrano
34 # gem 'capistrano'
34 # gem 'capistrano'
35
35
36 # To use debugger
36 # To use debugger
37 # gem 'debugger'
37 # gem 'debugger'
38 + #
39 +
40 + gem 'jquery-rails'
41 + gem 'jquery-ui-sass-rails'
42 + gem 'jquery-timepicker-addon-rails'
43 +
38
44
39 gem "haml"
45 gem "haml"
40 gem "mail"
46 gem "mail"
41 gem "rdiscount"
47 gem "rdiscount"
42 gem "test-unit"
48 gem "test-unit"
43 gem 'will_paginate', '~> 3.0.0'
49 gem 'will_paginate', '~> 3.0.0'
44 gem 'dynamic_form'
50 gem 'dynamic_form'
45 gem 'in_place_editing'
51 gem 'in_place_editing'
46 gem 'verification', :git => 'git://github.com/sikachu/verification.git'
52 gem 'verification', :git => 'git://github.com/sikachu/verification.git'
47
53
48 group :test, :development do
54 group :test, :development do
49 gem "rspec-rails", "~> 2.0"
55 gem "rspec-rails", "~> 2.0"
50 end
56 end
@@ -10,142 +10,157
10 remote: https://rubygems.org/
10 remote: https://rubygems.org/
11 specs:
11 specs:
12 actionmailer (3.2.19)
12 actionmailer (3.2.19)
13 actionpack (= 3.2.19)
13 actionpack (= 3.2.19)
14 mail (~> 2.5.4)
14 mail (~> 2.5.4)
15 actionpack (3.2.19)
15 actionpack (3.2.19)
16 activemodel (= 3.2.19)
16 activemodel (= 3.2.19)
17 activesupport (= 3.2.19)
17 activesupport (= 3.2.19)
18 builder (~> 3.0.0)
18 builder (~> 3.0.0)
19 erubis (~> 2.7.0)
19 erubis (~> 2.7.0)
20 journey (~> 1.0.4)
20 journey (~> 1.0.4)
21 rack (~> 1.4.5)
21 rack (~> 1.4.5)
22 rack-cache (~> 1.2)
22 rack-cache (~> 1.2)
23 rack-test (~> 0.6.1)
23 rack-test (~> 0.6.1)
24 sprockets (~> 2.2.1)
24 sprockets (~> 2.2.1)
25 activemodel (3.2.19)
25 activemodel (3.2.19)
26 activesupport (= 3.2.19)
26 activesupport (= 3.2.19)
27 builder (~> 3.0.0)
27 builder (~> 3.0.0)
28 activerecord (3.2.19)
28 activerecord (3.2.19)
29 activemodel (= 3.2.19)
29 activemodel (= 3.2.19)
30 activesupport (= 3.2.19)
30 activesupport (= 3.2.19)
31 arel (~> 3.0.2)
31 arel (~> 3.0.2)
32 tzinfo (~> 0.3.29)
32 tzinfo (~> 0.3.29)
33 activeresource (3.2.19)
33 activeresource (3.2.19)
34 activemodel (= 3.2.19)
34 activemodel (= 3.2.19)
35 activesupport (= 3.2.19)
35 activesupport (= 3.2.19)
36 activesupport (3.2.19)
36 activesupport (3.2.19)
37 i18n (~> 0.6, >= 0.6.4)
37 i18n (~> 0.6, >= 0.6.4)
38 multi_json (~> 1.0)
38 multi_json (~> 1.0)
39 arel (3.0.3)
39 arel (3.0.3)
40 builder (3.0.4)
40 builder (3.0.4)
41 coffee-rails (3.2.2)
41 coffee-rails (3.2.2)
42 coffee-script (>= 2.2.0)
42 coffee-script (>= 2.2.0)
43 railties (~> 3.2.0)
43 railties (~> 3.2.0)
44 coffee-script (2.3.0)
44 coffee-script (2.3.0)
45 coffee-script-source
45 coffee-script-source
46 execjs
46 execjs
47 coffee-script-source (1.7.1)
47 coffee-script-source (1.7.1)
48 diff-lcs (1.2.5)
48 diff-lcs (1.2.5)
49 dynamic_form (1.1.4)
49 dynamic_form (1.1.4)
50 erubis (2.7.0)
50 erubis (2.7.0)
51 execjs (2.2.1)
51 execjs (2.2.1)
52 haml (4.0.5)
52 haml (4.0.5)
53 tilt
53 tilt
54 hike (1.2.3)
54 hike (1.2.3)
55 i18n (0.6.11)
55 i18n (0.6.11)
56 in_place_editing (1.2.0)
56 in_place_editing (1.2.0)
57 journey (1.0.4)
57 journey (1.0.4)
58 + jquery-rails (3.1.1)
59 + railties (>= 3.0, < 5.0)
60 + thor (>= 0.14, < 2.0)
61 + jquery-timepicker-addon-rails (1.4.1)
62 + railties (>= 3.1)
63 + jquery-ui-rails (4.0.3)
64 + jquery-rails
65 + railties (>= 3.1.0)
66 + jquery-ui-sass-rails (4.0.3.0)
67 + jquery-rails
68 + jquery-ui-rails (= 4.0.3)
69 + railties (>= 3.1.0)
58 json (1.8.1)
70 json (1.8.1)
59 mail (2.5.4)
71 mail (2.5.4)
60 mime-types (~> 1.16)
72 mime-types (~> 1.16)
61 treetop (~> 1.4.8)
73 treetop (~> 1.4.8)
62 mime-types (1.25.1)
74 mime-types (1.25.1)
63 multi_json (1.10.1)
75 multi_json (1.10.1)
64 mysql2 (0.3.16)
76 mysql2 (0.3.16)
65 polyglot (0.3.5)
77 polyglot (0.3.5)
66 power_assert (0.1.3)
78 power_assert (0.1.3)
67 prototype-rails (3.2.1)
79 prototype-rails (3.2.1)
68 rails (~> 3.2)
80 rails (~> 3.2)
69 rack (1.4.5)
81 rack (1.4.5)
70 rack-cache (1.2)
82 rack-cache (1.2)
71 rack (>= 0.4)
83 rack (>= 0.4)
72 rack-ssl (1.3.4)
84 rack-ssl (1.3.4)
73 rack
85 rack
74 rack-test (0.6.2)
86 rack-test (0.6.2)
75 rack (>= 1.0)
87 rack (>= 1.0)
76 rails (3.2.19)
88 rails (3.2.19)
77 actionmailer (= 3.2.19)
89 actionmailer (= 3.2.19)
78 actionpack (= 3.2.19)
90 actionpack (= 3.2.19)
79 activerecord (= 3.2.19)
91 activerecord (= 3.2.19)
80 activeresource (= 3.2.19)
92 activeresource (= 3.2.19)
81 activesupport (= 3.2.19)
93 activesupport (= 3.2.19)
82 bundler (~> 1.0)
94 bundler (~> 1.0)
83 railties (= 3.2.19)
95 railties (= 3.2.19)
84 railties (3.2.19)
96 railties (3.2.19)
85 actionpack (= 3.2.19)
97 actionpack (= 3.2.19)
86 activesupport (= 3.2.19)
98 activesupport (= 3.2.19)
87 rack-ssl (~> 1.3.2)
99 rack-ssl (~> 1.3.2)
88 rake (>= 0.8.7)
100 rake (>= 0.8.7)
89 rdoc (~> 3.4)
101 rdoc (~> 3.4)
90 thor (>= 0.14.6, < 2.0)
102 thor (>= 0.14.6, < 2.0)
91 rake (10.3.2)
103 rake (10.3.2)
92 rdiscount (2.1.7.1)
104 rdiscount (2.1.7.1)
93 rdoc (3.12.2)
105 rdoc (3.12.2)
94 json (~> 1.4)
106 json (~> 1.4)
95 rspec-collection_matchers (1.0.0)
107 rspec-collection_matchers (1.0.0)
96 rspec-expectations (>= 2.99.0.beta1)
108 rspec-expectations (>= 2.99.0.beta1)
97 rspec-core (2.99.2)
109 rspec-core (2.99.2)
98 rspec-expectations (2.99.2)
110 rspec-expectations (2.99.2)
99 diff-lcs (>= 1.1.3, < 2.0)
111 diff-lcs (>= 1.1.3, < 2.0)
100 rspec-mocks (2.99.2)
112 rspec-mocks (2.99.2)
101 rspec-rails (2.99.0)
113 rspec-rails (2.99.0)
102 actionpack (>= 3.0)
114 actionpack (>= 3.0)
103 activemodel (>= 3.0)
115 activemodel (>= 3.0)
104 activesupport (>= 3.0)
116 activesupport (>= 3.0)
105 railties (>= 3.0)
117 railties (>= 3.0)
106 rspec-collection_matchers
118 rspec-collection_matchers
107 rspec-core (~> 2.99.0)
119 rspec-core (~> 2.99.0)
108 rspec-expectations (~> 2.99.0)
120 rspec-expectations (~> 2.99.0)
109 rspec-mocks (~> 2.99.0)
121 rspec-mocks (~> 2.99.0)
110 sass (3.4.1)
122 sass (3.4.1)
111 sass-rails (3.2.6)
123 sass-rails (3.2.6)
112 railties (~> 3.2.0)
124 railties (~> 3.2.0)
113 sass (>= 3.1.10)
125 sass (>= 3.1.10)
114 tilt (~> 1.3)
126 tilt (~> 1.3)
115 sprockets (2.2.2)
127 sprockets (2.2.2)
116 hike (~> 1.2)
128 hike (~> 1.2)
117 multi_json (~> 1.0)
129 multi_json (~> 1.0)
118 rack (~> 1.0)
130 rack (~> 1.0)
119 tilt (~> 1.1, != 1.3.0)
131 tilt (~> 1.1, != 1.3.0)
120 test-unit (3.0.1)
132 test-unit (3.0.1)
121 power_assert
133 power_assert
122 thor (0.19.1)
134 thor (0.19.1)
123 tilt (1.4.1)
135 tilt (1.4.1)
124 treetop (1.4.15)
136 treetop (1.4.15)
125 polyglot
137 polyglot
126 polyglot (>= 0.3.1)
138 polyglot (>= 0.3.1)
127 tzinfo (0.3.41)
139 tzinfo (0.3.41)
128 uglifier (2.5.3)
140 uglifier (2.5.3)
129 execjs (>= 0.3.0)
141 execjs (>= 0.3.0)
130 json (>= 1.8.0)
142 json (>= 1.8.0)
131 will_paginate (3.0.7)
143 will_paginate (3.0.7)
132
144
133 PLATFORMS
145 PLATFORMS
134 ruby
146 ruby
135
147
136 DEPENDENCIES
148 DEPENDENCIES
137 coffee-rails (~> 3.2.1)
149 coffee-rails (~> 3.2.1)
138 dynamic_form
150 dynamic_form
139 haml
151 haml
140 in_place_editing
152 in_place_editing
153 + jquery-rails
154 + jquery-timepicker-addon-rails
155 + jquery-ui-sass-rails
141 mail
156 mail
142 mysql2
157 mysql2
143 prototype-rails
158 prototype-rails
144 rails (= 3.2.19)
159 rails (= 3.2.19)
145 rdiscount
160 rdiscount
146 rspec-rails (~> 2.0)
161 rspec-rails (~> 2.0)
147 sass-rails (~> 3.2.3)
162 sass-rails (~> 3.2.3)
148 test-unit
163 test-unit
149 uglifier (>= 1.0.3)
164 uglifier (>= 1.0.3)
150 verification!
165 verification!
151 will_paginate (~> 3.0.0)
166 will_paginate (~> 3.0.0)
@@ -1,48 +1,56
1 +
2 + @import jquery.ui.core
3 + @import jquery.ui.theme
4 + @import jquery.ui.datepicker
5 + @import jquery.ui.slider
6 + @import jquery-ui-timepicker-addon
7 +
8 +
1 body
9 body
2 background: white image-url("topbg.jpg") repeat-x top center
10 background: white image-url("topbg.jpg") repeat-x top center
3 font-size: 13px
11 font-size: 13px
4 font-family: Tahoma, "sans-serif"
12 font-family: Tahoma, "sans-serif"
5 margin: 10px
13 margin: 10px
6 padding: 10px
14 padding: 10px
7
15
8
16
9 input
17 input
10 font-family: Tahoma, "sans-serif"
18 font-family: Tahoma, "sans-serif"
11
19
12
20
13 h1
21 h1
14 font-size: 24px
22 font-size: 24px
15 color: #334488
23 color: #334488
16 line-height: 2em
24 line-height: 2em
17
25
18
26
19 h2
27 h2
20 font-size: 18px
28 font-size: 18px
21 color: #5566bb
29 color: #5566bb
22 line-height: 1.5em
30 line-height: 1.5em
23
31
24
32
25 hr
33 hr
26 border-top: 1px solid #dddddd
34 border-top: 1px solid #dddddd
27 border-bottom: 1px solid #eeeeee
35 border-bottom: 1px solid #eeeeee
28
36
29
37
30 a
38 a
31 color: #6666cc
39 color: #6666cc
32 text-decoration: none
40 text-decoration: none
33
41
34 &:link, &:visited
42 &:link, &:visited
35 color: #6666cc
43 color: #6666cc
36 text-decoration: none
44 text-decoration: none
37
45
38 &:hover, &:focus
46 &:hover, &:focus
39 color: #111166
47 color: #111166
40 text-decoration: none
48 text-decoration: none
41
49
42
50
43 div
51 div
44 &.userbar
52 &.userbar
45 line-height: 1.5em
53 line-height: 1.5em
46 text-align: right
54 text-align: right
47 font-size: 12px
55 font-size: 12px
48
56
@@ -245,49 +253,49
245 &.message
253 &.message
246 margin: 10px 0 0
254 margin: 10px 0 0
247
255
248 div
256 div
249 &.message
257 &.message
250 margin: 0 0 0 30px
258 margin: 0 0 0 30px
251
259
252 &.body
260 &.body
253 border: 2px solid #dddddd
261 border: 2px solid #dddddd
254 background: #fff8f8
262 background: #fff8f8
255 padding-left: 5px
263 padding-left: 5px
256
264
257 &.reply-body
265 &.reply-body
258 border: 2px solid #bbbbbb
266 border: 2px solid #bbbbbb
259 background: #fffff8
267 background: #fffff8
260 padding-left: 5px
268 padding-left: 5px
261
269
262 &.stat
270 &.stat
263 font-size: 10px
271 font-size: 10px
264 line-height: 1.75em
272 line-height: 1.75em
265 padding: 0 5px
273 padding: 0 5px
266 color: #333333
274 color: #333333
267 background: #dddddd
275 background: #dddddd
268 font-weight: bold
276 font-weight: bold
269
277
270 &.message div.stat
278 &.message div.stat
271 font-size: 10px
279 font-size: 10px
272 line-height: 1.75em
280 line-height: 1.75em
273 padding: 0 5px
281 padding: 0 5px
274 color: #444444
282 color: #444444
275 background: #bbbbbb
283 background: #bbbbbb
276 font-weight: bold
284 font-weight: bold
277
285
278 &.contest-title
286 &.contest-title
279 color: white
287 color: white
280 text-align: center
288 text-align: center
281 line-height: 2em
289 line-height: 2em
282
290
283 &.registration-desc, &.test-desc
291 &.registration-desc, &.test-desc
284 border: 1px dotted gray
292 border: 1px dotted gray
285 background: #f5f5f5
293 background: #f5f5f5
286 padding: 5px
294 padding: 5px
287 margin: 10px 0
295 margin: 10px 0
288 font-size: 12px
296 font-size: 12px
289 line-height: 1.5em
297 line-height: 1.5em
290
298
291 h2.contest-title
299 h2.contest-title
292 margin-top: 5px
300 margin-top: 5px
293 - margin-bottom: 5px No newline at end of file
301 + margin-bottom: 5px
@@ -1,13 +1,18
1 class ReportController < ApplicationController
1 class ReportController < ApplicationController
2 def login_stat
2 def login_stat
3 @logins = Array.new
3 @logins = Array.new
4 login = Login.all
4 login = Login.all
5 +
6 + date_and_time = '%y-%m-%d %H:%M'
7 + since_time = strptime(params[:since_datetime],date_and_time)
8 + until_time = strptime(params[:until_datetime],date_and_time)
9 +
5 User.all.each do |user|
10 User.all.each do |user|
6 @logins << { login: user.login,
11 @logins << { login: user.login,
7 full_name: user.full_name,
12 full_name: user.full_name,
8 count: Login.where(user_id: user.id).count(:id),
13 count: Login.where(user_id: user.id).count(:id),
9 min: Login.where(user_id: user.id).maximum(:created_at),
14 min: Login.where(user_id: user.id).maximum(:created_at),
10 max: Login.where(user_id: user.id).minimum(:created_at) }
15 max: Login.where(user_id: user.id).minimum(:created_at) }
11 end
16 end
12 end
17 end
13 end
18 end
@@ -1,21 +1,23
1 <!DOCTYPE html>
1 <!DOCTYPE html>
2 <html>
2 <html>
3 <head>
3 <head>
4 <title><%= GraderConfiguration['contest.name'] %></title>
4 <title><%= GraderConfiguration['contest.name'] %></title>
5 <%= stylesheet_link_tag "application", :media => "all" %>
5 <%= stylesheet_link_tag "application", :media => "all" %>
6 <%= javascript_include_tag "application" %>
6 <%= javascript_include_tag "application" %>
7 <%= csrf_meta_tags %>
7 <%= csrf_meta_tags %>
8 + <%= content_for :header %>
8 <%= yield :head %>
9 <%= yield :head %>
10 +
9 </head>
11 </head>
10 <body>
12 <body>
11
13
12 <div class="userbar">
14 <div class="userbar">
13 <%= user_header %>
15 <%= user_header %>
14 </div>
16 </div>
15
17
16 <%= content_tag(:p,flash[:notice],:style => "color:green") if flash[:notice]!=nil %>
18 <%= content_tag(:p,flash[:notice],:style => "color:green") if flash[:notice]!=nil %>
17
19
18 <%= yield %>
20 <%= yield %>
19
21
20 </body>
22 </body>
21 </html>
23 </html>
@@ -1,18 +1,19
1
1
2 - = form_tag({action: :user_stat_max }) do
2 + = form_tag({session: :url }) do
3 .submitbox
3 .submitbox
4 %table
4 %table
5 %tr
5 %tr
6 %td{colspan: 6, style: 'font-weight: bold'} Query maximum score in submission range
6 %td{colspan: 6, style: 'font-weight: bold'} Query maximum score in submission range
7 %tr
7 %tr
8 - %td{style: 'width: 120px; font-weight: bold'} Submission ID:
8 + %td{style: 'width: 120px; font-weight: bold'}= param_text
9 - %td{align: 'right'} From date:
9 + %td{align: 'right'} since:
10 - %td= text_field_tag 'start_date', params[:start_date]
10 + %td= text_field_tag 'since_datetime'
11 - %td Time:
12 - %td= text_field_tag 'start_time', params[:start_time], style: 'width:40px'
13 - %td= submit_tag 'query'
14 %tr
11 %tr
15 %td
12 %td
16 - %td{colspan: 5} Leave blank date and/or time for no condition
13 + %td{align: 'right'} until:
17 - %br/
14 + %td= text_field_tag 'until_datetime'
15 + %tr
16 + %td
17 + %td
18 + %td= submit_tag 'query'
18
19
@@ -1,28 +1,44
1 + - content_for :header do
2 + = javascript_include_tag 'new'
3 +
4 + %script{:type=>"text/javascript"}
5 + $(function () {
6 + $('#since_datetime').datetimepicker({ showButtonPanel: true, dateFormat: "yy-mm-dd", controlType: "slider"} );
7 + $('#until_datetime').datetimepicker({ showButtonPanel: true, dateFormat: "yy-mm-dd", controlType: "slider"} );
8 + });
9 +
10 +
1 %h1 Login status
11 %h1 Login status
2
12
3
13
14 +
4 .task-menu
15 .task-menu
5 Reports
16 Reports
6 %br/
17 %br/
7 = link_to '[Submission]', :action => 'submit_stat'
18 = link_to '[Submission]', :action => 'submit_stat'
8 = link_to '[Login]', :action => 'login_stat'
19 = link_to '[Login]', :action => 'login_stat'
9
20
10 - =render partial: 'date_range'
21 +
22 + =render partial: 'date_range', locals: {param_text: 'Submission range:' }
23 +
24 + hahaha
25 +
26 + =params[:since_datetime]
11
27
12 %table.info
28 %table.info
13 %thead
29 %thead
14 %tr.info-head
30 %tr.info-head
15 %th login
31 %th login
16 %th full name
32 %th full name
17 %th login count
33 %th login count
18 %th earliest
34 %th earliest
19 %th latest
35 %th latest
20 %tbody
36 %tbody
21 - @logins.each do |l|
37 - @logins.each do |l|
22 %tr{class: cycle('info-even','info-odd')}
38 %tr{class: cycle('info-even','info-odd')}
23 %td= l[:login]
39 %td= l[:login]
24 %td= l[:full_name]
40 %td= l[:full_name]
25 %td= l[:count]
41 %td= l[:count]
26 %td= l[:min]
42 %td= l[:min]
27 %td= l[:max]
43 %td= l[:max]
28
44
You need to be logged in to leave comments. Login now