Files
nairobi/app/controllers/budgets/executions_controller.rb
Julian Herrero 3bf2fa1b17 Add method find_by_slug_or_id to Sluggable module
Make it easier to find by slug or id for sluggable models. Will return
nil if resource is not found.
2019-01-25 09:08:28 +01:00

36 lines
997 B
Ruby

module Budgets
class ExecutionsController < ApplicationController
before_action :load_budget
load_and_authorize_resource :budget
def show
authorize! :read_executions, @budget
@statuses = Milestone::Status.all
@investments_by_heading = investments_by_heading_ordered_alphabetically.to_h
end
private
def investments_by_heading
if params[:status].present?
@budget.investments.winners
.with_milestone_status_id(params[:status])
.uniq
.group_by(&:heading)
else
@budget.investments.winners
.joins(:milestones).includes(:milestones)
.distinct.group_by(&:heading)
end
end
def load_budget
@budget = Budget.find_by_slug_or_id params[:budget_id]
end
def investments_by_heading_ordered_alphabetically
investments_by_heading.sort { |a, b| a[0].name <=> b[0].name }
end
end
end