Remove travel schedule from registration

(cherry picked from commit d18cc02f0185df39bb4213d8a63a955dfb433dcb)
Re: https://github.com/openSUSE/osem/issues/2333
This commit is contained in:
James Mason 2018-12-29 15:36:17 -08:00 committed by Henne Vogelsang
parent ab0ff0ff03
commit 7a04f3582f
No known key found for this signature in database
GPG key ID: 9D6164C2955FADE0
16 changed files with 29 additions and 144 deletions

View file

@ -13,40 +13,6 @@ $(function () {
format: 'YYYY-MM-DD HH:mm'
});
$("#registration-arrival-datepicker").datetimepicker({
useCurrent: false,
stepping: 15,
sideBySide: true,
format: "YYYY-MM-DD HH:mm",
// current_date <= arrival_date <= end_date
maxDate : $("#registration-arrival-datepicker").attr('end_date'),
minDate : today
});
$("#registration-departure-datepicker").datetimepicker({
useCurrent: false,
stepping: 15,
sideBySide: true,
format: "YYYY-MM-DD HH:mm",
// departure_date > start_date
minDate : $("#registration-arrival-datepicker").attr('start_date')
});
$("#registration-arrival-datepicker").on("dp.change",function (e) {
// departure_date > start_date,arrival_date
if ((new Date(e.date).getTime()) > (new Date($("#registration-arrival-datepicker").attr('start_date')).getTime())){
$('#registration-departure-datepicker').data("DateTimePicker").minDate(e.date);
}
else{
$('#registration-departure-datepicker').data("DateTimePicker").minDate($("#registration-arrival-datepicker").attr('start_date'));
}
});
// departure_date >= arrival_date
$("#registration-departure-datepicker").on("dp.change",function (e) {
$('#registration-arrival-datepicker').data("DateTimePicker").maxDate(e.date);
});
$("#conference-start-datepicker").datetimepicker({
useCurrent: false,
format: "YYYY-MM-DD",

View file

@ -82,7 +82,7 @@ module Admin
def registration_params
params.require(:registration).permit(
:user_id, :conference_id, :arrival, :departure, :attended,
:user_id, :conference_id, :attended,
:volunteer, :other_special_needs, :accepted_code_of_conduct,
vchoice_ids: [], qanswer_ids: [], qanswers_attributes: [], event_ids: []
)

View file

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

View file

@ -10,8 +10,6 @@ class RegistrationDatatable < AjaxDatatablesRails::Base
roles: { source: 'Role.name' },
email: { source: 'User.email' },
accepted_code_of_conduct: { source: 'Registration.accepted_code_of_conduct', searchable: false },
arrival: { source: 'Registration.arrival', searchable: false },
departure: { source: 'Registration.departure', searchable: false },
actions: { source: 'Registration.id', searchable: false, orderable: false }
}
end
@ -36,8 +34,6 @@ class RegistrationDatatable < AjaxDatatablesRails::Base
roles: conference_role_titles(record.user),
email: record.email,
accepted_code_of_conduct: !!record.accepted_code_of_conduct, # rubocop:disable Style/DoubleNegation
arrival: record.arrival&.utc,
departure: record.departure&.utc,
questions: {},
edit_url: edit_admin_conference_registration_path(conference, record),
DT_RowId: record.id

View file

@ -28,8 +28,6 @@ class Registration < ApplicationRecord
validates :user_id, uniqueness: { scope: :conference_id, message: 'already Registered!' }
validate :registration_limit_not_exceed, on: :create
validate :registration_to_events_only_if_present
validates :accepted_code_of_conduct, acceptance: {
if: -> { conference.try(:code_of_conduct).present? }
}
@ -48,19 +46,6 @@ class Registration < ApplicationRecord
private
##
# If the user registers to attend events that are already scheduled,
# only allow registration to events if the user will be present
# (based on arrival and departure attributes)
# No validation if arrival/departure attributes are empty
def registration_to_events_only_if_present
if (arrival || departure) && events.pluck(:start_time).any?
errors.add(:arrival, 'is too late! You cannot register for events that take place before your arrival') if events.pluck(:start_time).compact.map { |x| x < arrival }.any?
errors.add(:departure, 'is too early! You cannot register for events that take place after your departure') if events.pluck(:start_time).compact.map { |x| x > departure }.any?
end
end
def subscribe_to_conference
Subscription.create(conference_id: conference.id, user_id: user.id)
end

View file

@ -30,8 +30,6 @@
%th{ width: '0' } E-Mail
%th{ width: '0' }
%abbr{ title: 'Code of Conduct' } CoC
%th{ width: '0' } Arrival
%th{ width: '0' } Departure
%th{ width: '0' } Actions
%tbody
@ -81,22 +79,6 @@
"className": "code-of-conduct text-center",
"searchable": false
},
{
"data": "arrival",
"searchable": false,
"render": function(data, type, row) {
if (data) { return moment(data).format('ll LT'); }
return '';
}
},
{
"data": "departure",
"searchable": false,
"render": function(data, type, row) {
if (data) { return moment(data).format('ll LT'); }
return '';
}
},
{
"data": null,
"className": "actions",

View file

@ -4,9 +4,7 @@ prawn_document(force_download: true, filename: @pdf_filename, page_layout: :land
'Name',
'Nickname',
'Affiliation',
'Email',
'Arrival Date',
'Departure Date']
'Email']
@conference.questions.each do |question|
header_array << question.title
end
@ -19,8 +17,6 @@ prawn_document(force_download: true, filename: @pdf_filename, page_layout: :land
row << registration.nickname
row << registration.affiliation
row << registration.email
row << registration.arrival.to_s || ''
row << registration.departure.to_s || ''
@conference.questions.each do |question|
qa = registration.qanswers.find_by(question: question)

View file

@ -3,7 +3,7 @@
wb = xlsx_package.workbook
wb.add_worksheet(name: 'registrations') do |sheet|
bold_style = wb.styles.add_style(b: true)
row = ['Attended', 'Name', 'Nickname', 'Affilιation', 'Email', 'Arrival', 'Departure']
row = ['Attended', 'Name', 'Nickname', 'Affilιation', 'Email']
@conference.questions.each do |question|
row << question.title
@ -18,8 +18,6 @@ wb.add_worksheet(name: 'registrations') do |sheet|
row << registration.nickname
row << registration.affiliation
row << registration.email
row << registration.arrival.to_s
row << registration.departure.to_s
@conference.questions.each do |question|
qa = registration.qanswers.find_by(question: question)
answer = ( qa ? qa.answer.title : '' )
@ -30,4 +28,3 @@ wb.add_worksheet(name: 'registrations') do |sheet|
sheet.add_row row
end
end

View file

@ -22,6 +22,7 @@
= render partial: 'devise/shared/sign_up_form_embedded'
= render partial: 'registration_info', locals: { f: f }
= f.input :conference_id, as: :hidden, value: @conference.id
.row
.col-md-12
%p.pull-right

View file

@ -24,10 +24,4 @@
(Scheduled on: #{event.time.to_date})
%br
= 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

@ -33,28 +33,6 @@
data: { toggle: 'modal', target: '#modal-code-of-conduct'}
= render 'conferences/code_of_conduct',
organization: @conference.organization
.row
.col-md-12
%h4
%span.fa-stack
%i.fa.fa-square-o.fa-stack-2x
%i.fa.fa-plane.fa-stack-1x
Travel Schedule
%ul
%li
- if @registration.arrival.present?
arrive at
%strong
= @registration.arrival.strftime('%A, %B %-d. %Y %H:%M')
- else
You haven't scheduled your arrival
%li
- if @registration.departure.present?
depart at
%strong
= @registration.departure.strftime('%A, %B %-d. %Y %H:%M')
- else
You haven't scheduled your departure
- if @conference.surveys.for_registration.any?
.row
.col-md-12