diff options
Diffstat (limited to 'app/models/status.rb')
-rw-r--r-- | app/models/status.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/app/models/status.rb b/app/models/status.rb index f576489b4..c049401e8 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -73,7 +73,9 @@ class Status < ApplicationRecord validates_with StatusLengthValidator validates_with DisallowedHashtagsValidator validates :reblog, uniqueness: { scope: :account }, if: :reblog? - validates_associated :owned_poll + validates :visibility, exclusion: { in: %w(direct limited) }, if: :reblog? + + accepts_nested_attributes_for :owned_poll default_scope { recent } @@ -216,7 +218,11 @@ class Status < ApplicationRecord end def emojis - @emojis ||= CustomEmoji.from_text([spoiler_text, text].join(' '), account.domain) + return @emojis if defined?(@emojis) + fields = [spoiler_text, text] + fields += owned_poll.options unless owned_poll.nil? + @emojis = CustomEmoji.from_text(fields.join(' '), account.domain) + @emojis end def mark_for_mass_destruction! @@ -471,8 +477,8 @@ class Status < ApplicationRecord end def set_visibility + self.visibility = reblog.visibility if reblog? && visibility.nil? self.visibility = (account.locked? ? :private : :public) if visibility.nil? - self.visibility = reblog.visibility if reblog? self.sensitive = false if sensitive.nil? end |