From 448ac7a1584bfadb2bad0ffc8ea37b29b9ef1a19 Mon Sep 17 00:00:00 2001 From: Angel Perez Date: Wed, 4 Jul 2018 13:33:50 -0400 Subject: [PATCH] Restore filtering investments by milestone status query This commit makes 3 changes: 1. Extracts a query into a helper for clarity and DRYness 2. Adds a `.where` clause to filter investments based on their (current) milestone status 3. Fixes a bug where investments would be rendered as many times as milestones associated to an investment --- app/helpers/budget_executions_helper.rb | 20 +++++++++++++++++++ .../budgets/executions/_investments.html.erb | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 app/helpers/budget_executions_helper.rb diff --git a/app/helpers/budget_executions_helper.rb b/app/helpers/budget_executions_helper.rb new file mode 100644 index 000000000..1681da6f4 --- /dev/null +++ b/app/helpers/budget_executions_helper.rb @@ -0,0 +1,20 @@ +module BudgetExecutionsHelper + + def winner_investments(heading) + if params[:status].present? + heading.investments + .selected + .sort_by_ballots + .joins(:milestones) + .distinct + .where('budget_investment_milestones.status_id = ?', params[:status]) + else + heading.investments + .selected + .sort_by_ballots + .joins(:milestones) + .distinct + end + end + +end diff --git a/app/views/budgets/executions/_investments.html.erb b/app/views/budgets/executions/_investments.html.erb index d8d74d593..bbcd50409 100644 --- a/app/views/budgets/executions/_investments.html.erb +++ b/app/views/budgets/executions/_investments.html.erb @@ -3,7 +3,7 @@ <%= heading.name %>
- <% heading.investments.selected.sort_by_ballots.joins(:milestones).each do |investment| %> + <% winner_investments(heading).each do |investment| %>
<%= link_to budget_investment_path(@budget, investment, anchor: "tab-milestones"), data: { 'equalizer-watch': true } do %>