Files
fizzy/app/controllers/concerns/events_timeline.rb
T
2025-04-09 14:50:58 +02:00

45 lines
1.1 KiB
Ruby

module EventsTimeline
extend ActiveSupport::Concern
include CollectionFilterable
included do
before_action :set_activity_day
end
private
def set_activity_day
@activity_day = if params[:day].present?
Time.zone.parse(params[:day])
else
Time.zone.now
end
rescue ArgumentError
raise ActionController::RoutingError
end
def events_for_activity_day
user_events.where(created_at: @activity_day.all_day).
group_by { |event| [ event.created_at.hour, helpers.event_column(event) ] }.
map { |hour_col, events|
[ hour_col,
events.uniq { |e| e.action == "boosted" ? [ e.creator_id, e.card_id ] : e.id }
]
}
end
def latest_event_before_activity_day
user_events.where(created_at: ...@activity_day.beginning_of_day).chronologically.last
end
def user_events
Event.where(card: user_cards, creator: Current.account.users)
end
def user_cards
Current.user.accessible_cards
.published_or_drafted_by(Current.user)
.where(collection_id: collection_filter)
end
end