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,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
%
|
|
7
|
-
%span.fa.fa-info-circle.icon-space-r
|
|
8
|
-
Slack
|
|
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.
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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,71 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
.
|
|
3
|
-
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
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
|
-
=
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
=
|
|
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,28 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
%
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
.
|
|
22
|
-
%
|
|
23
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
%
|
|
68
|
-
%
|
|
69
|
-
%
|
|
70
|
-
%
|
|
71
|
-
%
|
|
72
|
-
%
|
|
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
|
-
|
|
2
|
-
%h1.section-title= title "Statistics & Info"
|
|
1
|
+
= render "layouts/manage/page_title", title: "Statistics & Info"
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
%
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
%
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
%
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
%
|
|
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
|