mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-23 23:58:31 -05:00
FEATURE: query param for closed / archived / open
?status=closed for closed topics ?status=open for open topics ?status=archived for archived topics
This commit is contained in:
parent
e076682bc6
commit
2c75e15049
2 changed files with 14 additions and 1 deletions
|
@ -156,6 +156,7 @@ class ListController < ApplicationController
|
|||
category: params[:category],
|
||||
sort_order: params[:sort_order],
|
||||
sort_descending: params[:sort_descending],
|
||||
status: params[:status]
|
||||
}
|
||||
result[:no_subcategories] = true if params[:no_subcategories] == 'true'
|
||||
result
|
||||
|
|
|
@ -18,7 +18,8 @@ class TopicQuery
|
|||
category
|
||||
sort_order
|
||||
no_subcategories
|
||||
sort_descending).map(&:to_sym)
|
||||
sort_descending
|
||||
status).map(&:to_sym)
|
||||
|
||||
# Maps `sort_order` to a columns in `topics`
|
||||
SORTABLE_MAPPING = {
|
||||
|
@ -243,6 +244,17 @@ class TopicQuery
|
|||
result = result.where('topics.id in (?)', options[:topic_ids]).references(:topics)
|
||||
end
|
||||
|
||||
if status = options[:status]
|
||||
case status
|
||||
when 'open'
|
||||
result = result.where('NOT topics.closed AND NOT topics.archived')
|
||||
when 'closed'
|
||||
result = result.where('topics.closed')
|
||||
when 'archived'
|
||||
result = result.where('topics.archived')
|
||||
end
|
||||
end
|
||||
|
||||
guardian = Guardian.new(@user)
|
||||
unless guardian.is_staff?
|
||||
allowed_ids = guardian.allowed_category_ids
|
||||
|
|
Loading…
Reference in a new issue