diff --git a/app/models/flag.rb b/app/models/flag.rb index ec973008aca..afecc8cf9ba 100644 --- a/app/models/flag.rb +++ b/app/models/flag.rb @@ -10,8 +10,7 @@ class Flag < ActiveRecord::Base before_save :set_position before_save :set_name_key - after_save :reset_flag_settings! - after_destroy :reset_flag_settings! + after_commit :reset_flag_settings! default_scope { order(:position).where(score_type: false) } @@ -27,7 +26,7 @@ class Flag < ActiveRecord::Base def self.reset_flag_settings! # Flags are memoized for better performance. After the update, we need to reload them in all processes. PostActionType.reload_types - DiscourseEvent.trigger(:reload_post_action_types) + MessageBus.publish("/reload_post_action_types", {}) end def system? diff --git a/app/models/post_action_type.rb b/app/models/post_action_type.rb index 2785215a03c..b99450f2362 100644 --- a/app/models/post_action_type.rb +++ b/app/models/post_action_type.rb @@ -11,8 +11,6 @@ class PostActionType < ActiveRecord::Base ApplicationSerializer.expire_cache_fragment!(/\Apost_action_flag_types_/) end - DiscourseEvent.on(:reload_post_action_types) { self.reload_types } - class << self attr_reader :flag_settings diff --git a/config/initializers/004-message_bus.rb b/config/initializers/004-message_bus.rb index d9a1959a3be..28ef655dfd5 100644 --- a/config/initializers/004-message_bus.rb +++ b/config/initializers/004-message_bus.rb @@ -132,3 +132,7 @@ if Rails.env == "test" || $0 =~ /rake$/ # disable keepalive in testing MessageBus.keepalive_interval = -1 end + +if !Rails.env.test? + MessageBus.subscribe("/reload_post_action_types") { PostActionType.reload_types } +end