Files
fizzy/app/models/user/day_timeline/column.rb
T
2025-11-26 14:58:17 -06:00

50 lines
1.1 KiB
Ruby

class User::DayTimeline::Column
include ActionView::Helpers::TagHelper, ActionView::Helpers::OutputSafetyHelper, TimeHelper
attr_reader :index, :base_title, :day_timeline, :events
def initialize(day_timeline, base_title, index, events)
@day_timeline = day_timeline
@base_title = base_title
@index = index
@events = events
end
def title
date_tag = local_datetime_tag(day_timeline.day, style: :agoorweekday)
parts = [ base_title, date_tag ]
parts << tag.span("(#{full_events_count})", class: "font-weight-normal") if full_events_count > 0
safe_join(parts, " ")
end
def base_title_for_route
case base_title
when "Done"
"closed"
else
base_title.downcase
end
end
def events_by_hour
limited_events.group_by { it.created_at.hour }
end
def has_more_events?
limited_events.count < full_events_count
end
def hidden_events_count
full_events_count - limited_events.count
end
private
def limited_events
@limited_events ||= events.limit(100).load
end
def full_events_count
@full_events_count ||= events.count
end
end