Require code of conduct acceptance on registration

This commit is contained in:
James Mason 2018-03-16 16:23:01 -07:00 committed by Ana María Martínez Gómez
parent 95196c7f80
commit 03ef28e74d
9 changed files with 91 additions and 8 deletions

View file

@ -12,6 +12,7 @@ module Admin
@registration_distribution = @conference.registration_distribution
@affiliation_distribution = @conference.affiliation_distribution
@code_of_conduct = @conference.code_of_conduct.present?
end
def edit; end
@ -61,9 +62,11 @@ module Admin
end
def registration_params
params.require(:registration).permit(:user_id, :conference_id, :arrival, :departure, :attended,
:volunteer, :other_special_needs,
vchoice_ids: [], qanswer_ids: [], qanswers_attributes: [], event_ids: [])
params.require(:registration).permit(
:user_id, :conference_id, :arrival, :departure, :attended,
:volunteer, :other_special_needs, :accepted_code_of_conduct,
vchoice_ids: [], qanswer_ids: [], qanswers_attributes: [], event_ids: []
)
end
end
end

View file

@ -112,7 +112,7 @@ class ConferenceRegistrationsController < ApplicationController
params.require(:registration)
.permit(
:conference_id, :arrival, :departure,
:volunteer,
:volunteer, :accepted_code_of_conduct,
vchoice_ids: [], qanswer_ids: [],
qanswers_attributes: [],
event_ids: [],

View file

@ -28,6 +28,10 @@ class Registration < ApplicationRecord
validate :registration_limit_not_exceed, on: :create
validate :registration_to_events_only_if_present
validates :accepted_code_of_conduct, acceptance: {
if: -> { conference.code_of_conduct.present? }
}
after_create :set_week, :subscribe_to_conference, :send_registration_mail
##

View file

@ -25,6 +25,9 @@
%th ID#
%th Name
%th E-Mail
- if @code_of_conduct
%th
%abbr{ title: 'Code of Conduct' } CoC
%th Arrival
%th Departure
- if @conference.questions.any?
@ -43,6 +46,13 @@
= role.name.titleize
%td
= registration.email
- if @code_of_conduct
- if registration.accepted_code_of_conduct
%td.text-success.text-center= fa_icon('check', title: 'accepted')
- else
%td.text-center.text-warning
= fa_icon('exclamation-circle',
title: 'Has not accepted Code of Conduct')
%td
- if registration.arrival
= registration.arrival.strftime('%d %b %H:%M')

View file

@ -1,3 +1,14 @@
- unless @conference.code_of_conduct.blank?
- code_of_conduct_link = link_to 'Code of Conduct', '#',
data: { toggle: 'modal', target: '#modal-code-of-conduct'}
- if @registration.accepted_code_of_conduct
= fa_icon 'check-square-o'
I have read and accepted the
= code_of_conduct_link
- else
= f.input :accepted_code_of_conduct,
label: "I have read and accept the #{code_of_conduct_link}".html_safe,
required: true
- if @conference.questions.any?
= render partial: 'conference_registrations/questions', locals: { f: f }
- if @conference.program.events.with_registration_open.any? || @registration.events.any?
@ -19,3 +30,5 @@
= f.inputs 'Your Travel Info' do
= f.input :arrival, as: :string, label: 'Your arrival time', hint: "Leave blank if not sure", input_html: { value: (f.object.arrival.to_formatted_s(:db_without_seconds) unless f.object.arrival.nil?), id: 'registration-arrival-datepicker',start_date: @conference.start_date,end_date: @conference.end_date}
= f.input :departure, as: :string, label: 'Your departure time', hint: "Leave blank if not sure", input_html: { value: (f.object.departure.to_formatted_s(:db_without_seconds) unless f.object.departure.nil?), id: 'registration-departure-datepicker'}
= render 'conferences/code_of_conduct', organization: @conference.organization

View file

@ -14,6 +14,25 @@
= "#{@conference.venue.city} / #{@conference.venue.country_name}."
%small
= date_string(@conference.start_date, @conference.end_date)
- unless @conference.code_of_conduct.blank?
.row
.col-md-12
%h4= fa_stacked_icon 'handshake-o', base: 'square-o', text: 'Code of Conduct'
%ul.fa-ul
- if @registration.accepted_code_of_conduct
%li.text-info
= fa_icon('check li')
You have accepted the
= link_to 'Code of Conduct', '#',
data: { toggle: 'modal', target: '#modal-code-of-conduct'}
- else
%li.text-warning
= fa_icon('exclamation-circle li')
You need to accept the
= link_to 'Code of Conduct', '#',
data: { toggle: 'modal', target: '#modal-code-of-conduct'}
= render 'conferences/code_of_conduct',
organization: @conference.organization
.row
.col-md-12
%h4