diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/announcement.rb | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/app/models/announcement.rb b/app/models/announcement.rb index 4da9f94d6..c5cf08f7c 100644 --- a/app/models/announcement.rb +++ b/app/models/announcement.rb @@ -16,8 +16,6 @@ # class Announcement < ApplicationRecord - after_commit :queue_publish, on: :create - scope :unpublished, -> { where(published: false) } scope :published, -> { where(published: true) } scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where('announcement_mutes.id IS NULL') } @@ -31,8 +29,11 @@ class Announcement < ApplicationRecord validates :ends_at, presence: true, if: -> { starts_at.present? } before_validation :set_all_day - before_validation :set_starts_at, on: :create - before_validation :set_ends_at, on: :create + before_validation :set_published, on: :create + + def published_at + scheduled_at || created_at + end def time_range? starts_at.present? && ends_at.present? @@ -71,15 +72,7 @@ class Announcement < ApplicationRecord self.all_day = false if starts_at.blank? || ends_at.blank? end - def set_starts_at - self.starts_at = starts_at.change(hour: 0, min: 0, sec: 0) if all_day? && starts_at.present? - end - - def set_ends_at - self.ends_at = ends_at.change(hour: 23, min: 59, sec: 59) if all_day? && ends_at.present? - end - - def queue_publish - PublishScheduledAnnouncementWorker.perform_async(id) if scheduled_at.blank? + def set_published + self.published = true if scheduled_at.blank? || scheduled_at.past? end end |