consul/consul

View on GitHub
app/helpers/budgets_helper.rb

Summary

Maintainability
A
0 mins
Test Coverage
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