|
@@ -37,7 +37,7 @@ class Status < ApplicationRecord
|
|
|
|
|
|
update_index('statuses#status', :proper) if Chewy.enabled?
|
|
|
|
|
|
- enum visibility: [:public, :unlisted, :private, :direct], _suffix: :visibility
|
|
|
+ enum visibility: [:public, :unlisted, :private, :direct, :limited], _suffix: :visibility
|
|
|
|
|
|
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
|
|
|
|
|
@@ -51,7 +51,8 @@ class Status < ApplicationRecord
|
|
|
has_many :favourites, inverse_of: :status, dependent: :destroy
|
|
|
has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog, dependent: :destroy
|
|
|
has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :thread
|
|
|
- has_many :mentions, dependent: :destroy
|
|
|
+ has_many :mentions, dependent: :destroy, inverse_of: :status
|
|
|
+ has_many :active_mentions, -> { active }, class_name: 'Mention', inverse_of: :status
|
|
|
has_many :media_attachments, dependent: :nullify
|
|
|
|
|
|
has_and_belongs_to_many :tags
|
|
@@ -89,7 +90,7 @@ class Status < ApplicationRecord
|
|
|
:status_stat,
|
|
|
:tags,
|
|
|
:stream_entry,
|
|
|
- mentions: :account,
|
|
|
+ active_mentions: :account,
|
|
|
reblog: [
|
|
|
:account,
|
|
|
:application,
|
|
@@ -98,7 +99,7 @@ class Status < ApplicationRecord
|
|
|
:media_attachments,
|
|
|
:conversation,
|
|
|
:status_stat,
|
|
|
- mentions: :account,
|
|
|
+ active_mentions: :account,
|
|
|
],
|
|
|
thread: :account
|
|
|
|
|
@@ -171,7 +172,11 @@ class Status < ApplicationRecord
|
|
|
end
|
|
|
|
|
|
def hidden?
|
|
|
- private_visibility? || direct_visibility?
|
|
|
+ private_visibility? || direct_visibility? || limited_visibility?
|
|
|
+ end
|
|
|
+
|
|
|
+ def distributable?
|
|
|
+ public_visibility? || unlisted_visibility?
|
|
|
end
|
|
|
|
|
|
def with_media?
|