diff --git a/app/controllers/budgets/investments_controller.rb b/app/controllers/budgets/investments_controller.rb index f3e41f3ae..a876af8f6 100644 --- a/app/controllers/budgets/investments_controller.rb +++ b/app/controllers/budgets/investments_controller.rb @@ -132,8 +132,8 @@ module Budgets end def investment_params - attributes = [:heading_id, :tag_list, - :organization_name, :location, :terms_of_service, :skip_map, + attributes = [:heading_id, :tag_list, :organization_name, :location, + :terms_of_service, :skip_map, :sdg_related_list, image_attributes: image_attributes, documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id, :_destroy], map_location_attributes: [:latitude, :longitude, :zoom]] diff --git a/app/views/budgets/investments/_form.html.erb b/app/views/budgets/investments/_form.html.erb index 3eff59f72..2156b9d60 100644 --- a/app/views/budgets/investments/_form.html.erb +++ b/app/views/budgets/investments/_form.html.erb @@ -86,6 +86,8 @@ data: { js_url: suggest_tags_path } %> + <%= render SDG::RelatedListSelectorComponent.new(f) %> + <% unless current_user.manager? %>
diff --git a/spec/system/budgets/investments_spec.rb b/spec/system/budgets/investments_spec.rb index 8382b7f05..10a6f7a4b 100644 --- a/spec/system/budgets/investments_spec.rb +++ b/spec/system/budgets/investments_spec.rb @@ -1933,4 +1933,41 @@ describe "Budget Investments" do end end end + + describe "SDG related list" do + before do + Setting["feature.sdg"] = true + Setting["sdg.process.budgets"] = true + budget.update!(phase: "accepting") + end + + scenario "create budget investment with sdg related list", :js do + login_as(author) + visit new_budget_investment_path(budget) + select heading.name, from: "Heading" + fill_in "Title", with: "A title for a budget investment related with SDG related content" + fill_in_ckeditor "Description", with: "I want to live in a high tower over the clouds" + click_sdg_goal(1) + check "budget_investment_terms_of_service" + + click_button "Create Investment" + + within(".sdg-goal-tag-list") { expect(page).to have_link "1. No Poverty" } + end + + scenario "edit budget investment with sdg related list", :js do + investment = create(:budget_investment, heading: heading, author: author) + investment.sdg_goals = [SDG::Goal[1], SDG::Goal[2]] + login_as(author) + visit edit_budget_investment_path(budget, investment) + + remove_sdg_goal_or_target_tag(1) + click_button "Update Investment" + + within(".sdg-goal-tag-list") do + expect(page).not_to have_link "1. No Poverty" + expect(page).to have_link "2. Zero Hunger" + end + end + end end