hackathon_manager 0.6.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +7 -1
- data/app/assets/javascripts/hackathon_manager/manage/application.js +4 -6
- data/app/assets/javascripts/hackathon_manager/manage/lib/datatables.js +82 -0
- data/app/assets/javascripts/hackathon_manager/manage/lib/setupDataTables.js +13 -64
- data/app/assets/javascripts/hackathon_manager/vendor/datatables.min.js +290 -0
- data/app/assets/stylesheets/hackathon_manager/dashboard.css +109 -0
- data/app/assets/stylesheets/hackathon_manager/datatables.min.css +18 -0
- data/app/assets/stylesheets/hackathon_manager/manage.sass +64 -47
- data/app/controllers/manage/stats_controller.rb +66 -30
- data/app/controllers/rsvps_controller.rb +2 -0
- data/app/datatables/admin_datatable.rb +3 -3
- data/app/datatables/message_datatable.rb +5 -5
- data/app/datatables/questionnaire_datatable.rb +6 -5
- data/app/datatables/school_datatable.rb +3 -3
- data/app/helpers/hackathon_manager_helper.rb +63 -4
- data/app/helpers/manage/bootstrap_form_helper.rb +98 -0
- data/app/models/bus_list.rb +1 -1
- data/app/models/message.rb +3 -3
- data/app/models/questionnaire.rb +1 -1
- data/app/models/school.rb +10 -4
- data/app/models/user.rb +3 -1
- data/app/views/application/_triggered_email_summary.html.haml +11 -9
- data/app/views/layouts/hackathon_manager/application.html.haml +4 -0
- data/app/views/layouts/manage/_flashes.html.haml +4 -0
- data/app/views/layouts/manage/_page_title.html.haml +8 -0
- data/app/views/layouts/manage/application.html.haml +72 -19
- data/app/views/manage/admins/_form.html.haml +4 -5
- data/app/views/manage/admins/edit.html.haml +5 -10
- data/app/views/manage/admins/index.html.haml +4 -8
- data/app/views/manage/admins/new.html.haml +5 -6
- data/app/views/manage/admins/show.html.haml +12 -14
- data/app/views/manage/bus_lists/_form.html.haml +3 -6
- data/app/views/manage/bus_lists/edit.html.haml +3 -7
- data/app/views/manage/bus_lists/index.html.haml +16 -23
- data/app/views/manage/bus_lists/new.html.haml +2 -5
- data/app/views/manage/bus_lists/show.html.haml +78 -66
- data/app/views/manage/configs/show.html.haml +31 -27
- data/app/views/manage/dashboard/index.html.haml +28 -19
- data/app/views/manage/dashboard/map_data.tsv.erb +6 -13
- data/app/views/manage/messages/_form.html.haml +3 -3
- data/app/views/manage/messages/edit.html.haml +3 -10
- data/app/views/manage/messages/index.html.haml +5 -10
- data/app/views/manage/messages/new.html.haml +2 -7
- data/app/views/manage/messages/show.html.haml +65 -67
- data/app/views/manage/questionnaires/_acc_status_badge.html.haml +2 -0
- data/app/views/manage/questionnaires/_check_in_badge.html.haml +4 -0
- data/app/views/manage/questionnaires/_checkin.html.haml +40 -0
- data/app/views/manage/questionnaires/_form.html.haml +21 -21
- data/app/views/manage/questionnaires/_history.html.haml +7 -0
- data/app/views/manage/questionnaires/_overview.html.haml +126 -0
- data/app/views/manage/questionnaires/edit.html.haml +5 -11
- data/app/views/manage/questionnaires/index.html.haml +19 -23
- data/app/views/manage/questionnaires/new.html.haml +2 -7
- data/app/views/manage/questionnaires/show.html.haml +28 -65
- data/app/views/manage/schools/_form.html.haml +2 -2
- data/app/views/manage/schools/edit.html.haml +5 -11
- data/app/views/manage/schools/index.html.haml +4 -8
- data/app/views/manage/schools/merge.html.haml +6 -8
- data/app/views/manage/schools/new.html.haml +2 -7
- data/app/views/manage/schools/show.html.haml +58 -55
- data/app/views/manage/stats/index.html.haml +18 -15
- data/app/views/questionnaires/_form.html.haml +2 -2
- data/config/initializers/simple_form.rb +4 -0
- data/config/initializers/simple_form_bootstrap.rb +412 -0
- data/config/locales/en.yml +73 -0
- data/db/migrate/20180701160855_remove_email_from_questionnaires.rb +5 -0
- data/lib/hackathon_manager/version.rb +1 -1
- metadata +39 -31
- data/app/assets/javascripts/hackathon_manager/vendor/buttons.colVis.min.js +0 -6
- data/app/assets/javascripts/hackathon_manager/vendor/buttons.html5.min.js +0 -22
- data/app/assets/javascripts/hackathon_manager/vendor/dataTables.buttons.min.js +0 -35
- data/app/assets/javascripts/hackathon_manager/vendor/jquery.dataTables.min.js +0 -164
- data/app/assets/javascripts/hackathon_manager/vendor/pdfmake.min.js +0 -22
- data/app/assets/stylesheets/hackathon_manager/datatables/buttons.dataTables.min.css +0 -1
- data/app/assets/stylesheets/hackathon_manager/datatables/jquery.dataTables.min.css +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.form-container
|
|
2
|
-
=
|
|
2
|
+
= bs_horizontal_simple_form_for @user, url: url_for(action: @user.new_record? ? "create" : "update", controller: "admins"), html: { "data-validate" => "form" } do |f|
|
|
3
3
|
|
|
4
4
|
- if @user.new_record?
|
|
5
5
|
%p
|
|
@@ -10,9 +10,8 @@
|
|
|
10
10
|
= f.error_notification
|
|
11
11
|
|
|
12
12
|
.form-inputs
|
|
13
|
-
= f.input :email,
|
|
14
|
-
= f.input :admin_limited_access,
|
|
15
|
-
%p Limited access prevents the admin from adding, modifying, or deleting any records. Modifications through the check-in process are allowed.
|
|
13
|
+
= f.input :email, input_html: { "data-validate" => "presence" }, required: true
|
|
14
|
+
= f.input :admin_limited_access, label: "Limited Access"
|
|
16
15
|
|
|
17
16
|
.center
|
|
18
|
-
= f.button :submit, value: ( @user.new_record? ? 'Create' : 'Save' )
|
|
17
|
+
= f.button :submit, value: ( @user.new_record? ? 'Create' : 'Save' ), class: 'btn-primary'
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
= render "layouts/manage/page_title", title: "Edit Admin", subtitle: @user.email do
|
|
2
|
+
.btn-group
|
|
3
|
+
= link_to 'Cancel', manage_admin_path(@user), class: 'btn btn-sm btn-outline-secondary'
|
|
4
|
+
= link_to 'Delete', manage_admin_path(@user), method: :delete, data: { confirm: "Are you sure? #{@user.email} will be permanently deleted. This action is irreversible." }, class: 'btn btn-sm btn-outline-secondary'
|
|
3
5
|
|
|
4
|
-
= render 'form'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
.center
|
|
8
|
-
= link_to 'Back', manage_admins_path
|
|
9
|
-
\|
|
|
10
|
-
= link_to 'Delete', manage_admin_path(@user), method: :delete, data: { confirm: 'Are you sure? This action is irreversible.' }
|
|
11
|
-
\|
|
|
12
|
-
= link_to 'Show', manage_admin_path(@user)
|
|
7
|
+
= render 'form'
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
= render "layouts/manage/page_title", title: "Admins" do
|
|
2
|
+
= link_to "New Admin", new_manage_admin_path, class: "btn btn-sm btn-outline-secondary"
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
%div
|
|
5
|
+
%table.users.datatable.table.table-striped.table-hover{ "data-source" => datatable_manage_admins_path(format: :json) }
|
|
5
6
|
%thead
|
|
6
7
|
%tr
|
|
7
|
-
%th
|
|
8
8
|
%th ID
|
|
9
9
|
%th Email
|
|
10
10
|
%th Access Level
|
|
11
11
|
%tbody
|
|
12
|
-
|
|
13
|
-
- unless current_user.admin_limited_access
|
|
14
|
-
%br
|
|
15
|
-
= btn_link_to 'New Admin', new_manage_admin_path
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
%h1.section-title= title "New Admin"
|
|
1
|
+
= render "layouts/manage/page_title", title: "New Admin"
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
= render 'form'
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
.form-container
|
|
6
|
+
.center
|
|
7
|
+
= link_to 'Back', manage_admins_path
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
= render "layouts/manage/page_title", title: @user.email do
|
|
2
|
+
- unless current_user.admin_limited_access
|
|
3
|
+
.btn-group
|
|
4
|
+
= link_to 'Edit', edit_manage_admin_path(@user), class: 'btn btn-sm btn-outline-secondary'
|
|
5
|
+
= link_to 'Delete', manage_admin_path(@user), method: :delete, data: { confirm: "Are you sure? #{@user.email} will be permanently deleted. This action is irreversible." }, class: 'btn btn-sm btn-outline-secondary'
|
|
3
6
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- unless current_user.admin_limited_access
|
|
13
|
-
= link_to 'Edit', edit_manage_admin_path(@user)
|
|
14
|
-
\|
|
|
15
|
-
= link_to 'Back', manage_admins_path
|
|
7
|
+
%div
|
|
8
|
+
%p
|
|
9
|
+
%b Email address:
|
|
10
|
+
= @user.email
|
|
11
|
+
%p
|
|
12
|
+
%b Access level:
|
|
13
|
+
= @user.admin_limited_access ? "Limited Access" : "Full Access"
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
.form-container
|
|
2
|
-
=
|
|
2
|
+
= bs_horizontal_simple_form_for(@bus_list, url: url_for(action: @bus_list.new_record? ? "create" : "update", controller: "bus_lists")) do |f|
|
|
3
3
|
= f.error_notification
|
|
4
4
|
|
|
5
5
|
.form-inputs
|
|
6
6
|
= f.input :name
|
|
7
7
|
= f.input :capacity
|
|
8
8
|
= f.input :needs_bus_captain
|
|
9
|
-
= f.input :notes, input_html: { rows:
|
|
10
|
-
%p
|
|
11
|
-
%small
|
|
12
|
-
%em Notes support Markdown and HTML.
|
|
9
|
+
= f.input :notes, input_html: { rows: 15 }
|
|
13
10
|
|
|
14
11
|
.form-actions
|
|
15
|
-
= f.button :submit
|
|
12
|
+
= f.button :submit, class: 'btn-primary'
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
= render "layouts/manage/page_title", title: "Edit Bus List", subtitle: @bus_list.name do
|
|
2
|
+
= link_to 'Cancel', manage_bus_list_path(@bus_list), class: 'btn btn-sm btn-outline-secondary'
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
= link_to 'Show', manage_bus_list_path(@bus_list)
|
|
7
|
-
\|
|
|
8
|
-
= link_to 'Back', manage_bus_list_path
|
|
4
|
+
= render 'form'
|
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
= render "layouts/manage/page_title", title: "Bus Lists" do
|
|
2
|
+
= link_to "New Bus List", new_manage_bus_list_path, class: "btn btn-sm btn-outline-secondary"
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
%th Capacity
|
|
8
|
-
%th Needs Captain?
|
|
9
|
-
%th Schools
|
|
10
|
-
%th Actions
|
|
11
|
-
%th
|
|
12
|
-
%th
|
|
13
|
-
|
|
14
|
-
- @bus_lists.each do |bus_list|
|
|
4
|
+
%div
|
|
5
|
+
%table.table.table-striped.table-hover
|
|
6
|
+
%thead
|
|
15
7
|
%tr
|
|
16
|
-
%
|
|
17
|
-
%
|
|
18
|
-
%
|
|
19
|
-
%
|
|
20
|
-
%td= link_to 'Show', manage_bus_list_path(bus_list)
|
|
21
|
-
%td= link_to 'Edit', edit_manage_bus_list_path(bus_list)
|
|
22
|
-
%td= link_to 'Destroy', manage_bus_list_path(bus_list), :method => :delete, :data => { :confirm => 'Are you sure?' }
|
|
23
|
-
|
|
24
|
-
%br
|
|
8
|
+
%th Name
|
|
9
|
+
%th Capacity
|
|
10
|
+
%th Needs Captain?
|
|
11
|
+
%th Schools
|
|
25
12
|
|
|
26
|
-
|
|
13
|
+
%tbody
|
|
14
|
+
- @bus_lists.each do |bus_list|
|
|
15
|
+
%tr
|
|
16
|
+
%td= link_to(bus_list.name, manage_bus_list_path(bus_list))
|
|
17
|
+
%td #{bus_list.passengers.count} / #{bus_list.capacity}
|
|
18
|
+
%td= bus_list.needs_bus_captain ? "<strong class=\"text-danger\">Yes</strong>".html_safe : "No"
|
|
19
|
+
%td= bus_list.schools.count
|
|
@@ -1,59 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
= render "layouts/manage/page_title", title: @bus_list.name, subtitle: "Bus List" do
|
|
2
|
+
.btn-group
|
|
3
|
+
= link_to 'Edit', edit_manage_bus_list_path(@bus_list), class: 'btn btn-sm btn-outline-secondary'
|
|
4
|
+
= link_to 'Delete', manage_bus_list_path(@bus_list), method: :delete, data: { confirm: "Are you sure? The bus list \"#{@bus_list.name}\" will be permanently erased. This action is irreversible." }, class: 'btn btn-sm btn-outline-secondary'
|
|
5
|
+
= link_to 'Send Email Update', send_update_email_manage_bus_list_path(@bus_list), method: :patch, data: { confirm: "Are you sure? All passengers for \"#{@bus_list.name}\" will be emailed the current bus notes." }, class: 'btn btn-sm btn-outline-secondary'
|
|
3
6
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
%
|
|
7
|
+
.row
|
|
8
|
+
.col-lg-6
|
|
9
|
+
%h4.border-bottom.pb-2.mb-3 Details
|
|
10
|
+
%dl.row
|
|
11
|
+
%dt.col-md-5 Name
|
|
12
|
+
%dd.col-md-7= @bus_list.name
|
|
13
|
+
%dt.col-md-5 Capacity
|
|
14
|
+
%dd.col-md-7= @bus_list.capacity
|
|
15
|
+
%dt.col-md-5 Needs bus captain?
|
|
16
|
+
%dd.col-md-7= @bus_list.needs_bus_captain ? "Yes" : "No"
|
|
17
|
+
%h4.border-bottom.pb-2.mb-3 Schools
|
|
15
18
|
%ul
|
|
16
19
|
- @bus_list.schools.each do |school|
|
|
17
|
-
%li
|
|
20
|
+
%li.pb-2
|
|
21
|
+
= link_to(school.name, manage_school_path(school))
|
|
22
|
+
%br
|
|
23
|
+
%small.text-muted
|
|
24
|
+
- accepted = school.questionnaires.where(acc_status: 'accepted').count
|
|
25
|
+
- no_bus = school.questionnaires.where(acc_status: 'rsvp_confirmed', riding_bus: false).count
|
|
26
|
+
#{accepted} yet to RSVP, #{no_bus} attending but not using bus
|
|
18
27
|
|
|
19
|
-
|
|
28
|
+
.col-lg-6
|
|
29
|
+
%h4.border-bottom.pb-2.mb-3 Bus Notes
|
|
30
|
+
.card.mb-2
|
|
31
|
+
.card-body
|
|
32
|
+
= render partial: 'bus_list_info', locals: { bus_list: @bus_list }
|
|
33
|
+
%p.small.text-muted
|
|
34
|
+
%span.fa.fa-info-circle.icon-space-l.icon-space-r-half
|
|
35
|
+
These notes are provided to applicants, and included in email updates.
|
|
36
|
+
|
|
37
|
+
.row.mt-2
|
|
38
|
+
.col
|
|
39
|
+
%h4.pb-2
|
|
40
|
+
Passengers
|
|
41
|
+
%small.text-muted (#{@bus_list.passengers.count} total, #{@bus_list.checked_in_passengers.count} checked in)
|
|
20
42
|
|
|
21
|
-
%p
|
|
22
|
-
%strong Passengers:
|
|
23
|
-
= "(#{@bus_list.passengers.count} total, #{@bus_list.checked_in_passengers.count} checked in)"
|
|
24
|
-
%table.table
|
|
25
|
-
%thead
|
|
26
|
-
%tr
|
|
27
|
-
%th
|
|
28
|
-
%th First Name
|
|
29
|
-
%th Last Name
|
|
30
|
-
%th Email
|
|
31
|
-
%th Phone Number
|
|
32
|
-
%th School
|
|
33
|
-
%th Boarded bus?
|
|
34
|
-
%th Checked in?
|
|
35
|
-
- unless current_user.admin_limited_access
|
|
36
|
-
%th Actions
|
|
37
|
-
%tbody
|
|
38
|
-
- @bus_list.passengers.each do |p|
|
|
39
|
-
%tr
|
|
40
|
-
%td= link_to '<i class="fa fa-search"></i>'.html_safe, manage_questionnaire_path(p)
|
|
41
|
-
%td= p.first_name
|
|
42
|
-
%td= p.last_name
|
|
43
|
-
%td= p.email
|
|
44
|
-
%td= phone_link_to p.phone
|
|
45
|
-
%td= link_to p.school.name, manage_school_path(p.school)
|
|
46
|
-
%td= p.boarded_bus? ? '<span class="acc-status-accepted">Yes</span>'.html_safe : 'No'
|
|
47
|
-
%td= p.checked_in? ? '<span class="acc-status-accepted">Yes</span>'.html_safe : 'No'
|
|
48
|
-
- unless current_user.admin_limited_access
|
|
49
|
-
%td
|
|
50
|
-
- if p.is_bus_captain?
|
|
51
|
-
= link_to "Remove Bus Captain", toggle_bus_captain_manage_bus_list_path(@bus_list, questionnaire_id: p.id, bus_captain: '0'), method: 'post'
|
|
52
|
-
- else
|
|
53
|
-
= link_to "Make Bus Captain", toggle_bus_captain_manage_bus_list_path(@bus_list, questionnaire_id: p.id, bus_captain: '1'), method: 'post', data: { confirm: 'Are you sure? This will send a confirmation email to the bus captain.' }
|
|
54
|
-
- if @bus_list.needs_bus_captain
|
|
55
|
-
%p
|
|
56
|
-
%strong Possible Bus Captains:
|
|
57
43
|
%table.table
|
|
58
44
|
%thead
|
|
59
45
|
%tr
|
|
@@ -63,10 +49,11 @@
|
|
|
63
49
|
%th Email
|
|
64
50
|
%th Phone Number
|
|
65
51
|
%th School
|
|
66
|
-
|
|
67
|
-
|
|
52
|
+
%th Boarded bus?
|
|
53
|
+
%th Checked in?
|
|
54
|
+
%th Bus Captain
|
|
68
55
|
%tbody
|
|
69
|
-
- @bus_list.passengers.
|
|
56
|
+
- @bus_list.passengers.each do |p|
|
|
70
57
|
%tr
|
|
71
58
|
%td= link_to '<i class="fa fa-search"></i>'.html_safe, manage_questionnaire_path(p)
|
|
72
59
|
%td= p.first_name
|
|
@@ -74,20 +61,45 @@
|
|
|
74
61
|
%td= p.email
|
|
75
62
|
%td= phone_link_to p.phone
|
|
76
63
|
%td= link_to p.school.name, manage_school_path(p.school)
|
|
77
|
-
-
|
|
64
|
+
%td= p.boarded_bus? ? '<span class="text-success">Yes</span>'.html_safe : 'No'
|
|
65
|
+
%td= p.checked_in? ? '<span class="text-success">Yes</span>'.html_safe : 'No'
|
|
66
|
+
- if current_user.admin_limited_access
|
|
67
|
+
%td= p.is_bus_captain? ? "Yes" : "No"
|
|
68
|
+
- else
|
|
78
69
|
%td
|
|
79
70
|
- if p.is_bus_captain?
|
|
80
|
-
= link_to "Remove
|
|
71
|
+
= link_to "Remove", toggle_bus_captain_manage_bus_list_path(@bus_list, questionnaire_id: p.id, bus_captain: '0'), method: 'post', class: 'text-danger'
|
|
81
72
|
- else
|
|
82
|
-
= link_to "
|
|
73
|
+
= link_to "Promote", toggle_bus_captain_manage_bus_list_path(@bus_list, questionnaire_id: p.id, bus_captain: '1'), method: 'post', data: { confirm: "Are you sure you want to make #{p.full_name} a bus captain? They will receive a confirmation email." }
|
|
83
74
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
75
|
+
- if @bus_list.needs_bus_captain
|
|
76
|
+
%h4.mt-4.pb-2 Possible Bus Captains
|
|
77
|
+
%table.table
|
|
78
|
+
%thead
|
|
79
|
+
%tr
|
|
80
|
+
%th
|
|
81
|
+
%th First Name
|
|
82
|
+
%th Last Name
|
|
83
|
+
%th Email
|
|
84
|
+
%th Phone Number
|
|
85
|
+
%th School
|
|
86
|
+
- unless current_user.admin_limited_access
|
|
87
|
+
%th Actions
|
|
88
|
+
%tbody
|
|
89
|
+
- @bus_list.passengers.select { |q| q.bus_captain_interest }.each do |p|
|
|
90
|
+
%tr
|
|
91
|
+
%td= link_to '<i class="fa fa-search"></i>'.html_safe, manage_questionnaire_path(p)
|
|
92
|
+
%td= p.first_name
|
|
93
|
+
%td= p.last_name
|
|
94
|
+
%td= p.email
|
|
95
|
+
%td= phone_link_to p.phone
|
|
96
|
+
%td= link_to p.school.name, manage_school_path(p.school)
|
|
97
|
+
- unless current_user.admin_limited_access
|
|
98
|
+
%td
|
|
99
|
+
- if p.is_bus_captain?
|
|
100
|
+
= link_to "Remove Bus Captain", toggle_bus_captain_manage_bus_list_path(@bus_list, questionnaire_id: p.id, bus_captain: '0'), method: 'post', class: 'text-danger'
|
|
101
|
+
- else
|
|
102
|
+
= link_to "Make Bus Captain", toggle_bus_captain_manage_bus_list_path(@bus_list, questionnaire_id: p.id, bus_captain: '1'), method: 'post', data: { confirm: 'Are you sure? This will send a confirmation email to the bus captain.' }
|
|
87
103
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
\|
|
|
91
|
-
= link_to 'Send Email Update', send_update_email_manage_bus_list_path(@bus_list), method: :patch, data: { confirm: "Are you sure? All passengers for \"#{@bus_list.name}\" will be emailed the current bus notes." }
|
|
92
|
-
\|
|
|
93
|
-
= link_to 'Back', manage_bus_lists_path
|
|
104
|
+
.alert.alert-info
|
|
105
|
+
= render partial: 'bus_list_stats', locals: { bus_list: @bus_list }
|
|
@@ -1,29 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
%h1.section-title= title "Hackathon Configuration"
|
|
1
|
+
= render "layouts/manage/page_title", title: "Hackathon Configuration"
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
.row
|
|
4
|
+
.col-lg-6
|
|
5
|
+
.card
|
|
6
|
+
.card-body
|
|
7
|
+
%h5.card-title Hackathon Manager Config
|
|
8
|
+
%h6.card-subtitle.mb-2.text-muted
|
|
9
|
+
Hackathon Manager configuration can be changed in the source code at
|
|
10
|
+
%code config/hackathon.yml
|
|
11
|
+
\.
|
|
12
|
+
%hr
|
|
13
|
+
- Rails.configuration.hackathon.keys.each do |key|
|
|
14
|
+
%p
|
|
15
|
+
%b #{key}:
|
|
16
|
+
%pre= Rails.configuration.hackathon[key]
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
%
|
|
18
|
+
.col-lg-6
|
|
19
|
+
.card
|
|
20
|
+
.card-body
|
|
21
|
+
%h5.card-title Environment Variables
|
|
22
|
+
%h6.card-subtitle.mb-2.text-muted
|
|
23
|
+
Environment variables are configured on the production server.
|
|
24
|
+
%hr
|
|
25
|
+
%p
|
|
26
|
+
%b Carpool Link:
|
|
27
|
+
%pre= ENV['CARPOOL_LINK'] || '[No value]'
|
|
28
|
+
%p
|
|
29
|
+
%b Slack Sign Up URL:
|
|
30
|
+
%pre= ENV['SLACK_SIGNUP_URL'] || '[No value]'
|
|
31
|
+
%p
|
|
32
|
+
%b AWS S3 Bucket for Resumes:
|
|
33
|
+
%pre= ENV['AWS_BUCKET'] || '[No value]'
|
|
@@ -9,23 +9,25 @@
|
|
|
9
9
|
= javascript_include_tag "hackathon_manager/vendor/queue.v1.min.js"
|
|
10
10
|
= javascript_include_tag "hackathon_manager/vendor/topojson.v1.min.js"
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
%h1.section-title= title "Dashboard"
|
|
12
|
+
= render "layouts/manage/page_title", title: "Dashboard"
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
.row
|
|
15
|
+
.col
|
|
16
16
|
#map
|
|
17
17
|
:javascript
|
|
18
18
|
$('#map').initMap();
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
.row
|
|
21
|
+
.col-7
|
|
22
|
+
%h5.dashboard-container-title Today's Activity
|
|
22
23
|
= area_chart todays_activity_data_manage_dashboard_index_path, colors: [blue, green, red, grey]
|
|
23
|
-
.
|
|
24
|
-
%
|
|
24
|
+
.col
|
|
25
|
+
%h5.dashboard-container-title Today's Stats
|
|
25
26
|
= pie_chart todays_stats_data_manage_dashboard_index_path, colors: [blue, green, red, grey]
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
.row
|
|
29
|
+
.col
|
|
30
|
+
%h5.dashboard-container-title Confirmation Activity
|
|
29
31
|
.graph-overlay.double-metrics
|
|
30
32
|
%h3= Questionnaire.where("checked_in_at != 0").count
|
|
31
33
|
%p total checked in
|
|
@@ -33,29 +35,36 @@
|
|
|
33
35
|
%p total confirmed
|
|
34
36
|
= area_chart confirmation_activity_data_manage_dashboard_index_path, colors: [green, red], library: { legend: { enabled: false } }
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
.row
|
|
39
|
+
.col
|
|
40
|
+
%h5.dashboard-container-title Application Activity
|
|
38
41
|
.graph-overlay
|
|
39
42
|
%h3= Questionnaire.count
|
|
40
43
|
%p total applications
|
|
41
44
|
= area_chart application_activity_data_manage_dashboard_index_path, colors: [blue, orange, grey], library: { legend: { enabled: false } }
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
.row
|
|
47
|
+
.col
|
|
48
|
+
%h5.dashboard-container-title User Distribution
|
|
45
49
|
= pie_chart user_distribution_data_manage_dashboard_index_path, colors: [grey, blue, orange]
|
|
46
|
-
.
|
|
47
|
-
%
|
|
50
|
+
.col
|
|
51
|
+
%h5.dashboard-container-title Application Distribution
|
|
48
52
|
= pie_chart application_distribution_data_manage_dashboard_index_path, colors: [colors[:pending], colors[:accepted], colors[:waitlisted], colors[:denied], colors[:late_waitlist], colors[:rsvp_confirmed], colors[:rsvp_denied]]
|
|
49
53
|
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
.row
|
|
55
|
+
.col
|
|
56
|
+
%h5.dashboard-container-title Schools (Confirmed)
|
|
52
57
|
%ul
|
|
53
58
|
= bar_chart schools_confirmed_data_manage_dashboard_index_path, height: "600px", stacked: true, colors: [blue, orange]
|
|
54
|
-
|
|
59
|
+
|
|
60
|
+
.row
|
|
61
|
+
.col
|
|
62
|
+
%h5.dashboard-container-title Schools (Applied)
|
|
55
63
|
%ul
|
|
56
64
|
= bar_chart schools_applied_data_manage_dashboard_index_path, height: "600px", stacked: true, colors: [colors[:rsvp_confirmed], colors[:accepted], colors[:waitlist], colors[:late_waitlist], colors[:rsvp_denied], colors[:denied], colors[:pending]], library: { legend: { enabled: false } }
|
|
57
65
|
- if School.where("questionnaire_count >= 1 AND questionnaire_count < 5").count > 0
|
|
58
|
-
%
|
|
66
|
+
%p
|
|
67
|
+
%button.btn.btn-light{ onclick: "$('#least-applied-schools').toggle()" }= "List schools with < 5 applicants"
|
|
59
68
|
%ul#least-applied-schools{ style: "display: none" }
|
|
60
69
|
- School.where("questionnaire_count >= 1 AND questionnaire_count < 5").select([:name, :questionnaire_count]).order("questionnaire_count DESC").each do |school|
|
|
61
70
|
%li= "#{school.questionnaire_count} - #{school.name}"
|