Fix n+1 query during status removal (#19753)
This commit is contained in:
parent
bb89f83cc0
commit
c4b92b1aee
|
@ -203,7 +203,7 @@ module ApplicationHelper
|
||||||
permit_visibilities.shift(permit_visibilities.index(default_privacy) + 1) if default_privacy.present?
|
permit_visibilities.shift(permit_visibilities.index(default_privacy) + 1) if default_privacy.present?
|
||||||
state_params[:visibility] = params[:visibility] if permit_visibilities.include? params[:visibility]
|
state_params[:visibility] = params[:visibility] if permit_visibilities.include? params[:visibility]
|
||||||
|
|
||||||
if user_signed_in?
|
if user_signed_in? && current_user.functional?
|
||||||
state_params[:settings] = state_params[:settings].merge(Web::Setting.find_by(user: current_user)&.data || {})
|
state_params[:settings] = state_params[:settings].merge(Web::Setting.find_by(user: current_user)&.data || {})
|
||||||
state_params[:push_subscription] = current_account.user.web_push_subscription(current_session)
|
state_params[:push_subscription] = current_account.user.web_push_subscription(current_session)
|
||||||
state_params[:current_account] = current_account
|
state_params[:current_account] = current_account
|
||||||
|
|
|
@ -57,13 +57,13 @@ class RemoveStatusService < BaseService
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_from_followers
|
def remove_from_followers
|
||||||
@account.followers_for_local_distribution.reorder(nil).find_each do |follower|
|
@account.followers_for_local_distribution.includes(:user).reorder(nil).find_each do |follower|
|
||||||
FeedManager.instance.unpush_from_home(follower, @status)
|
FeedManager.instance.unpush_from_home(follower, @status)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_from_lists
|
def remove_from_lists
|
||||||
@account.lists_for_local_distribution.select(:id, :account_id).reorder(nil).find_each do |list|
|
@account.lists_for_local_distribution.select(:id, :account_id).includes(account: :user).reorder(nil).find_each do |list|
|
||||||
FeedManager.instance.unpush_from_list(list, @status)
|
FeedManager.instance.unpush_from_list(list, @status)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue