|
|
|
class MergeController < ApplicationController
|
|
|
|
before_action :authenticate_user!
|
|
|
|
before_action :authenticate_scope!
|
|
|
|
|
|
|
|
def show
|
|
|
|
render form.view_path
|
|
|
|
end
|
|
|
|
|
|
|
|
def update
|
|
|
|
if form.valid? && form.save!
|
|
|
|
redirect_to form.next_path
|
|
|
|
else
|
|
|
|
render form.view_path
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def organisations
|
|
|
|
@answer_options = answer_options
|
|
|
|
@merge = Merge.new(form_params)
|
|
|
|
@merging_organisations_list = Organisation.where(id: @merge.merging_organisations)
|
|
|
|
@organisation = Organisation.find(params[:id])
|
|
|
|
end
|
|
|
|
|
|
|
|
def answer_options
|
|
|
|
answer_options = { "" => "Select an option" }
|
|
|
|
|
|
|
|
Organisation.all.pluck(:id, :name).each do |organisation|
|
|
|
|
answer_options[organisation[0]] = organisation[1]
|
|
|
|
end
|
|
|
|
answer_options
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def form_params
|
|
|
|
merge_params = params.fetch(:merge, {}).permit(:merging_organisations)
|
|
|
|
merge_params[:merging_organisations] = if merge_params[:merging_organisations].blank?
|
|
|
|
[params[:id]]
|
|
|
|
else
|
|
|
|
merge_params[:merging_organisations].split(" ") << params[:merge][:merging_organisation]
|
|
|
|
end
|
|
|
|
merge_params
|
|
|
|
end
|
|
|
|
|
|
|
|
def authenticate_scope!
|
|
|
|
if current_user.organisation != Organisation.find(params[:id]) && !current_user.support?
|
|
|
|
render_not_found
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|