FEATURE: support filter_auto_bump_topics event

Use this event to filter the list of auto bumped topics.

EG:

  on(:filter_auto_bump_topics) do |_category, filters|
    filters.push(->(r) { r.where(<<~SQL)
        NOT EXISTS(
          SELECT 1 FROM topic_custom_fields
          WHERE topic_id = topics.id
          AND name = 'accepted_answer_post_id'
        )
      SQL
    })
  end
This commit is contained in:
Sam 2018-07-18 10:56:09 +10:00
parent 02628883d2
commit 5adf5b527d
1 changed files with 12 additions and 1 deletions

View File

@ -410,7 +410,18 @@ class Category < ActiveRecord::Base
limiter = auto_bump_limiter
return false if !limiter.can_perform?
topic = Topic
filters = []
DiscourseEvent.trigger(:filter_auto_bump_topics, self, filters)
relation = Topic
if filters.length > 0
filters.each do |filter|
relation = filter.call(relation)
end
end
topic = relation
.visible
.listable_topics
.where(category_id: self.id)