mirror of
https://github.com/discourse/discourse.git
synced 2025-06-18 02:12:52 +08:00
FEATURE: Adds seeded default categories to the sidebar (#18512)
This commit is contained in:
@ -64,7 +64,8 @@ module SeedData
|
|||||||
color: '808281',
|
color: '808281',
|
||||||
text_color: 'FFFFFF',
|
text_color: 'FFFFFF',
|
||||||
permissions: { everyone: :full },
|
permissions: { everyone: :full },
|
||||||
force_permissions: true
|
force_permissions: true,
|
||||||
|
sidebar: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
site_setting_name: 'staff_category_id',
|
site_setting_name: 'staff_category_id',
|
||||||
@ -74,7 +75,8 @@ module SeedData
|
|||||||
color: 'E45735',
|
color: 'E45735',
|
||||||
text_color: 'FFFFFF',
|
text_color: 'FFFFFF',
|
||||||
permissions: { staff: :full },
|
permissions: { staff: :full },
|
||||||
force_permissions: true
|
force_permissions: true,
|
||||||
|
sidebar: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
site_setting_name: 'general_category_id',
|
site_setting_name: 'general_category_id',
|
||||||
@ -84,7 +86,8 @@ module SeedData
|
|||||||
color: '25AAE2',
|
color: '25AAE2',
|
||||||
text_color: 'FFFFFF',
|
text_color: 'FFFFFF',
|
||||||
permissions: { everyone: :full },
|
permissions: { everyone: :full },
|
||||||
force_permissions: true
|
force_permissions: true,
|
||||||
|
sidebar: true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -96,7 +99,7 @@ module SeedData
|
|||||||
end
|
end
|
||||||
|
|
||||||
def create_category(site_setting_name:, name:, description:, position:, color:, text_color:,
|
def create_category(site_setting_name:, name:, description:, position:, color:, text_color:,
|
||||||
permissions:, force_permissions:, force_existence: false)
|
permissions:, force_permissions:, force_existence: false, sidebar: false)
|
||||||
category_id = SiteSetting.get(site_setting_name)
|
category_id = SiteSetting.get(site_setting_name)
|
||||||
|
|
||||||
if should_create_category?(category_id, force_existence)
|
if should_create_category?(category_id, force_existence)
|
||||||
@ -114,6 +117,12 @@ module SeedData
|
|||||||
category.save!
|
category.save!
|
||||||
|
|
||||||
SiteSetting.set(site_setting_name, category.id)
|
SiteSetting.set(site_setting_name, category.id)
|
||||||
|
|
||||||
|
if sidebar
|
||||||
|
sidebar_categories = SiteSetting.default_sidebar_categories.split('|')
|
||||||
|
sidebar_categories << category.id
|
||||||
|
SiteSetting.set('default_sidebar_categories', sidebar_categories.join('|'))
|
||||||
|
end
|
||||||
elsif category = Category.find_by(id: category_id)
|
elsif category = Category.find_by(id: category_id)
|
||||||
if description.present? && (category.topic_id.blank? || !Topic.exists?(category.topic_id))
|
if description.present? && (category.topic_id.blank? || !Topic.exists?(category.topic_id))
|
||||||
category.description = description
|
category.description = description
|
||||||
|
@ -109,6 +109,22 @@ RSpec.describe SeedData::Categories do
|
|||||||
expect(Category.last.name).to eq("General")
|
expect(Category.last.name).to eq("General")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "adds default categories SiteSetting.default_sidebar_categories" do
|
||||||
|
create_category("staff_category_id")
|
||||||
|
staff_category = Category.last
|
||||||
|
create_category("meta_category_id")
|
||||||
|
site_feedback_category = Category.last
|
||||||
|
create_category("general_category_id")
|
||||||
|
general_category = Category.last
|
||||||
|
site_setting_ids = SiteSetting.default_sidebar_categories.split('|')
|
||||||
|
create_category("uncategorized_category_id")
|
||||||
|
|
||||||
|
expect(site_setting_ids[0].to_i).to eq(staff_category.id)
|
||||||
|
expect(site_setting_ids[1].to_i).to eq(site_feedback_category.id)
|
||||||
|
expect(site_setting_ids[2].to_i).to eq(general_category.id)
|
||||||
|
expect(site_setting_ids.count).to eq(3)
|
||||||
|
end
|
||||||
|
|
||||||
it "does not override permissions of existing category when not forced" do
|
it "does not override permissions of existing category when not forced" do
|
||||||
create_category("lounge_category_id")
|
create_category("lounge_category_id")
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user