mirror of
https://github.com/discourse/discourse.git
synced 2026-09-05 04:40:41 -05:00
FEATURE: Let staff add custom post notices. (#7377)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
class RenamePostNotices < ActiveRecord::Migration[5.2]
|
||||
def up
|
||||
add_index :post_custom_fields, :post_id, unique: true, name: "index_post_custom_fields_on_notice_type", where: "name = 'notice_type'"
|
||||
add_index :post_custom_fields, :post_id, unique: true, name: "index_post_custom_fields_on_notice_args", where: "name = 'notice_args'"
|
||||
|
||||
# Split site setting `min_post_notice_tl` into `new_user_notice_tl` and `returning_user_notice_tl`.
|
||||
execute <<~SQL
|
||||
INSERT INTO site_settings(name, data_type, value, created_at, updated_at)
|
||||
SELECT 'new_user_notice_tl', data_type, value, created_at, updated_at
|
||||
FROM site_settings WHERE name = 'min_post_notice_tl'
|
||||
UNION
|
||||
SELECT 'returning_user_notice_tl', data_type, value, created_at, updated_at
|
||||
FROM site_settings WHERE name = 'min_post_notice_tl'
|
||||
SQL
|
||||
execute "DELETE FROM site_settings WHERE name = 'min_post_notice_tl'"
|
||||
|
||||
# Rename custom fields to match new naming scheme.
|
||||
execute "UPDATE post_custom_fields SET name = 'notice_type', value = 'new_user' WHERE name = 'post_notice_type' AND value = 'first'"
|
||||
execute "UPDATE post_custom_fields SET name = 'notice_type', value = 'returning_user' WHERE name = 'post_notice_type' AND value = 'returning'"
|
||||
execute "UPDATE post_custom_fields SET name = 'notice_args' WHERE name = 'post_notice_time'"
|
||||
|
||||
# Delete all notices for bots, staged and anonymous users.
|
||||
execute <<~SQL
|
||||
DELETE FROM user_custom_fields
|
||||
WHERE (name = 'notice_type' OR name = 'notice_args')
|
||||
AND user_id IN (SELECT id FROM users WHERE id <= 0 OR staged = true
|
||||
UNION
|
||||
SELECT user_id FROM user_custom_fields ucf WHERE name = 'master_id')
|
||||
SQL
|
||||
end
|
||||
|
||||
def down
|
||||
raise ActiveRecord::IrreversibleMigration
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user