FIX: mark topics in sub categories as unread when dismissing parent

Previously we would only dismiss the parent category and leave the
child categories unread
This commit is contained in:
Sam Saffron
2019-06-27 13:26:07 +10:00
parent 79d657203d
commit 5bc5c02af6
6 changed files with 54 additions and 14 deletions

View File

@ -779,7 +779,17 @@ class TopicsController < ApplicationController
elsif params[:filter] == 'unread'
tq = TopicQuery.new(current_user)
topics = TopicQuery.unread_filter(tq.joined_topic_user, current_user.id, staff: guardian.is_staff?).listable_topics
topics = topics.where('category_id = ?', params[:category_id]) if params[:category_id]
if params[:category_id]
if params[:include_subcategories]
topics = topics.where(<<~SQL, category_id: params[:category_id])
category_id in (select id FROM categories WHERE parent_category_id = :category_id) OR
category_id = :category_id
SQL
else
topics = topics.where('category_id = ?', params[:category_id])
end
end
topic_ids = topics.pluck(:id)
else
raise ActionController::ParameterMissing.new(:topic_ids)