From b4b0b18a2d6157ae2da331fc7c77b216cb0f9d11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 13 Nov 2018 13:25:47 +0100 Subject: [PATCH] Extract method to get investment milestone status --- app/controllers/budgets/executions_controller.rb | 4 +--- app/helpers/budget_executions_helper.rb | 6 +++--- app/models/budget/investment.rb | 4 ++++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/controllers/budgets/executions_controller.rb b/app/controllers/budgets/executions_controller.rb index 9af8893b4..52da2a7ed 100644 --- a/app/controllers/budgets/executions_controller.rb +++ b/app/controllers/budgets/executions_controller.rb @@ -15,9 +15,7 @@ module Budgets if params[:status].present? @budget.investments.winners .joins(:milestones).includes(:milestones) - .select { |i| i.milestones.published.with_status - .order_by_publication_date.last - .try(:status_id) == params[:status].to_i } + .select { |i| i.milestone_status_id == params[:status].to_i } .uniq .group_by(&:heading) else diff --git a/app/helpers/budget_executions_helper.rb b/app/helpers/budget_executions_helper.rb index d77867052..45175e806 100644 --- a/app/helpers/budget_executions_helper.rb +++ b/app/helpers/budget_executions_helper.rb @@ -1,9 +1,9 @@ module BudgetExecutionsHelper def filters_select_counts(status) - @budget.investments.winners.with_milestones.select { |i| i.milestones - .published.with_status.order_by_publication_date - .last.status_id == status rescue false }.count + @budget.investments.winners.with_milestones.select do |investment| + investment.milestone_status_id == status + end.count end def first_milestone_with_image(investment) diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index 3ed96da5f..91a9f2219 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -342,6 +342,10 @@ class Budget self.valuator_groups.collect(&:name).compact.join(', ').presence end + def milestone_status_id + milestones.published.with_status.order_by_publication_date.last&.status_id + end + private def set_denormalized_ids