diff --git a/app/controllers/valuation/spending_proposals_controller.rb b/app/controllers/valuation/spending_proposals_controller.rb index b0d83d96e..f8c63c974 100644 --- a/app/controllers/valuation/spending_proposals_controller.rb +++ b/app/controllers/valuation/spending_proposals_controller.rb @@ -27,6 +27,8 @@ class Valuation::SpendingProposalsController < Valuation::BaseController private def valuation_params + params[:spending_proposal][:feasible] = nil if params[:spending_proposal][:feasible] == 'nil' + params.require(:spending_proposal).permit(:price, :price_first_year, :price_explanation, :feasible, :feasible_explanation, :time_scope, :valuation_finished, :internal_comments) end diff --git a/app/views/valuation/spending_proposals/edit.html.erb b/app/views/valuation/spending_proposals/edit.html.erb index 8652fd070..0cd9f5f96 100644 --- a/app/views/valuation/spending_proposals/edit.html.erb +++ b/app/views/valuation/spending_proposals/edit.html.erb @@ -7,14 +7,21 @@
<%= t('valuation.spending_proposals.edit.feasibility') %> -
+
+ + <%= f.radio_button :feasible, :nil, label: false, checked: @spending_proposal.feasible.nil? %> + <%= f.label :feasible_nil, t('valuation.spending_proposals.edit.undefined_feasible') %> + +
+ +
<%= f.radio_button :feasible, true, value: true, label: false %> <%= f.label :feasible_true, t('valuation.spending_proposals.edit.feasible') %>
-
+
<%= f.radio_button :feasible, false, value: false, label: false %> <%= f.label :feasible_false, t('valuation.spending_proposals.edit.not_feasible') %> diff --git a/config/locales/valuation.en.yml b/config/locales/valuation.en.yml index 1fd016991..e136562f4 100644 --- a/config/locales/valuation.en.yml +++ b/config/locales/valuation.en.yml @@ -49,6 +49,7 @@ en: feasibility: Feasibility feasible: Feasible not_feasible: Not feasible + undefined_feasible: Pending feasible_explanation_html: Feasibility explanation valuation_finished: Valuation finished time_scope_html: Time scope diff --git a/config/locales/valuation.es.yml b/config/locales/valuation.es.yml index e3804beec..7d4ff5ed6 100644 --- a/config/locales/valuation.es.yml +++ b/config/locales/valuation.es.yml @@ -48,7 +48,8 @@ es: price_explanation_html: "Informe de coste (opcional, dato público)" feasibility: Viabilidad feasible: Viable - not_feasible: No viable + not_feasible: Inviable + undefined_feasible: Sin decidir feasible_explanation_html: "Informe de inviabilidad (en caso de que lo sea, dato público)" valuation_finished: Informe finalizado time_scope_html: "Plazo de ejecución (opcional, dato no público)" diff --git a/spec/features/valuation/spending_proposals_spec.rb b/spec/features/valuation/spending_proposals_spec.rb index a5b761e65..7de8d9b66 100644 --- a/spec/features/valuation/spending_proposals_spec.rb +++ b/spec/features/valuation/spending_proposals_spec.rb @@ -269,6 +269,25 @@ feature 'Valuation spending proposals' do expect(page).to have_content('Should be double checked by the urbanism area') end + scenario 'Feasibility can be marked as pending' do + visit valuation_spending_proposal_path(@spending_proposal) + click_link 'Edit dossier' + + expect(find "#spending_proposal_feasible_nil").to be_checked + choose 'spending_proposal_feasible_true' + click_button 'Save changes' + + visit edit_valuation_spending_proposal_path(@spending_proposal) + expect(find "#spending_proposal_feasible_nil").to_not be_checked + expect(find "#spending_proposal_feasible_true").to be_checked + + choose 'spending_proposal_feasible_nil' + click_button 'Save changes' + + visit edit_valuation_spending_proposal_path(@spending_proposal) + expect(find "#spending_proposal_feasible_nil").to be_checked + end + scenario 'Finish valuation' do visit valuation_spending_proposal_path(@spending_proposal) click_link 'Edit dossier'