mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Add a Staff category. Have a topic for assets in the Staff category. Move admin quick start guide to Staff category. Quick start guide is not invisible anymore.
This commit is contained in:
36
db/fixtures/502_staff_category.rb
Normal file
36
db/fixtures/502_staff_category.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
unless Rails.env.test?
|
||||
staff = Category.where(id: SiteSetting.staff_category_id).first
|
||||
if staff and !staff.group_ids.include?(Group[:staff].id)
|
||||
|
||||
# Add permissions and a description to the Staff category.
|
||||
|
||||
staff.group_names = ['staff']
|
||||
unless staff.save
|
||||
puts staff.errors.full_messages
|
||||
raise "Failed to set permissions on the Staff category!"
|
||||
end
|
||||
|
||||
creator = PostCreator.new(Discourse.system_user,
|
||||
raw: I18n.t('staff_category_description'),
|
||||
title: I18n.t('category.topic_prefix', category: staff.name),
|
||||
category: staff.name,
|
||||
archetype: Archetype.default
|
||||
)
|
||||
post = creator.create
|
||||
|
||||
unless post && post.id
|
||||
puts post.errors.full_messages if post
|
||||
puts creator.errors.inspect
|
||||
raise "Failed to create description for Staff category!"
|
||||
end
|
||||
|
||||
staff.topic_id = post.topic.id
|
||||
unless staff.save
|
||||
puts staff.errors.full_messages
|
||||
puts "Failed to set the Staff category description topic!"
|
||||
end
|
||||
|
||||
# Reset topic count because we don't count the description topic
|
||||
Category.exec_sql "UPDATE categories SET topic_count = 0 WHERE id = #{staff.id}"
|
||||
end
|
||||
end
|
||||
@@ -5,9 +5,10 @@ Post.reset_column_information
|
||||
if Topic.where('id NOT IN (SELECT topic_id from categories where topic_id is not null)').count == 0 && !Rails.env.test?
|
||||
puts "Seeding welcome topics"
|
||||
|
||||
staff = Category.where(id: SiteSetting.staff_category_id).first
|
||||
welcome = File.read(Rails.root + 'docs/ADMIN-QUICK-START-GUIDE.md')
|
||||
post = PostCreator.create(Discourse.system_user, raw: welcome, title: "Discourse Admin Quick Start Guide", skip_validations: true)
|
||||
post.topic.update_column('visible', false)
|
||||
PostCreator.create(Discourse.system_user, raw: welcome, title: "Discourse Admin Quick Start Guide", skip_validations: true, category: staff ? staff.name : nil)
|
||||
PostCreator.create(Discourse.system_user, raw: I18n.t('assets_topic_body'), title: "Assets for the forum design", skip_validations: true, category: staff ? staff.name : nil)
|
||||
|
||||
welcome = File.read(Rails.root + 'docs/WELCOME-TO-DISCOURSE.md')
|
||||
post = PostCreator.create(Discourse.system_user, raw: welcome, title: "Welcome to Discourse", skip_validations: true)
|
||||
|
||||
25
db/migrate/20140227201005_add_staff_category.rb
Normal file
25
db/migrate/20140227201005_add_staff_category.rb
Normal file
@@ -0,0 +1,25 @@
|
||||
class AddStaffCategory < ActiveRecord::Migration
|
||||
def up
|
||||
unless Rails.env.test?
|
||||
result = Category.exec_sql "SELECT 1 FROM site_settings where name = 'staff_category_id'"
|
||||
if result.count == 0
|
||||
description = I18n.t('staff_category_description')
|
||||
name = I18n.t('staff_category_name')
|
||||
if Category.exec_sql("SELECT 1 FROM categories where name ilike '#{name}'").count == 0
|
||||
result = execute "INSERT INTO categories
|
||||
(name, color, text_color, created_at, updated_at, user_id, slug, description, read_restricted)
|
||||
VALUES ('#{name}', '283890', 'FFFFFF', now(), now(), -1, '#{Slug.for(name)}', '#{description}', true)
|
||||
RETURNING id"
|
||||
category_id = result[0]["id"].to_i
|
||||
|
||||
execute "INSERT INTO site_settings(name, data_type, value, created_at, updated_at)
|
||||
VALUES ('staff_category_id', 3, #{category_id}, now(), now())"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
# Do nothing
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user