mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 10:34:39 +08:00
FIX: Preload parent categories for sidebar (#25726)
When "lazy load categories" is enabled, only the categories present in the sidebar are preloaded. This is insufficient because the parent categories are necessary too for the sidebar to be rendered properly.
This commit is contained in:
@ -109,7 +109,16 @@ class Site
|
||||
if @guardian.can_lazy_load_categories?
|
||||
preloaded_category_ids = []
|
||||
if @guardian.authenticated?
|
||||
preloaded_category_ids.concat(@guardian.user.secured_sidebar_category_ids(@guardian))
|
||||
sidebar_category_ids = @guardian.user.secured_sidebar_category_ids(@guardian)
|
||||
preloaded_category_ids.concat(
|
||||
Category
|
||||
.secured(@guardian)
|
||||
.select(:parent_category_id)
|
||||
.distinct
|
||||
.where(id: sidebar_category_ids)
|
||||
.pluck(:parent_category_id),
|
||||
)
|
||||
preloaded_category_ids.concat(sidebar_category_ids)
|
||||
end
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user