diff --git a/app/models/event_schedule.rb b/app/models/event_schedule.rb index 7a7d39de..01557abe 100644 --- a/app/models/event_schedule.rb +++ b/app/models/event_schedule.rb @@ -34,18 +34,17 @@ class EventSchedule < ApplicationRecord ## # True within `threshold` before and after the event. # - def happening_now?(threshold=30.minutes) + def happening_now?(threshold = 30.minutes) in_tz_start = start_time.in_time_zone(timezone) in_tz_end = end_time.in_time_zone(timezone) in_tz_start -= in_tz_start.utc_offset in_tz_end -= in_tz_end.utc_offset begin_range = Time.now - threshold - end_range = Time.now + threshold + 1.minute # The range is exclusive. - # event_time_range = in_tz_start.strftime('%Y-%m-%d %H:%M')..in_tz_end.strftime('%Y-%m-%d %H:%M') - # now_range = begin_range.strftime('%Y-%m-%d %H:%M')..end_range.strftime('%Y-%m-%d %H:%M') + end_range = Time.now + threshold event_time_range = in_tz_start..in_tz_end now_range = begin_range..end_range - event_time_range.overlaps?(now_range) # || (begin_range..end_range).cover?(in_tz_end) + # TODO: There's probably better logic. + event_time_range.overlaps?(now_range) && (in_tz_end > Time.now) end def self.withdrawn_or_canceled_event_schedules(schedule_ids)