Fix expired announcements being re-published (#12964)
This commit is contained in:
parent
2f8c3c17ee
commit
401f32f9ee
5 changed files with 16 additions and 9 deletions
|
@ -13,13 +13,14 @@
|
|||
# ends_at :datetime
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# published_at :datetime
|
||||
#
|
||||
|
||||
class Announcement < ApplicationRecord
|
||||
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') }
|
||||
scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.created_at) ASC')) }
|
||||
scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) ASC')) }
|
||||
|
||||
has_many :announcement_mutes, dependent: :destroy
|
||||
has_many :announcement_reactions, dependent: :destroy
|
||||
|
@ -31,10 +32,6 @@ class Announcement < ApplicationRecord
|
|||
before_validation :set_all_day
|
||||
before_validation :set_published, on: :create
|
||||
|
||||
def published_at
|
||||
scheduled_at || created_at
|
||||
end
|
||||
|
||||
def time_range?
|
||||
starts_at.present? && ends_at.present?
|
||||
end
|
||||
|
@ -73,6 +70,9 @@ class Announcement < ApplicationRecord
|
|||
end
|
||||
|
||||
def set_published
|
||||
self.published = true if scheduled_at.blank? || scheduled_at.past?
|
||||
return unless scheduled_at.blank? || scheduled_at.past?
|
||||
|
||||
self.published = true
|
||||
self.published_at = Time.now.utc
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue