mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Subcategory list on parent subcategory page.
This commit is contained in:
@@ -58,6 +58,10 @@ class CategoryList
|
||||
.includes(:featured_users, subcategories: [:topic_only_relative_url])
|
||||
.secured(@guardian)
|
||||
|
||||
if @options[:parent_category_id].present?
|
||||
@categories = @categories.where('categories.parent_category_id = ?', @options[:parent_category_id].to_i)
|
||||
end
|
||||
|
||||
if SiteSetting.fixed_category_positions
|
||||
@categories = @categories.order('position ASC').order('id ASC')
|
||||
else
|
||||
@@ -72,21 +76,23 @@ class CategoryList
|
||||
end
|
||||
|
||||
@categories = @categories.to_a
|
||||
subcategories = {}
|
||||
to_delete = Set.new
|
||||
@categories.each do |c|
|
||||
if c.parent_category_id.present?
|
||||
subcategories[c.parent_category_id] ||= []
|
||||
subcategories[c.parent_category_id] << c.id
|
||||
to_delete << c
|
||||
end
|
||||
end
|
||||
|
||||
if subcategories.present?
|
||||
if @options[:parent_category_id].blank?
|
||||
subcategories = {}
|
||||
to_delete = Set.new
|
||||
@categories.each do |c|
|
||||
c.subcategory_ids = subcategories[c.id]
|
||||
if c.parent_category_id.present?
|
||||
subcategories[c.parent_category_id] ||= []
|
||||
subcategories[c.parent_category_id] << c.id
|
||||
to_delete << c
|
||||
end
|
||||
end
|
||||
|
||||
if subcategories.present?
|
||||
@categories.each do |c|
|
||||
c.subcategory_ids = subcategories[c.id]
|
||||
end
|
||||
@categories.delete_if {|c| to_delete.include?(c) }
|
||||
end
|
||||
@categories.delete_if {|c| to_delete.include?(c) }
|
||||
end
|
||||
|
||||
if latest_post_only?
|
||||
|
||||
Reference in New Issue
Block a user