diff --git a/app/controllers/management/budgets/investments_controller.rb b/app/controllers/management/budgets/investments_controller.rb index 7a43abd4e..c613655f3 100644 --- a/app/controllers/management/budgets/investments_controller.rb +++ b/app/controllers/management/budgets/investments_controller.rb @@ -6,6 +6,8 @@ class Management::Budgets::InvestmentsController < Management::BaseController def index @investments = apply_filters_and_search(Budget::Investment).order(cached_votes_up: :desc).page(params[:page]).for_render + @investment_ids = @investments.pluck(:id) + set_investment_ballots(@investments) set_budget_investment_votes(@investments) end @@ -26,11 +28,13 @@ class Management::Budgets::InvestmentsController < Management::BaseController end def show + set_investment_ballots(@investment) set_budget_investment_votes(@investment) end def vote @investment.register_vote(managed_user, 'yes') + set_investment_ballots(@investment) set_budget_investment_votes(@investment) end @@ -42,6 +46,13 @@ class Management::Budgets::InvestmentsController < Management::BaseController private + def set_investment_ballots(investments) + @investment_ballots = {} + Budget.where(id: Array.wrap(investments).map(&:budget_id).uniq).each do |budget| + @investment_ballots[budget] = Budget::Ballot.where(user: current_user, budget: budget).first_or_create + end + end + def set_budget_investment @investment = Budget::Investment.find(params[:id]) end diff --git a/app/views/management/budgets/investments/index.html.erb b/app/views/management/budgets/investments/index.html.erb index 8430f24ab..08ae3390d 100644 --- a/app/views/management/budgets/investments/index.html.erb +++ b/app/views/management/budgets/investments/index.html.erb @@ -18,7 +18,12 @@ <% @investments.each do |investment| %> - <%= render partial: '/budgets/investments/investment', locals: { investment: investment, investment_votes: @investment_votes } %> + <%= render partial: '/budgets/investments/investment', locals: { + investment: investment, + investment_ids: @investment_ids, + investment_votes: @investment_votes, + investment_ballots: @investment_ballots + } %> <% end %> <%= paginate @investments %>