mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 12:38:26 +08:00
FIX: Only hide shared draft topics from latest
(#6737)
Previously we were hiding them from all topic lists, which can result in topics being "stuck" in an unread state with no easy way to clear them.
This commit is contained in:
parent
41e184280d
commit
6c71395bf6
|
@ -453,6 +453,7 @@ class TopicQuery
|
|||
result = remove_muted_topics(result, @user) unless options && options[:state] == "muted".freeze
|
||||
result = remove_muted_categories(result, @user, exclude: options[:category])
|
||||
result = remove_muted_tags(result, @user, options)
|
||||
result = apply_shared_drafts(result, get_category_id(options[:category]), options)
|
||||
|
||||
# plugins can remove topics here:
|
||||
self.class.results_filter_callbacks.each do |filter_callback|
|
||||
|
@ -694,7 +695,6 @@ class TopicQuery
|
|||
|
||||
result = apply_ordering(result, options)
|
||||
result = result.listable_topics.includes(:category)
|
||||
result = apply_shared_drafts(result, category_id, options)
|
||||
|
||||
if options[:exclude_category_ids] && options[:exclude_category_ids].is_a?(Array) && options[:exclude_category_ids].size > 0
|
||||
result = result.where("categories.id NOT IN (?)", options[:exclude_category_ids].map(&:to_i)).references(:categories)
|
||||
|
|
|
@ -1026,5 +1026,20 @@ describe TopicQuery do
|
|||
expect(list.topics).not_to include(topic)
|
||||
end
|
||||
end
|
||||
|
||||
context "unread" do
|
||||
let!(:partially_read) do
|
||||
topic = Fabricate(:topic, category: shared_drafts_category)
|
||||
Fabricate(:post, user: creator, topic: topic).topic
|
||||
TopicUser.update_last_read(admin, topic.id, 0, 0, 0)
|
||||
TopicUser.change(admin.id, topic.id, notification_level: TopicUser.notification_levels[:tracking])
|
||||
topic
|
||||
end
|
||||
|
||||
it 'does not remove topics from unread' do
|
||||
expect(TopicQuery.new(admin).list_latest.topics).not_to include(partially_read) # Check we set up the topic/category correctly
|
||||
expect(TopicQuery.new(admin).list_unread.topics).to include(partially_read)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user