app/helpers/budgets_helper.rb
module BudgetsHelper
def csv_params
csv_params = params.clone.merge(format: :csv)
csv_params = csv_params.to_unsafe_h.transform_keys(&:to_sym)
csv_params.delete(:page)
csv_params
end
def namespaced_budget_investment_path(investment, options = {})
case namespace
when "management"
management_budget_investment_path(investment.budget, investment, options)
else
budget_investment_path(investment.budget, investment, options)
end
end
def css_for_ballot_heading(heading)
current_ballot&.has_lines_in_heading?(heading) ? "is-active" : ""
end
def current_ballot
Budget::Ballot.find_by(user: current_user, budget: @budget)
end
def unfeasible_or_unselected_filter
["unselected", "unfeasible"].include?(@current_filter)
end
def budget_published?(budget)
budget.published? || current_user&.administrator?
end
def budget_subnav_items_for(budget)
{
results: t("budgets.results.link"),
stats: t("stats.budgets.link"),
executions: t("budgets.executions.link")
}.select { |section, _| can?(:"read_#{section}", budget) }.map do |section, text|
{
text: text,
url: send("budget_#{section}_path", budget),
active: controller_name == section.to_s
}
end
end
end