mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: exclude muted categories from the "top" topics list.
This commit is contained in:
parent
4891276742
commit
744bbf6904
@ -265,6 +265,7 @@ class TopicQuery
|
||||
def list_top_for(period)
|
||||
score = "#{period}_score"
|
||||
create_list(:top, unordered: true) do |topics|
|
||||
topics = remove_muted_categories(topics, @user)
|
||||
topics = topics.joins(:top_topic).where("top_topics.#{score} > 0")
|
||||
if period == :yearly && @user.try(:trust_level) == TrustLevel[0]
|
||||
topics.order(TopicQuerySQL.order_top_with_pinned_category_for(score))
|
||||
|
@ -265,7 +265,7 @@ describe TopicQuery do
|
||||
end
|
||||
|
||||
context 'muted categories' do
|
||||
it 'is removed from new and latest lists' do
|
||||
it 'is removed from top, new and latest lists' do
|
||||
category = Fabricate(:category_with_definition)
|
||||
topic = Fabricate(:topic, category: category)
|
||||
CategoryUser.create!(user_id: user.id,
|
||||
@ -273,6 +273,8 @@ describe TopicQuery do
|
||||
notification_level: CategoryUser.notification_levels[:muted])
|
||||
expect(topic_query.list_new.topics.map(&:id)).not_to include(topic.id)
|
||||
expect(topic_query.list_latest.topics.map(&:id)).not_to include(topic.id)
|
||||
TopTopic.create!(topic: topic, all_score: 1)
|
||||
expect(topic_query.list_top_for(:all).topics.map(&:id)).not_to include(topic.id)
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user