diff --git a/app/views/admin/budget_investments/_select_investment.html.erb b/app/views/admin/budget_investments/_select_investment.html.erb index a7593a0c5..320abc579 100644 --- a/app/views/admin/budget_investments/_select_investment.html.erb +++ b/app/views/admin/budget_investments/_select_investment.html.erb @@ -51,11 +51,15 @@ - <%= form_for [:admin, investment.budget, investment], remote: true, format: :json do |f| %> - <%= f.check_box :visible_to_valuators, - label: false, - class: "js-submit-on-change", - id: "budget_investment_visible_to_valuators" %> + <% if can?(:admin_update, investment) %> + <%= form_for [:admin, investment.budget, investment], remote: true, format: :json do |f| %> + <%= f.check_box :visible_to_valuators, + label: false, + class: "js-submit-on-change", + id: "budget_investment_visible_to_valuators" %> + <% end %> + <% else %> + <%= investment.visible_to_valuators? ? t("shared.yes") : t("shared.no") %> <% end %> diff --git a/spec/system/admin/budget_investments_spec.rb b/spec/system/admin/budget_investments_spec.rb index ec8d4c9ec..165b15aea 100644 --- a/spec/system/admin/budget_investments_spec.rb +++ b/spec/system/admin/budget_investments_spec.rb @@ -1651,6 +1651,28 @@ describe "Admin budget investments" do end end + scenario "Cannot mark/unmark visible to valuators on finished budgets" do + budget.update!(phase: "finished") + create(:budget_investment, budget: budget, title: "Visible", visible_to_valuators: true) + create(:budget_investment, budget: budget, title: "Invisible", visible_to_valuators: false) + + visit admin_budget_budget_investments_path(budget) + + within "tr", text: "Visible" do + within "td[data-field=visible_to_valuators]" do + expect(page).to have_text "Yes" + expect(page).not_to have_field "budget_investment_visible_to_valuators" + end + end + + within "tr", text: "Invisible" do + within "td[data-field=visible_to_valuators]" do + expect(page).to have_text "No" + expect(page).not_to have_field "budget_investment_visible_to_valuators" + end + end + end + scenario "Showing the valuating checkbox" do investment1 = create(:budget_investment, :with_administrator, :with_valuator, :visible_to_valuators, budget: budget)