diff --git a/app/controllers/rsvps_controller.rb b/app/controllers/rsvps_controller.rb index 82d9f0e2d..32cfc9881 100644 --- a/app/controllers/rsvps_controller.rb +++ b/app/controllers/rsvps_controller.rb @@ -55,23 +55,8 @@ def update return end - @questionnaire.acc_status_date = Time.now if @questionnaire.acc_status != params[:questionnaire][:acc_status] - @questionnaire.acc_status = params[:questionnaire][:acc_status] - @questionnaire.acc_status_author_id = current_user.id - - new_bus_list_id = params[:questionnaire][:bus_list_id].presence - new_bus_list = new_bus_list_id && BusList.find(new_bus_list_id) - is_joining_bus = new_bus_list.present? && @questionnaire.bus_list != new_bus_list - if is_joining_bus && new_bus_list.full? - if @questionnaire.bus_list_id? - flash[:alert] = "Sorry, that bus is full. You are still signed up for the '#{@questionnaire.bus_list.name}' bus." - else - flash[:alert] = "Sorry, that bus is full. You may need to arrange other plans for transportation." - end - else - @questionnaire.bus_list = new_bus_list - @questionnaire.bus_captain_interest = params[:questionnaire][:bus_captain_interest] - end + update_acc_status + update_bus_list unless @questionnaire.save flash[:alert] = @questionnaire.errors.full_message.join(", ") @@ -91,6 +76,28 @@ def update private + def update_acc_status + @questionnaire.acc_status_date = Time.now if @questionnaire.acc_status != params[:questionnaire][:acc_status] + @questionnaire.acc_status = params[:questionnaire][:acc_status] + @questionnaire.acc_status_author_id = current_user.id + end + + def update_bus_list + new_bus_list_id = params[:questionnaire][:bus_list_id].presence + new_bus_list = new_bus_list_id && BusList.find(new_bus_list_id) + is_joining_bus = new_bus_list.present? && @questionnaire.bus_list != new_bus_list + if is_joining_bus && new_bus_list.full? + if @questionnaire.bus_list_id? + flash[:alert] = "Sorry, that bus is full. You are still signed up for the '#{@questionnaire.bus_list.name}' bus." + else + flash[:alert] = "Sorry, that bus is full. You may need to arrange other plans for transportation." + end + else + @questionnaire.bus_list = new_bus_list + @questionnaire.bus_captain_interest = params[:questionnaire][:bus_captain_interest] + end + end + def rsvp_error_notice hackathon_name = HackathonConfig['name'] "There was an error submitting your response, please check over your application and try again. Did you accept the #{hackathon_name} Agreement?"