FEATURE: Adds seeded default categories to the sidebar ()

This commit is contained in:
Blake Erickson 2022-10-07 16:02:03 -06:00 committed by GitHub
parent 26b9500983
commit e320bbe513
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 4 deletions
lib/seed_data
spec/lib/seed_data

@ -64,7 +64,8 @@ module SeedData
color: '808281',
text_color: 'FFFFFF',
permissions: { everyone: :full },
force_permissions: true
force_permissions: true,
sidebar: true
},
{
site_setting_name: 'staff_category_id',
@ -74,7 +75,8 @@ module SeedData
color: 'E45735',
text_color: 'FFFFFF',
permissions: { staff: :full },
force_permissions: true
force_permissions: true,
sidebar: true
},
{
site_setting_name: 'general_category_id',
@ -84,7 +86,8 @@ module SeedData
color: '25AAE2',
text_color: 'FFFFFF',
permissions: { everyone: :full },
force_permissions: true
force_permissions: true,
sidebar: true
}
]
@ -96,7 +99,7 @@ module SeedData
end
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)
if should_create_category?(category_id, force_existence)
@ -114,6 +117,12 @@ module SeedData
category.save!
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)
if description.present? && (category.topic_id.blank? || !Topic.exists?(category.topic_id))
category.description = description

@ -109,6 +109,22 @@ RSpec.describe SeedData::Categories do
expect(Category.last.name).to eq("General")
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
create_category("lounge_category_id")