mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-12-15 16:59:41 +00:00
Merge branch 'master' into glitch-soc/merge-upstream
This commit is contained in:
@@ -28,7 +28,7 @@ class Poll < ApplicationRecord
|
||||
|
||||
validates :options, presence: true
|
||||
validates :expires_at, presence: true, if: :local?
|
||||
validates_with PollValidator, if: :local?
|
||||
validates_with PollValidator, on: :create, if: :local?
|
||||
|
||||
scope :attached, -> { where.not(status_id: nil) }
|
||||
scope :unattached, -> { where(status_id: nil) }
|
||||
@@ -41,17 +41,17 @@ class Poll < ApplicationRecord
|
||||
after_commit :reset_parent_cache, on: :update
|
||||
|
||||
def loaded_options
|
||||
options.map.with_index { |title, key| Option.new(self, key.to_s, title, cached_tallies[key]) }
|
||||
end
|
||||
|
||||
def unloaded_options
|
||||
options.map.with_index { |title, key| Option.new(self, key.to_s, title, nil) }
|
||||
options.map.with_index { |title, key| Option.new(self, key.to_s, title, show_totals_now? ? cached_tallies[key] : nil) }
|
||||
end
|
||||
|
||||
def possibly_stale?
|
||||
remote? && last_fetched_before_expiration? && time_passed_since_last_fetch?
|
||||
end
|
||||
|
||||
def voted?(account)
|
||||
account.id == account_id || votes.where(account: account).exists?
|
||||
end
|
||||
|
||||
delegate :local?, to: :account
|
||||
|
||||
def remote?
|
||||
@@ -95,4 +95,8 @@ class Poll < ApplicationRecord
|
||||
def time_passed_since_last_fetch?
|
||||
last_fetched_at.nil? || last_fetched_at < 1.minute.ago
|
||||
end
|
||||
|
||||
def show_totals_now?
|
||||
expired? || !hide_totals?
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user