diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index b86676fc6..8eb46653b 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -25,9 +25,9 @@ class SchemesController < ApplicationController end def create - @scheme = Scheme.new(scheme_params) + @scheme = Scheme.new(scheme_params.except(:support_services_provider_before_type_cast)) - validation_errors scheme_params + validation_errors scheme_params.except(:support_services_provider_before_type_cast) if @scheme.errors.empty? && @scheme.save if scheme_params[:support_services_provider].zero? @@ -46,9 +46,9 @@ class SchemesController < ApplicationController check_answers = params[:scheme][:check_answers] page = params[:scheme][:page] - validation_errors scheme_params + validation_errors scheme_params.except(:support_services_provider_before_type_cast) - if @scheme.errors.empty? && @scheme.update(scheme_params) + if @scheme.errors.empty? && @scheme.update(scheme_params.except(:support_services_provider_before_type_cast)) if check_answers if confirm_secondary_page? page redirect_to scheme_secondary_client_group_path(@scheme, check_answers: "true") @@ -162,18 +162,24 @@ private :secondary_client_group, :support_type, :support_services_provider, + :support_services_provider_before_type_cast, :intended_stay) - same_org_providing_support = required_params[:support_services_provider] == "0" + same_org_providing_support = required_params[:support_services_provider_before_type_cast] == "0" full_params = same_org_providing_support && required_params[:owning_organisation_id].present? ? required_params.merge(managing_organisation_id: required_params[:owning_organisation_id]) : required_params full_params[:sensitive] = full_params[:sensitive].to_i if full_params[:sensitive] - full_params[:support_services_provider] = full_params[:support_services_provider].to_i if full_params[:support_services_provider] + + if full_params[:support_services_provider_before_type_cast] + translated_params = full_params.merge(support_services_provider: full_params[:support_services_provider_before_type_cast].to_i) + else + translated_params = full_params + end if current_user.data_coordinator? - full_params[:owning_organisation_id] = current_user.organisation_id + translated_params[:owning_organisation_id] = current_user.organisation_id end - full_params + translated_params end def search_term diff --git a/app/views/schemes/new.html.erb b/app/views/schemes/new.html.erb index c0a4f47cb..e1cbf492e 100644 --- a/app/views/schemes/new.html.erb +++ b/app/views/schemes/new.html.erb @@ -69,15 +69,16 @@ <% OpenStruct.new(id: value, name: key.to_s.humanize) %> <% end %> - <%= f.govuk_collection_radio_buttons :support_services_provider, + <%= f.govuk_collection_radio_buttons :support_services_provider_before_type_cast, support_services_provider_selection, :id, - ->(option) do + ->(option) do if option.id.zero? && !current_user.support? "Your organisation" - else + else option.name end + end, legend: { text: "Who provides the support services used by this scheme?", size: "m" } %> <%= f.govuk_submit "Save and continue" %>