hackathon_manager 0.13.1 → 0.13.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/hackathon_manager/manage/lib/jquery.bulkRowedit.js +10 -0
- data/app/controllers/manage/questionnaires_controller.rb +2 -1
- data/app/models/questionnaire.rb +10 -5
- data/app/views/manage/questionnaires/_form.html.haml +1 -1
- data/app/views/questionnaires/_form.html.haml +2 -2
- data/db/migrate/20190125021648_change_questionnaire_dietary_special_needs_string_to_text.rb +6 -0
- data/lib/hackathon_manager/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7496dfde19a105b82b8ad9ed044127c612d9edeffe215d8aaca871cb9542fa65
|
4
|
+
data.tar.gz: 2beec10c47c9e6e2bf5df5f8310414c100a784bb11195c5bea90f8b1fcebfc4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f28ad43a041257be5a9fd335ca7855d89b4a66bddacd732459587c8c13e49d4f00800eaee3b724942e70100bafc6019ece1f014fedca4a972a0548c00703dcb
|
7
|
+
data.tar.gz: '09e7f61155f287b0432fde7255d3065c60efa8565ffecb653bf1a507b5e56f8c7125e36c70773d4812f95a7c7cd6de822405a2d7dc3280596c58c2a07605f8d7'
|
@@ -16,6 +16,16 @@ $.fn.bulkRowEdit = function() {
|
|
16
16
|
return false;
|
17
17
|
}
|
18
18
|
|
19
|
+
var number = ids.length;
|
20
|
+
var questionnaires = number === 1 ? 'questionnaire' : 'questionnaires';
|
21
|
+
var status = $('select[data-bulk-row-edit] option[value=' + action + ']').text();
|
22
|
+
var message = 'Are you sure? This will set ' + number + ' ' + questionnaires + ' to "' + status + '".\n\nThis may trigger an automatic email to each applicant depending on your automated messages.';
|
23
|
+
|
24
|
+
if (!confirm(message)) {
|
25
|
+
$('[type=submit][data-bulk-row-edit]').prop('disabled', false);
|
26
|
+
return false;
|
27
|
+
}
|
28
|
+
|
19
29
|
$.ajax({
|
20
30
|
url: $('form[data-bulk-row-edit]').attr('action'),
|
21
31
|
type: 'PATCH',
|
@@ -31,7 +31,8 @@ class Manage::QuestionnairesController < Manage::ApplicationController
|
|
31
31
|
create_params = convert_school_name_to_id(create_params)
|
32
32
|
@questionnaire = ::Questionnaire.new(create_params)
|
33
33
|
if @questionnaire.valid?
|
34
|
-
|
34
|
+
users = User.where(email: email)
|
35
|
+
user = users.count == 1 ? users.first : User.new(email: email, password: Devise.friendly_token.first(10))
|
35
36
|
if user.save
|
36
37
|
@questionnaire.user = user
|
37
38
|
@questionnaire.save
|
data/app/models/questionnaire.rb
CHANGED
@@ -7,12 +7,22 @@ class Questionnaire < ApplicationRecord
|
|
7
7
|
after_save :update_school_questionnaire_count
|
8
8
|
after_destroy :update_school_questionnaire_count
|
9
9
|
|
10
|
+
belongs_to :user
|
11
|
+
belongs_to :school
|
12
|
+
belongs_to :bus_list, optional: true
|
13
|
+
|
14
|
+
validates_uniqueness_of :user_id
|
15
|
+
|
10
16
|
validates_presence_of :first_name, :last_name, :phone, :date_of_birth, :school_id, :experience, :shirt_size, :interest
|
11
17
|
validates_presence_of :gender, :major, :level_of_study, :graduation_year, :race_ethnicity
|
12
18
|
validates_presence_of :agreement_accepted, message: "Please read & accept"
|
13
19
|
validates_presence_of :code_of_conduct_accepted, message: "Please read & accept"
|
14
20
|
validates_presence_of :data_sharing_accepted, message: "Please read & accept"
|
15
21
|
|
22
|
+
DIETARY_SPECIAL_NEEDS_MAX_LENGTH = 500
|
23
|
+
validates_length_of :dietary_restrictions, maximum: DIETARY_SPECIAL_NEEDS_MAX_LENGTH
|
24
|
+
validates_length_of :special_needs, maximum: DIETARY_SPECIAL_NEEDS_MAX_LENGTH
|
25
|
+
|
16
26
|
# if HackathonManager.field_enabled?(:why_attend)
|
17
27
|
# validates_presence_of :why_attend
|
18
28
|
# end
|
@@ -27,9 +37,6 @@ class Questionnaire < ApplicationRecord
|
|
27
37
|
validates :vcs_url, url: { allow_blank: true }
|
28
38
|
validates_format_of :vcs_url, with: %r{((github.com\/\w+\/?)|(bitbucket.org\/\w+\/?))}, allow_blank: true, message: "Must be a GitHub or BitBucket url"
|
29
39
|
|
30
|
-
belongs_to :school
|
31
|
-
belongs_to :bus_list, optional: true
|
32
|
-
|
33
40
|
strip_attributes
|
34
41
|
|
35
42
|
POSSIBLE_EXPERIENCES = {
|
@@ -110,8 +117,6 @@ class Questionnaire < ApplicationRecord
|
|
110
117
|
validates_inclusion_of :shirt_size, in: POSSIBLE_SHIRT_SIZES
|
111
118
|
validates_inclusion_of :acc_status, in: POSSIBLE_ACC_STATUS
|
112
119
|
|
113
|
-
belongs_to :user
|
114
|
-
|
115
120
|
def email
|
116
121
|
user&.email
|
117
122
|
end
|
@@ -10,7 +10,7 @@
|
|
10
10
|
%br
|
11
11
|
= f.input :first_name, input_html: { "data-validate" => "presence" }, label: "First Name", autofocus: true
|
12
12
|
= f.input :last_name, input_html: { "data-validate" => "presence" }, label: "Last Name"
|
13
|
-
= f.input :email, input_html: { "data-validate" => "presence email", value: @questionnaire.user.try(:email) }, required: true
|
13
|
+
= f.input :email, input_html: { "data-validate" => "presence email", value: @questionnaire.user.try(:email) }, required: true, hint: 'Can be an existing user (without a questionnaire) or a new user. If this is a new user, they will receive a randomly-generated password that they must request a password reset for.'
|
14
14
|
= f.input :phone, input_html: { "data-validate" => "presence" }
|
15
15
|
= f.input :date_of_birth, start_year: Date.today.year - 18, end_year: Date.today.year - 90, order: [:month, :day, :year], input_html: { "data-validate" => "presence" }
|
16
16
|
|
@@ -20,8 +20,8 @@
|
|
20
20
|
= f.input :major, input_html: { "data-validate" => "presence" }, wrapper_html: { class: 'input--half' }
|
21
21
|
= f.input :gender, collection: collection_or_text(@questionnaire.gender, Questionnaire::POSSIBLE_GENDERS), include_blank: "(select one...)", input_html: { "data-validate" => "presence" }, wrapper_html: { class: 'input--half' }
|
22
22
|
= f.input :shirt_size, as: :select, collection: Questionnaire::POSSIBLE_SHIRT_SIZES, include_blank: "(select one...)", input_html: { "data-validate" => "presence" }, wrapper_html: { class: 'input--half' }
|
23
|
-
= f.input :dietary_restrictions, as: :text, label: "Health restrictions", wrapper_html: { class: 'input--half' }
|
24
|
-
= f.input :special_needs, as: :text, label: "Special needs", wrapper_html: { class: 'input--half' }
|
23
|
+
= f.input :dietary_restrictions, as: :text, label: "Health restrictions", wrapper_html: { class: 'input--half' }, maxlength: Questionnaire::DIETARY_SPECIAL_NEEDS_MAX_LENGTH
|
24
|
+
= f.input :special_needs, as: :text, label: "Special needs", wrapper_html: { class: 'input--half' }, maxlength: Questionnaire::DIETARY_SPECIAL_NEEDS_MAX_LENGTH
|
25
25
|
|
26
26
|
.right
|
27
27
|
%button.button{ type: "button", "data-wizard" => "next" } Next
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hackathon_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stuart Olivera
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -708,6 +708,7 @@ files:
|
|
708
708
|
- db/migrate/20190107233210_create_trackable_events.rb
|
709
709
|
- db/migrate/20190113231044_refactor_bus_lists.rb
|
710
710
|
- db/migrate/20190118204143_add_role_to_users.rb
|
711
|
+
- db/migrate/20190125021648_change_questionnaire_dietary_special_needs_string_to_text.rb
|
711
712
|
- db/schools.csv
|
712
713
|
- db/seed_messages/questionnaire--accepted.md
|
713
714
|
- db/seed_messages/questionnaire--denied.md
|