diff --git a/.gitignore b/.gitignore index 0ca7ae4..89a61b4 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,4 @@ brakeman.html /config/settings/local.rb /nbproject/private/ /config/database.yml +/config/app_config.yml diff --git a/app/assets/stylesheets/_application.scss b/app/assets/stylesheets/_application.scss index 940cb6c..0915f6f 100644 --- a/app/assets/stylesheets/_application.scss +++ b/app/assets/stylesheets/_application.scss @@ -62,6 +62,10 @@ p { &.center { text-align: center; } + + &.small { + font-size: 3.5vw; + } } u { @@ -101,6 +105,12 @@ a { } } +.target:target { + text-decoration: underline; + text-decoration-color: $yellow; + text-decoration-style: wavy; +} + .screen-reader-text { clip: rect(1px, 1px, 1px, 1px); height: 1px; @@ -1768,6 +1778,10 @@ ul.warnings { &.make-room { margin-bottom: 2em; } + + .text-field & { + margin: 0 0 1em 0; + } } .success-info { @@ -3435,6 +3449,10 @@ body.policy .policy-agreement ul { p { font-size: 1.25em; + + &.small { + font-size: 1.125em; + } } fieldset { diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 6ea4050..d880949 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -97,9 +97,9 @@ class ApplicationController < BaseController if Rails.env.preview? || Rails.env.production? request_info = { - 'remote_ip' => arg.remote_ip, - 'uuid' => arg.uuid, - 'original_url' => arg.original_url, + 'remote_ip' => request.remote_ip, + 'uuid' => request.uuid, + 'original_url' => request.original_url, 'env' => Hash.new } request.env.each do |key, value| @@ -173,9 +173,9 @@ class ApplicationController < BaseController if Rails.env.preview? || Rails.env.production? suppress(Exception) do request_info = { - 'remote_ip' => arg.remote_ip, - 'uuid' => arg.uuid, - 'original_url' => arg.original_url, + 'remote_ip' => request.remote_ip, + 'uuid' => request.uuid, + 'original_url' => request.original_url, 'env' => Hash.new } request.env.each do |key, value| @@ -349,9 +349,9 @@ class ApplicationController < BaseController if Rails.env.preview? || Rails.env.production? begin request_info = { - 'remote_ip' => arg.remote_ip, - 'uuid' => arg.uuid, - 'original_url' => arg.original_url, + 'remote_ip' => request.remote_ip, + 'uuid' => request.uuid, + 'original_url' => request.original_url, 'env' => Hash.new } request.env.each do |key, value| diff --git a/app/controllers/conferences_controller.rb b/app/controllers/conferences_controller.rb index b619066..efe822d 100644 --- a/app/controllers/conferences_controller.rb +++ b/app/controllers/conferences_controller.rb @@ -65,7 +65,7 @@ class ConferencesController < ApplicationController # pass any data on to the view data_to_instance_variables(result[:data]) - raise result[:exception] if result[:exception].present? && Rails.env.development? + handle_exception(result[:exception]) if result[:exception].present? if @update_status == :paypal_redirect pp_response = @request.setup( diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb index 3516994..91627c0 100644 --- a/app/helpers/form_helper.rb +++ b/app/helpers/form_helper.rb @@ -285,6 +285,11 @@ module FormHelper html += show_errors name, value + if options[:warning].present? + description_id ||= "#{id}-desc" + html += content_tag(:div, _(options[:warning], :s, 2), id: description_id, class: 'warning-info') + end + inside_label = '' if options[:type] == :file diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index c439702..0545d4b 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -6,7 +6,7 @@ class UserMailer < ActionMailer::Base before_filter :set_host - default from: "Bike!Bike! " + default from: "Bike!Bike! " def email_confirmation(confirmation) @confirmation = EmailConfirmation.find(confirmation) if confirmation.present? diff --git a/app/views/application/_policy.html.haml b/app/views/application/_policy.html.haml index 5e03bcf..eb34df0 100644 --- a/app/views/application/_policy.html.haml +++ b/app/views/application/_policy.html.haml @@ -7,7 +7,7 @@ %h3=_'articles.policy.headings.The_Agreement' %ul - policies.each do |term| - %li + %li{id: checkboxes ? nil : term, class: checkboxes ? nil : :target} - if checkboxes = check_box_tag(term, 1, false, required: true) .term=_"articles.policy.term.#{term.to_s}", :s, 2 diff --git a/app/views/registration_steps/_name.html.haml b/app/views/registration_steps/_name.html.haml index aed23bc..e1a9825 100644 --- a/app/views/registration_steps/_name.html.haml +++ b/app/views/registration_steps/_name.html.haml @@ -1,5 +1,10 @@ = registration_step_header = row do - = columns(medium: 12) do - = save_registration_step do + = save_registration_step do + = columns(medium: 12) do = textfield :name, @name, required: true, big: true + %h3=_'articles.conference_registration.headings.pronoun' + = columns(medium: 6) do + %p.small=_'articles.conference_registration.paragraphs.pronoun', :p + = columns(medium: 6) do + = textfield :pronoun, @pronoun, required: false, big: true, warning: 'articles.conference_registration.paragraphs.pronoun_optional' diff --git a/app/views/registration_steps/_review.html.haml b/app/views/registration_steps/_review.html.haml index 763a2a5..672081b 100644 --- a/app/views/registration_steps/_review.html.haml +++ b/app/views/registration_steps/_review.html.haml @@ -26,10 +26,11 @@ - when :html .scroller= richtext(data[:value].html_safe) - else - - if data[:key].present? - =_"#{data[:key]}.#{data[:value]}" + - value = data[:key].present? ? (_"#{data[:key]}.#{data[:value]}") : data[:value].to_s + - if data[:supplementary].present? + = (_'string_formats.data_with_supplementary_value', vars: { value: value, supplementary_value: data[:supplementary] }).html_safe - else - = data[:value].to_s.html_safe + = value.html_safe - else %p.centered=_'articles.conference_registration.paragraphs.registration_cancelled', :p - if @allow_cancel_attendance diff --git a/config/environments/development.rb b/config/environments/development.rb index 1754556..92c9c17 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -33,17 +33,19 @@ BikeBike::Application.configure do config.assets.digest = true config.assets.compile = true - config.action_mailer.delivery_method = :smtp - config.action_mailer.smtp_settings = { - :address => 'mail.bikebike.org', - :domain => 'preview.bikebike.org', - :port => 587, - :authentication => :plain, - :enable_starttls_auto => true, - :openssl_verify_mode => 'none', - :user_name => 'info@preview.bikebike.org', - :password => 'test' - } + # to deliver to the browser instead of email + config.action_mailer.delivery_method = :letter_opener + # config.action_mailer.delivery_method = :smtp + # config.action_mailer.smtp_settings = { + # address: 'smtp.gmail.com', + # domain: 'bikebike.org', + # port: 587, + # authentication: :plain, + # enable_starttls_auto: true, + # openssl_verify_mode: 'none', + # user_name: 'info@bikebike.org', + # password: config.app_config['email_password'] + # } config.action_mailer.raise_delivery_errors = true config.action_mailer.perform_deliveries = true @@ -52,11 +54,6 @@ BikeBike::Application.configure do I18n.config.language_detection_method = I18n::Config::DETECT_LANGUAGE_FROM_URL_PARAM - # to be appraised of mailing errors - config.action_mailer.raise_delivery_errors = true - # to deliver to the browser instead of email - config.action_mailer.delivery_method = :letter_opener - Paypal.sandbox! config.action_controller.default_url_options = { trailing_slash: true } end diff --git a/config/environments/preview.rb b/config/environments/preview.rb index bca5fd7..bb95af1 100644 --- a/config/environments/preview.rb +++ b/config/environments/preview.rb @@ -1,4 +1,5 @@ BikeBike::Application.configure do + config.app_config = config_for(:app_config) # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. @@ -87,14 +88,14 @@ BikeBike::Application.configure do config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { - :address => 'smtp.gmail.com', - :domain => 'bikebike.org', - :port => 587, - :authentication => :plain, - :enable_starttls_auto => true, - :openssl_verify_mode => 'none', - :user_name => '', - :password => '' + address: 'smtp.gmail.com', + domain: 'bikebike.org', + port: 587, + authentication: :plain, + enable_starttls_auto: true, + openssl_verify_mode: 'none', + user_name: 'info@bikebike.org', + password: config.app_config['email_password'] } config.action_mailer.raise_delivery_errors = true config.action_mailer.perform_deliveries = true diff --git a/config/environments/production.rb b/config/environments/production.rb index 657c6a7..2afbc8f 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,4 +1,5 @@ BikeBike::Application.configure do + config.app_config = config_for(:app_config) # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. @@ -88,14 +89,14 @@ BikeBike::Application.configure do config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { - :address => 'smtp.gmail.com', - :domain => 'bikebike.org', - :port => 587, - :authentication => :plain, - :enable_starttls_auto => true, - :openssl_verify_mode => 'none', - :user_name => '', - :password => '' + address: 'smtp.gmail.com', + domain: 'bikebike.org', + port: 587, + authentication: :plain, + enable_starttls_auto: true, + openssl_verify_mode: 'none', + user_name: 'info@bikebike.org', + password: config.app_config['email_password'] } config.action_mailer.raise_delivery_errors = true config.action_mailer.perform_deliveries = true diff --git a/config/locales/en.yml b/config/locales/en.yml index 5137154..f83f73b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1159,6 +1159,8 @@ en: other: "%{count} seconds" x_and_y: "%{x} %{y}" time_ago: "%{time} ago" + string_formats: + data_with_supplementary_value: '%{value} (%{supplementary_value})' errors: format: "%{attribute} %{message}" messages: @@ -1620,8 +1622,9 @@ en: peaceful: We are peaceful and honest. conference_registration: complete: - payment_processed: Thank you for your payment! + payment_processed: Thank you for your payment! Your registration is now complete companion_registered: Your companion has completed their registration, we will do our best to keep you together + registration_complete: Thank you, your registration is now complete error: generic: An unexpected error occurred payment_cancelled: Your payment was cancelled @@ -1688,6 +1691,7 @@ en: name: Name languages: Languages spoken headings: + pronoun: Pronoun (he/she/they) Back_to: 'Back to:' group_ride: Do you plan to attend the group ride? hosting_other: Information for organizers @@ -1797,6 +1801,8 @@ en: additional_details: Additional details companion: Companion paragraphs: + pronoun: It is important that communications with you and about you are as respectful as possible. If you do not provide a pronoun organizers may assume he, she, or they based on your name or visual identity. + pronoun_optional: Providing your pronoun is optional group_ride: There will be a group ride after or before the conference, do you plan to attend? registration_cancelled: You have cancelled your registration. If you reconsider, please re-open your registration using the button below but keep in mind that you may lose out of your housing or bike if you wait too long. hosting_other: Please enter any information you would like organizers to consider when selecting guests. If you have restrictions on guests that you would lke to stay at your home or if you have pets or other factors that might cause guests to be uncomfortable or not able to stay at your home, please list them here. @@ -2166,6 +2172,7 @@ en: forms: labels: generic: + pronoun: Pronoun territory: State/Province payment_type: paypal: Online diff --git a/db/schema.rb b/db/schema.rb index 931b775..0f35ff2 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170609030149) do +ActiveRecord::Schema.define(version: 20170613022506) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -110,6 +110,7 @@ ActiveRecord::Schema.define(version: 20170609030149) do t.boolean "is_participant" t.boolean "is_volunteer" t.string "confirmation_token" + t.binary "data_old" t.string "email" t.boolean "complete" t.boolean "completed" @@ -436,6 +437,7 @@ ActiveRecord::Schema.define(version: 20170609030149) do t.boolean "has_workbench_access" t.datetime "workbench_access_request_date" t.text "workbench_access_request_message" + t.string "pronoun" end add_index "users", ["activation_token"], name: "index_users_on_activation_token", using: :btree diff --git a/features/registration.feature b/features/registration.feature index 3d37b12..c9274e2 100644 --- a/features/registration.feature +++ b/features/registration.feature @@ -35,6 +35,7 @@ Feature: Registration Then I should see 'What is your name?' When I enter my name + And enter my pronoun as 'They' And click the 'Next' button Then I should see 'Which languages do you speak?' @@ -93,6 +94,7 @@ Feature: Registration Then I should get a 'Thank you for registering' email And I should see 'Your registration is complete' And I should see 'Seattle' + And see 'They' And see 'Bike Works' And see 'Yes, I would like to place to stay' And see 'I eat meat and dairy'