This commit is contained in:
Matt Jankowski 2025-09-05 09:07:27 +00:00 committed by GitHub
commit b4777a69bc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 24 deletions

View File

@ -62,7 +62,11 @@ module Admin
end
def set_statuses
@statuses = Admin::StatusFilter.new(@account, filter_params).results.preload(:application, :preloadable_poll, :media_attachments, active_mentions: :account, reblog: [:account, :application, :preloadable_poll, :media_attachments, active_mentions: :account]).page(params[:page]).per(PER_PAGE)
@statuses = Admin::StatusFilter.new(@account, {}).results.preload(*preload_columns, reblog: [:account, *preload_columns]).page(params[:page]).per(PER_PAGE)
end
def preload_columns
[:application, :preloadable_poll, :media_attachments, active_mentions: :account]
end
def filter_params

View File

@ -45,6 +45,19 @@ class Status < ApplicationRecord
include Status::Visibility
include Status::InteractionPolicyConcern
CACHEABLE_ASSOCIATIONS = [
:application,
:conversation,
:media_attachments,
:preloadable_poll,
:status_stat,
:tags,
account: [:account_stat, user: :role],
active_mentions: :account,
preview_cards_status: { preview_card: { author_account: [:account_stat, user: :role] } },
quote: { status: { account: [:account_stat, user: :role] } },
].freeze
MEDIA_ATTACHMENTS_LIMIT = 4
rate_limit by: :account, family: :statuses
@ -157,29 +170,11 @@ class Status < ApplicationRecord
# the `dependent: destroy` callbacks remove relevant records
before_destroy :unlink_from_conversations!, prepend: true
cache_associated :application,
:media_attachments,
:conversation,
:status_stat,
:tags,
:preloadable_poll,
quote: { status: { account: [:account_stat, user: :role] } },
preview_cards_status: { preview_card: { author_account: [:account_stat, user: :role] } },
account: [:account_stat, user: :role],
active_mentions: :account,
reblog: [
:application,
:media_attachments,
:conversation,
:status_stat,
:tags,
:preloadable_poll,
quote: { status: { account: [:account_stat, user: :role] } },
preview_cards_status: { preview_card: { author_account: [:account_stat, user: :role] } },
account: [:account_stat, user: :role],
active_mentions: :account,
],
thread: :account
cache_associated(
*CACHEABLE_ASSOCIATIONS,
reblog: [*CACHEABLE_ASSOCIATIONS],
thread: :account
)
delegate :domain, :indexable?, to: :account, prefix: true