Revert "PERF: Don't join on shared drafts unless you have to"

This reverts commit efedd9745f.
This commit is contained in:
Robin Ward
2018-03-28 15:35:13 -04:00
parent a8f211bd41
commit 4b5977aa6a
5 changed files with 22 additions and 47 deletions

View File

@@ -482,19 +482,17 @@ class TopicQuery
end
def apply_shared_drafts(result, category_id, options)
drafts_category_id = SiteSetting.shared_drafts_category.to_i
viewing_shared = category_id && category_id == drafts_category_id
viewing_shared = category_id && category_id == SiteSetting.shared_drafts_category.to_i
if guardian.can_create_shared_draft?
result = result.includes(:shared_draft).references(:shared_draft)
if options[:destination_category_id]
destination_category_id = get_category_id(options[:destination_category_id])
topic_ids = SharedDraft.where(category_id: destination_category_id).pluck(:topic_id)
return result.where(id: topic_ids)
elsif viewing_shared
result = result.includes(:shared_draft).references(:shared_draft)
else
return result.where('topics.category_id != ?', drafts_category_id)
return result.where("shared_drafts.category_id" => destination_category_id)
end
return result.where("shared_drafts.id IS NULL") unless viewing_shared
end
result