This rule was added in rubocop 1.79. We were inconsistent about it, so we're adding it to get more consistency.
64 lines
1.4 KiB
Ruby
64 lines
1.4 KiB
Ruby
class Admin::Budgets::IndexComponent < ApplicationComponent
|
|
include Header
|
|
|
|
attr_reader :budgets
|
|
|
|
def initialize(budgets)
|
|
@budgets = budgets
|
|
end
|
|
|
|
def title
|
|
t("admin.budgets.index.title")
|
|
end
|
|
|
|
private
|
|
|
|
def phase_progress_text(budget)
|
|
t("admin.budgets.index.table_phase_progress",
|
|
current_phase_number: current_enabled_phase_number(budget),
|
|
total_phases: budget.phases.enabled.count)
|
|
end
|
|
|
|
def current_enabled_phase_number(budget)
|
|
current_enabled_phase_index(budget) + 1
|
|
end
|
|
|
|
def current_enabled_phase_index(budget)
|
|
budget.phases.enabled.order(:id).pluck(:kind).index(budget.phase) || -1
|
|
end
|
|
|
|
def type(budget)
|
|
if budget.single_heading?
|
|
t("admin.budgets.index.type_single")
|
|
elsif budget.headings.blank?
|
|
t("admin.budgets.index.type_pending")
|
|
else
|
|
t("admin.budgets.index.type_multiple")
|
|
end
|
|
end
|
|
|
|
def dates(budget)
|
|
render Admin::DurationComponent.new(budget)
|
|
end
|
|
|
|
def duration(budget)
|
|
render Admin::Budgets::DurationInWordsComponent.new(budget)
|
|
end
|
|
|
|
def status_html_class(budget)
|
|
if budget.drafting?
|
|
"budget-draft"
|
|
elsif budget.finished?
|
|
"budget-completed"
|
|
end
|
|
end
|
|
|
|
def status_text(budget)
|
|
if budget.drafting?
|
|
tag.span t("admin.budgets.index.table_draft")
|
|
elsif budget.finished?
|
|
tag.span t("admin.budgets.index.table_completed")
|
|
end
|
|
end
|
|
end
|