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.
Files changed (76) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +7 -1
  3. data/app/assets/javascripts/hackathon_manager/manage/application.js +4 -6
  4. data/app/assets/javascripts/hackathon_manager/manage/lib/datatables.js +82 -0
  5. data/app/assets/javascripts/hackathon_manager/manage/lib/setupDataTables.js +13 -64
  6. data/app/assets/javascripts/hackathon_manager/vendor/datatables.min.js +290 -0
  7. data/app/assets/stylesheets/hackathon_manager/dashboard.css +109 -0
  8. data/app/assets/stylesheets/hackathon_manager/datatables.min.css +18 -0
  9. data/app/assets/stylesheets/hackathon_manager/manage.sass +64 -47
  10. data/app/controllers/manage/stats_controller.rb +66 -30
  11. data/app/controllers/rsvps_controller.rb +2 -0
  12. data/app/datatables/admin_datatable.rb +3 -3
  13. data/app/datatables/message_datatable.rb +5 -5
  14. data/app/datatables/questionnaire_datatable.rb +6 -5
  15. data/app/datatables/school_datatable.rb +3 -3
  16. data/app/helpers/hackathon_manager_helper.rb +63 -4
  17. data/app/helpers/manage/bootstrap_form_helper.rb +98 -0
  18. data/app/models/bus_list.rb +1 -1
  19. data/app/models/message.rb +3 -3
  20. data/app/models/questionnaire.rb +1 -1
  21. data/app/models/school.rb +10 -4
  22. data/app/models/user.rb +3 -1
  23. data/app/views/application/_triggered_email_summary.html.haml +11 -9
  24. data/app/views/layouts/hackathon_manager/application.html.haml +4 -0
  25. data/app/views/layouts/manage/_flashes.html.haml +4 -0
  26. data/app/views/layouts/manage/_page_title.html.haml +8 -0
  27. data/app/views/layouts/manage/application.html.haml +72 -19
  28. data/app/views/manage/admins/_form.html.haml +4 -5
  29. data/app/views/manage/admins/edit.html.haml +5 -10
  30. data/app/views/manage/admins/index.html.haml +4 -8
  31. data/app/views/manage/admins/new.html.haml +5 -6
  32. data/app/views/manage/admins/show.html.haml +12 -14
  33. data/app/views/manage/bus_lists/_form.html.haml +3 -6
  34. data/app/views/manage/bus_lists/edit.html.haml +3 -7
  35. data/app/views/manage/bus_lists/index.html.haml +16 -23
  36. data/app/views/manage/bus_lists/new.html.haml +2 -5
  37. data/app/views/manage/bus_lists/show.html.haml +78 -66
  38. data/app/views/manage/configs/show.html.haml +31 -27
  39. data/app/views/manage/dashboard/index.html.haml +28 -19
  40. data/app/views/manage/dashboard/map_data.tsv.erb +6 -13
  41. data/app/views/manage/messages/_form.html.haml +3 -3
  42. data/app/views/manage/messages/edit.html.haml +3 -10
  43. data/app/views/manage/messages/index.html.haml +5 -10
  44. data/app/views/manage/messages/new.html.haml +2 -7
  45. data/app/views/manage/messages/show.html.haml +65 -67
  46. data/app/views/manage/questionnaires/_acc_status_badge.html.haml +2 -0
  47. data/app/views/manage/questionnaires/_check_in_badge.html.haml +4 -0
  48. data/app/views/manage/questionnaires/_checkin.html.haml +40 -0
  49. data/app/views/manage/questionnaires/_form.html.haml +21 -21
  50. data/app/views/manage/questionnaires/_history.html.haml +7 -0
  51. data/app/views/manage/questionnaires/_overview.html.haml +126 -0
  52. data/app/views/manage/questionnaires/edit.html.haml +5 -11
  53. data/app/views/manage/questionnaires/index.html.haml +19 -23
  54. data/app/views/manage/questionnaires/new.html.haml +2 -7
  55. data/app/views/manage/questionnaires/show.html.haml +28 -65
  56. data/app/views/manage/schools/_form.html.haml +2 -2
  57. data/app/views/manage/schools/edit.html.haml +5 -11
  58. data/app/views/manage/schools/index.html.haml +4 -8
  59. data/app/views/manage/schools/merge.html.haml +6 -8
  60. data/app/views/manage/schools/new.html.haml +2 -7
  61. data/app/views/manage/schools/show.html.haml +58 -55
  62. data/app/views/manage/stats/index.html.haml +18 -15
  63. data/app/views/questionnaires/_form.html.haml +2 -2
  64. data/config/initializers/simple_form.rb +4 -0
  65. data/config/initializers/simple_form_bootstrap.rb +412 -0
  66. data/config/locales/en.yml +73 -0
  67. data/db/migrate/20180701160855_remove_email_from_questionnaires.rb +5 -0
  68. data/lib/hackathon_manager/version.rb +1 -1
  69. metadata +39 -31
  70. data/app/assets/javascripts/hackathon_manager/vendor/buttons.colVis.min.js +0 -6
  71. data/app/assets/javascripts/hackathon_manager/vendor/buttons.html5.min.js +0 -22
  72. data/app/assets/javascripts/hackathon_manager/vendor/dataTables.buttons.min.js +0 -35
  73. data/app/assets/javascripts/hackathon_manager/vendor/jquery.dataTables.min.js +0 -164
  74. data/app/assets/javascripts/hackathon_manager/vendor/pdfmake.min.js +0 -22
  75. data/app/assets/stylesheets/hackathon_manager/datatables/buttons.dataTables.min.css +0 -1
  76. data/app/assets/stylesheets/hackathon_manager/datatables/jquery.dataTables.min.css +0 -1
@@ -1,12 +1,6 @@
1
- %section.section.manage
2
- %h1.section-title= title "Editing Questionnaire"
1
+ = render "layouts/manage/page_title", title: "Edit Questionnaire", subtitle: @questionnaire.full_name do
2
+ .btn-group
3
+ = link_to 'Cancel', manage_questionnaire_path(@questionnaire), class: 'btn btn-sm btn-outline-secondary'
4
+ = link_to 'Delete', manage_questionnaire_path(@questionnaire), method: :delete, data: { confirm: "Are you sure? The questionnaire and account for \"#{@questionnaire.full_name}\" will be permanently erased. This action is irreversible." }, class: 'btn btn-sm btn-outline-secondary'
3
5
 
4
- = render 'form'
5
-
6
- .form-container
7
- .center
8
- = link_to 'Back', manage_questionnaires_path
9
- \|
10
- = link_to 'Delete', manage_questionnaire_path(@questionnaire), method: :delete, data: { confirm: "Are you sure? The questionnaire and account for \"#{@questionnaire.full_name}\" will be permanently erased. This action is irreversible." }
11
- \|
12
- = link_to 'Show', manage_questionnaire_path(@questionnaire)
6
+ = render 'form'
@@ -1,13 +1,15 @@
1
- %section.section.manage
2
- %h1.section-title= title "Listing Questionnaires"
1
+ = render "layouts/manage/page_title", title: "Questionnaires" do
2
+ = link_to "New Questionnaire", new_manage_questionnaire_path, class: "btn btn-sm btn-outline-secondary"
3
3
 
4
+ %div
4
5
  - if ENV['INVITE_TO_SLACK_UPON_RSVP']
5
- %p
6
- %small
7
- %span.fa.fa-info-circle.icon-space-r
8
- Slack invites will automatically be sent upon RSVP confirmation.
6
+ %p.small
7
+ %strong.text-info
8
+ %span.fa.fa-info-circle.icon-space-r-half
9
+ Slack auto-invite enabled.
10
+ %span.text-muted Invites will automatically be sent upon RSVP confirmation.
9
11
 
10
- %table.questionnaires.datatable.row-border.stripe.hover.order-column{ "data-source" => datatable_manage_questionnaires_path(format: :json) }
12
+ %table.questionnaires.datatable.table.table-striped.table-hover{ "data-source" => datatable_manage_questionnaires_path(format: :json) }
11
13
  %thead
12
14
  %tr
13
15
  %th
@@ -28,22 +30,16 @@
28
30
  %th Applied on
29
31
  %tbody
30
32
 
31
- - unless current_user.admin_limited_access?
32
- %br
33
- .container.container-half
34
- = btn_link_to 'New Questionnaire', new_manage_questionnaire_path
33
+ .row
34
+ .col-sm-7.col-lg-6
35
+ %br
36
+ .card
37
+ .card-body
38
+ %h5.card-title Bulk Action
39
+ = bs_vertical_simple_form Questionnaire.new, url: bulk_apply_manage_questionnaires_path, html: { data: { bulk_row_edit: true } } do |f|
40
+ = f.input :acc_status, as: :select, collection: Questionnaire::POSSIBLE_ACC_STATUS.invert, include_blank: false, label: "Acceptance Status:", input_html: { data: { bulk_row_edit: true } }, hint: "Updating this status may trigger an automatic email to each applicant - see below for details."
41
+ = f.button :submit, value: "Update Status", data: { bulk_row_edit: true }, class: 'btn-primary'
35
42
 
36
- .container.container-half
37
-
38
- .container.container-half
39
- %fieldset
40
- %legend Bulk Action
41
- = simple_form_for Questionnaire.new, url: bulk_apply_manage_questionnaires_path, html: { data: { bulk_row_edit: true } } do |f|
42
- = f.input :acc_status, as: :select, collection: Questionnaire::POSSIBLE_ACC_STATUS.invert, include_blank: false, label: "Acceptance Status:", input_html: { data: { bulk_row_edit: true } }, hint: "Updating this status may trigger an automatic email to each applicant - see below for details."
43
- = f.button :submit, value: "Update Status", data: { bulk_row_edit: true }
44
-
45
- %br
46
- %br
47
- %br
43
+ %hr
48
44
 
49
45
  = render 'triggered_email_summary'
@@ -1,8 +1,3 @@
1
- %section.section.manage
2
- %h1.section-title= title "New Questionnaire"
1
+ = render "layouts/manage/page_title", title: "New Questionnaire"
3
2
 
4
- = render 'form'
5
-
6
- .form-container
7
- .center
8
- = link_to 'Back', manage_questionnaires_path
3
+ = render "form"
@@ -1,71 +1,34 @@
1
- %section.section.manage
2
- .container.container-half
3
- - if @questionnaire.minor?
4
- #disclaimer
5
- %p
6
- %strong
7
- %span.fa.fa-exclamation-triangle.icon-space-r
8
- Applicant is a minor
9
- %p
10
- Will be
11
- = format_age(@questionnaire.age_at_time_of_event)
12
- old.
1
+ .d-flex.justify-content-between.flex-wrap.flex-md-nowrap.align-items-center.pt-3.pb-2.mb-3.border-bottom
2
+ .d-flex.align-items-center.flex-wrap
3
+ %h1.h2.mr-3
4
+ = title @questionnaire.full_name
5
+ %div
6
+ %span.mr-1
7
+ = render 'acc_status_badge'
8
+ %span
9
+ = render 'check_in_badge'
13
10
 
14
- = render partial: 'questionnaire_summary'
15
-
16
- %p
17
- %b Accepted Agreement:
18
- = @questionnaire.agreement_accepted ? "Yes" : "<span style='color: red'><strong>NO</strong></span>".html_safe
19
-
20
- .container.container-half
11
+ .btn-group{role: "group"}
21
12
  - unless current_user.admin_limited_access
22
- = link_to 'Edit', edit_manage_questionnaire_path(@questionnaire)
23
- \|
24
- = link_to 'Convert to Admin', convert_to_admin_manage_questionnaire_path(@questionnaire), method: :patch, data: { confirm: "Are you sure? The questionnaire for \"#{@questionnaire.full_name}\" will be permanently erased. This action is irreversible." }
25
- \|
26
- = link_to 'Invite to Slack', invite_to_slack_manage_questionnaire_path(@questionnaire), method: :patch
27
- \|
28
- = link_to 'Back', manage_questionnaires_path
29
- %hr
13
+ = link_to 'Edit', edit_manage_questionnaire_path(@questionnaire), class: 'btn btn-sm btn-outline-secondary'
14
+ = link_to 'Invite to Slack', invite_to_slack_manage_questionnaire_path(@questionnaire), method: :patch, class: 'btn btn-sm btn-outline-secondary'
15
+ - unless current_user.admin_limited_access
16
+ .btn-group{role: "group"}
17
+ %button.btn.btn-sm.btn-outline-secondary.dropdown-toggle#title-actions{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", type: "button"}
18
+ .fa.fa-cog
19
+ .dropdown-menu.dropdown-menu-right{"aria-labelledby" => "title-actions"}
20
+ = link_to 'Convert to Admin', convert_to_admin_manage_questionnaire_path(@questionnaire), method: :patch, data: { confirm: "Are you sure? The questionnaire for \"#{@questionnaire.full_name}\" will be permanently erased. This action is irreversible." }, class: 'dropdown-item'
21
+
22
+ = render 'overview'
30
23
 
31
- %p
32
- %b Acceptance Status:
33
- %span{class: "acc-status-#{@questionnaire.acc_status}"}
34
- = Questionnaire::POSSIBLE_ACC_STATUS[@questionnaire.acc_status]
35
- %p
36
- %b Last Updated By:
37
- = @questionnaire.acc_status_author_id ? @questionnaire.acc_status_author.email : "(no author)"
38
- %p
39
- %b Changed On:
40
- = @questionnaire.acc_status_date ? @questionnaire.acc_status_date : "(no date)"
41
- %p
42
- %b Checked In At:
43
- = @questionnaire.checked_in_at ? @questionnaire.checked_in_at : "(not checked in)"
44
- %p
45
- %b Check-in Updated By:
46
- = @questionnaire.checked_in_by_id ? @questionnaire.checked_in_by.email : "(never checked in)"
24
+ .row
25
+ .col
26
+ %h3.mt-3.pb-2.border-bottom.mb-3 Admissions
47
27
 
48
- %hr
49
- = simple_form_for @questionnaire, url: url_for(action: "check_in", controller: "questionnaires", method: :put), html: { "data-validate" => "form" } do |f|
50
- - if !@questionnaire.checked_in?
51
- = f.input :agreement_accepted, as: :formatted_boolean, input_html: { "data-validate" => "presence" }
52
- = f.input :can_share_info, as: :formatted_boolean
53
- = f.input :phone, input_html: { "data-validate" => "presence" }
54
- = f.input :email, placeholder: "joe@example.com", input_html: { "data-validate" => "presence email", value: @questionnaire.user.try(:email) }, required: true
55
- = hidden_field_tag("check_in", !@questionnaire.checked_in?)
56
- = f.button :submit, value: ( @questionnaire.checked_in? ? "Remove check-in" : "Check In" )
57
- - if !@questionnaire.checked_in?
58
- %p
59
- %small
60
- %i An invite to Slack will be sent upon check-in, if they haven't joined already.
28
+ = render 'checkin'
61
29
 
62
- - unless current_user.admin_limited_access?
63
- %hr
64
- = simple_form_for @questionnaire, url: url_for(action: "update_acc_status", controller: "questionnaires") do |f|
65
- = f.input :acc_status, as: :select, collection: Questionnaire::POSSIBLE_ACC_STATUS.invert, include_blank: false, label: "Acceptance Status:", hint: "Updating this status may trigger an automatic email to the applicant - see #{link_to('messages', manage_messages_path)} for details.".html_safe
66
- = f.button :submit, value: "Update Status"
30
+ .row
31
+ .col
32
+ %h3.mt-3.pb-2.border-bottom.mb-3 History
67
33
 
68
- %hr
69
- %h4 Recent Email Events
70
- .email-events{ data: { url: message_events_manage_questionnaire_path(@questionnaire) } }
71
- %em Email events not available at this time.
34
+ = render 'history'
@@ -1,5 +1,5 @@
1
1
  .form-container
2
- = simple_form_for @school, url: url_for(action: @school.new_record? ? "create" : "update", controller: "schools"), html: { "data-validate" => "form" } do |f|
2
+ = bs_horizontal_simple_form_for @school, url: url_for(action: @school.new_record? ? "create" : "update", controller: "schools"), html: { "data-validate" => "form" } do |f|
3
3
 
4
4
  - if f.error_notification.present?
5
5
  #disclaimer
@@ -13,4 +13,4 @@
13
13
  = f.association :bus_list, include_blank: "(none)"
14
14
 
15
15
  .center
16
- = f.button :submit, value: ( @school.new_record? ? 'Create' : 'Save' )
16
+ = f.button :submit, value: ( @school.new_record? ? 'Create' : 'Save' ), class: 'btn-primary'
@@ -1,12 +1,6 @@
1
- %section.section.manage
2
- %h1.section-title= title "Editing School"
1
+ = render "layouts/manage/page_title", title: "Edit School", subtitle: @school.name do
2
+ .btn-group
3
+ = link_to 'Cancel', manage_school_path(@school), class: 'btn btn-sm btn-outline-secondary'
4
+ = link_to 'Delete', manage_school_path(@school), method: :delete, data: { confirm: 'Are you sure? This action is irreversible.' }, class: 'btn btn-sm btn-outline-secondary'
3
5
 
4
- = render 'form'
5
-
6
- .form-container
7
- .center
8
- = link_to 'Back', manage_schools_path
9
- \|
10
- = link_to 'Delete', manage_school_path(@school), method: :delete, data: { confirm: 'Are you sure? This action is irreversible.' }
11
- \|
12
- = link_to 'Show', manage_school_path(@school)
6
+ = render 'form'
@@ -1,10 +1,10 @@
1
- %section.section.manage
2
- %h1.section-title= title "Listing Schools"
1
+ = render "layouts/manage/page_title", title: "Schools" do
2
+ = link_to "New School", new_manage_school_path, class: "btn btn-sm btn-outline-secondary"
3
3
 
4
- %table.schools.datatable.row-border.stripe.hover.order-column{ "data-source" => datatable_manage_schools_path(format: :json) }
4
+ %div
5
+ %table.schools.datatable.table.table-striped.table-hover{ "data-source" => datatable_manage_schools_path(format: :json) }
5
6
  %thead
6
7
  %tr
7
- %th
8
8
  %th ID
9
9
  %th Name
10
10
  %th City
@@ -12,7 +12,3 @@
12
12
  %th Count
13
13
  %th Bus List
14
14
  %tbody
15
-
16
- - unless current_user.admin_limited_access
17
- %br
18
- = btn_link_to 'New School', new_manage_school_path
@@ -1,8 +1,10 @@
1
- %section.section.manage
2
- %h1.section-title= title "Merge School"
1
+ = render "layouts/manage/page_title", title: "Merge School", subtitle: @school.name do
2
+ .btn-group
3
+ = link_to 'Cancel', manage_school_path(@school), class: 'btn btn-sm btn-outline-secondary'
3
4
 
5
+ %div
4
6
  .form-container
5
- = simple_form_for @school, url: url_for(action: "perform_merge", controller: "schools"), html: { "data-validate" => "form" } do |f|
7
+ = bs_vertical_simple_form @school, url: url_for(action: "perform_merge", controller: "schools"), html: { "data-validate" => "form" } do |f|
6
8
 
7
9
  %p#disclaimer
8
10
  %strong WARNING! This is an irreversible action!
@@ -25,8 +27,4 @@
25
27
  school name to this new school.
26
28
 
27
29
  .center
28
- = f.button :submit, value: 'Merge'
29
-
30
- .form-container
31
- .center
32
- = link_to 'Back', manage_school_path(@school)
30
+ = f.button :submit, value: 'Merge', class: 'btn-primary'
@@ -1,8 +1,3 @@
1
- %section.section.manage
2
- %h1.section-title= title "New Admin"
1
+ = render "layouts/manage/page_title", title: "New School"
3
2
 
4
- = render 'form'
5
-
6
- .form-container
7
- .center
8
- = link_to 'Back', manage_admins_path
3
+ = render 'form'
@@ -1,28 +1,38 @@
1
- %section.section.manage
2
- %h1.section-title= title @school.name
1
+ = render "layouts/manage/page_title", title: @school.name, subtitle: "School" do
2
+ .btn-group
3
+ = link_to 'Edit', edit_manage_school_path(@school), class: 'btn btn-sm btn-outline-secondary'
4
+ = link_to 'Merge', merge_manage_school_path(@school), class: 'btn btn-sm btn-outline-secondary'
3
5
 
4
- .container.container-half
5
- %p
6
- %b Name:
7
- = @school.name
8
- %p
9
- %b Address:
10
- = @school.address || "(not provided)"
11
- %p
12
- %b City:
13
- = @school.city || "(not provided)"
14
- %p
15
- %b State:
16
- = @school.state || "(not provided)"
17
- %p
18
- %b Bus List:
19
- = @school.bus_list ? link_to(@school.bus_list.name, manage_bus_list_path(@school.bus_list)) : '(not assigned)'
6
+ .row
7
+ .col-md-6
8
+ %h4.border-bottom.pb-2.mb-3 Details
9
+ %dl.row
10
+ %dt.col-md-4 Name
11
+ %dd.col-md-8
12
+ = @school.name
13
+ %br
14
+ %small
15
+ = link_to google_maps_link(@school.name), target: '_blank' do
16
+ Search in Google Maps
17
+ %span.fa.fa-external-link.icon-space-l-half
18
+ %dt.col-md-4 Address
19
+ %dd.col-md-8
20
+ - if @school.address.present?
21
+ = @school.address
22
+ %br
23
+ = @school.full_location
24
+ %br
25
+ %small
26
+ - link = google_maps_link(@school.address, @school.city, @school.state)
27
+ = link_to link, target: '_blank' do
28
+ Search in Google Maps
29
+ %span.fa.fa-external-link.icon-space-l-half
30
+ %dt.col-md-4 Bus List
31
+ %dd.col-md-8= @school.bus_list ? link_to(@school.bus_list.name, manage_bus_list_path(@school.bus_list)) : '(not assigned)'
20
32
 
21
- .container.container-half
22
- %p
23
- %strong Duplicate Names
24
- %p If someone attempts to apply using a name below, they'll automatically be converted to this school.
25
- %table.table
33
+ .col-md-6
34
+ %h4.pb-0 Duplicate Names
35
+ %table.table.table-striped
26
36
  %thead
27
37
  %tr
28
38
  %th School Name
@@ -32,41 +42,34 @@
32
42
  - dupes.each do |dupe|
33
43
  %tr
34
44
  %td= dupe.name
35
- %td= dupe.created_at
45
+ %td= display_datetime(dupe.created_at)
36
46
  - if dupes.blank?
37
47
  %tr
38
48
  %td{colspan: 2}
39
49
  %em No duplicate names exist for this school.
50
+ %p.small.text-muted
51
+ %span.fa.fa-info-circle.icon-space-l.icon-space-r-half
52
+ If someone attempts to apply using a name above, they'll automatically be converted to this school.
40
53
 
41
- %hr
42
-
43
- - unless current_user.admin_limited_access
44
- = link_to 'Edit', edit_manage_school_path(@school)
45
- \|
46
- - unless current_user.admin_limited_access
47
- = link_to 'Merge', merge_manage_school_path(@school)
48
- \|
49
- = link_to 'Back', manage_schools_path
50
-
51
- %hr
52
-
53
- %p
54
- %strong Questionnaires
55
- %table.table
56
- %thead
57
- %tr
58
- %th
59
- %th First Name
60
- %th Last Name
61
- %th Email
62
- %th Status
63
- %th Checked In?
64
- %tbody
65
- - @school.questionnaires.order(:acc_status).each do |q|
54
+ .row.mt-2
55
+ .col
56
+ %h4.pb-0 Questionnaires
57
+ %table.table
58
+ %caption #{@school.questionnaires.count} total
59
+ %thead
66
60
  %tr
67
- %td= link_to '<i class="fa fa-search"></i>'.html_safe, manage_questionnaire_path(q)
68
- %td= q.first_name
69
- %td= q.last_name
70
- %td= q.email
71
- %td= "<span class=\"acc-status-#{q.acc_status}\">#{Questionnaire::POSSIBLE_ACC_STATUS[q.acc_status]}</span>".html_safe
72
- %td= q.checked_in? ? "Yes" : "No"
61
+ %th
62
+ %th First Name
63
+ %th Last Name
64
+ %th Email
65
+ %th Status
66
+ %th Checked In?
67
+ %tbody
68
+ - @school.questionnaires.order(:acc_status).each do |q|
69
+ %tr
70
+ %td= link_to '<i class="fa fa-search"></i>'.html_safe, manage_questionnaire_path(q)
71
+ %td= q.first_name
72
+ %td= q.last_name
73
+ %td= q.email
74
+ %td= "<span class=\"text-#{acc_status_class(q.acc_status)}\">#{Questionnaire::POSSIBLE_ACC_STATUS[q.acc_status]}</span>".html_safe
75
+ %td= q.checked_in? ? "Yes" : "No"
@@ -1,9 +1,9 @@
1
- %section.section.manage
2
- %h1.section-title= title "Statistics & Info"
1
+ = render "layouts/manage/page_title", title: "Statistics & Info"
3
2
 
4
- .container.container-full
5
- %h4.dashboard-container-title Dietary Restrictions & Special Needs
6
- %table.stats.datatable.row-border.stripe.hover.order-column{ "data-source" => dietary_special_needs_manage_stats_path(format: :json) }
3
+ .row
4
+ .col
5
+ %h5.dashboard-container-title Dietary Restrictions & Special Needs
6
+ %table.stats.datatable.table.table-striped.table-hover{ "data-source" => dietary_special_needs_manage_stats_path(format: :json) }
7
7
  %thead
8
8
  %tr
9
9
  %th First name
@@ -15,9 +15,10 @@
15
15
  %th Special Needs
16
16
  %tbody
17
17
 
18
- .container.container-full
19
- %h4.dashboard-container-title Attendees Not Traveling From Their School
20
- %table.stats.datatable.row-border.stripe.hover.order-column{ "data-source" => alt_travel_manage_stats_path(format: :json) }
18
+ .row
19
+ .col
20
+ %h5.dashboard-container-title Attendees Not Traveling From Their School
21
+ %table.stats.datatable.table.table-striped.table-hover{ "data-source" => alt_travel_manage_stats_path(format: :json) }
21
22
  %thead
22
23
  %tr
23
24
  %th Link
@@ -28,23 +29,25 @@
28
29
  %th Acc Status
29
30
  %tbody
30
31
 
31
- .container.container-full
32
- %h4.dashboard-container-title Attendee Info for Sponsors
33
- %table.stats.datatable.row-border.stripe.hover.order-column{ "data-source" => sponsor_info_manage_stats_path(format: :json) }
32
+ .row
33
+ .col
34
+ %h5.dashboard-container-title Attendee Info for Sponsors
35
+ %table.stats.datatable.table.table-striped.table-hover{ "data-source" => sponsor_info_manage_stats_path(format: :json) }
34
36
  %thead
35
37
  %tr
36
38
  %th First name
37
39
  %th Last name
38
40
  %th Email
41
+ %th School
39
42
  %th Open Source Link
40
43
  %th Portfolio Link
41
44
  %th Resume Link
42
- %th School
43
45
  %tbody
44
46
 
45
- .container.container-full
46
- %h4.dashboard-container-title MLH Info
47
- %table.stats.datatable.row-border.stripe.hover.order-column{ "data-source" => mlh_info_manage_stats_path(format: :json) }
47
+ .row
48
+ .col
49
+ %h5.dashboard-container-title MLH Info
50
+ %table.stats.datatable.table.table-striped.table-hover{ "data-source" => mlh_info_manage_stats_path(format: :json) }
48
51
  %thead
49
52
  %tr
50
53
  %th First name