From ff5112f96b1885c9181c27475e0bf9c3f6fa57ae Mon Sep 17 00:00:00 2001 From: Vicente Mendoza Date: Thu, 25 Jan 2018 17:10:51 +0100 Subject: [PATCH 1/2] Changed the budgets helper so just search for the current budget --- app/helpers/budgets_helper.rb | 4 ++-- .../admin/budget_investments/index.html.erb | 17 +++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/helpers/budgets_helper.rb b/app/helpers/budgets_helper.rb index 24dd935c2..4c73f52da 100644 --- a/app/helpers/budgets_helper.rb +++ b/app/helpers/budgets_helper.rb @@ -52,8 +52,8 @@ module BudgetsHelper Budget::Ballot.where(user: current_user, budget: @budget).first end - def investment_tags_select_options - Budget::Investment.tags_on(:valuation).order(:name).select(:name).distinct + def investment_tags_select_options(budget) + Budget::Investment.where(budget_id: budget).tags_on(:valuation).order(:name).select(:name).distinct end def budget_published?(budget) diff --git a/app/views/admin/budget_investments/index.html.erb b/app/views/admin/budget_investments/index.html.erb index b0eed56aa..691c2866e 100644 --- a/app/views/admin/budget_investments/index.html.erb +++ b/app/views/admin/budget_investments/index.html.erb @@ -25,14 +25,15 @@ class: "js-submit-on-change" } %> -
- <%= select_tag :tag_name, - options_for_select(investment_tags_select_options, params[:tag_name]), - { prompt: t("admin.budget_investments.index.tags_filter_all"), - label: false, - class: "js-submit-on-change" } %> -
-<% end %> +
+ <%= select_tag :tag_name, + options_for_select(investment_tags_select_options(@budget), params[:tag_name]), + { prompt: t("admin.budget_investments.index.tags_filter_all"), + label: false, + class: "js-submit-on-change" } %> +
+ <% end %> + <%= render "advanced_filters", i18n_namespace: "admin.budget_investments.index" %> From 45a86d0db80362f4d1781d6fc8401e9b8de34e6f Mon Sep 17 00:00:00 2001 From: Vicente Mendoza Date: Fri, 26 Jan 2018 09:27:50 +0100 Subject: [PATCH 2/2] Added test to verify that the search of the tags is only from the current budget --- spec/features/admin/budget_investments_spec.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/features/admin/budget_investments_spec.rb b/spec/features/admin/budget_investments_spec.rb index 14de19dfe..d0517cb20 100644 --- a/spec/features/admin/budget_investments_spec.rb +++ b/spec/features/admin/budget_investments_spec.rb @@ -281,6 +281,23 @@ feature 'Admin budget investments' do expect(page).to have_select("tag_name", options: ["All tags", "Hospitals", "Teachers"]) end + scenario "Filtering by tag, display only valuation tags of the current budget" do + new_budget = create(:budget) + investment1 = create(:budget_investment, budget: @budget, tag_list: 'Roads') + investment2 = create(:budget_investment, budget: new_budget, tag_list: 'Accessibility') + + investment1.set_tag_list_on(:valuation, 'Roads') + investment2.set_tag_list_on(:valuation, 'Accessibility') + + investment1.save + investment2.save + + visit admin_budget_budget_investments_path(budget_id: @budget.id) + + expect(page).to have_select("tag_name", options: ["All tags", "Roads"]) + expect(page).not_to have_select("tag_name", options: ["All tags", "Accessibility"]) + end + scenario "Limiting by max number of investments per heading", :js do group_1 = create(:budget_group, budget: @budget) group_2 = create(:budget_group, budget: @budget)