Merge remote-tracking branch 'parent/stable-4.3' into kb-draft-15.4-lts
This commit is contained in:
commit
fbd8709c65
271 changed files with 2107 additions and 1174 deletions
|
@ -18,5 +18,6 @@ class FollowRecommendation < ApplicationRecord
|
|||
belongs_to :account_summary, foreign_key: :account_id, inverse_of: false
|
||||
belongs_to :account
|
||||
|
||||
scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) }
|
||||
scope :unsupressed, -> { where.not(FollowRecommendationSuppression.where(FollowRecommendationSuppression.arel_table[:account_id].eq(arel_table[:account_id])).select(1).arel.exists) }
|
||||
scope :localized, ->(locale) { unsupressed.joins(:account_summary).merge(AccountSummary.localized(locale)) }
|
||||
end
|
||||
|
|
|
@ -11,7 +11,7 @@ class FollowRecommendationFilter
|
|||
attr_reader :params, :language
|
||||
|
||||
def initialize(params)
|
||||
@language = params.delete('language') || I18n.locale
|
||||
@language = usable_language(params.delete('language') || I18n.locale)
|
||||
@params = params
|
||||
end
|
||||
|
||||
|
@ -22,4 +22,15 @@ class FollowRecommendationFilter
|
|||
Account.includes(:account_stat).joins(:follow_recommendation).merge(FollowRecommendation.localized(@language).order(rank: :desc))
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def usable_language(locale)
|
||||
return locale if Trends.available_locales.include?(locale)
|
||||
|
||||
locale = locale.to_s.split(/[_-]/).first
|
||||
return locale if Trends.available_locales.include?(locale)
|
||||
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
|
|
@ -62,6 +62,6 @@ class NotificationPolicy < ApplicationRecord
|
|||
private
|
||||
|
||||
def pending_notification_requests
|
||||
@pending_notification_requests ||= notification_requests.limit(MAX_MEANINGFUL_COUNT).pick(Arel.sql('count(*), coalesce(sum(notifications_count), 0)::bigint'))
|
||||
@pending_notification_requests ||= notification_requests.without_suspended.limit(MAX_MEANINGFUL_COUNT).pick(Arel.sql('count(*), coalesce(sum(notifications_count), 0)::bigint'))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -26,6 +26,8 @@ class NotificationRequest < ApplicationRecord
|
|||
|
||||
before_save :prepare_notifications_count
|
||||
|
||||
scope :without_suspended, -> { joins(:from_account).merge(Account.without_suspended) }
|
||||
|
||||
def self.preload_cache_collection(requests)
|
||||
cached_statuses_by_id = yield(requests.filter_map(&:last_status)).index_by(&:id) # Call cache_collection in block
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue