modqueue: add order options; change default order to newest first.
* Add options for changing the order of the modqueue (newest first, oldest first, highest scoring first, lowest scoring first). * Change the default order from oldest posts first to most recently flagged or uploaded posts first. * Add an order:modqueue metatag to order by most recently flagged or uploaded in standard searches.
This commit is contained in:
@@ -4,19 +4,20 @@ class ModqueueController < ApplicationController
|
||||
layout "sidebar"
|
||||
|
||||
def index
|
||||
@posts = Post.includes(:appeals, :disapprovals, :uploader, flags: [:creator]).pending_or_flagged.available_for_moderation(search_params[:hidden]).tag_match(search_params[:tags])
|
||||
@posts = Post.includes(:appeals, :disapprovals, :uploader, flags: [:creator]).pending_or_flagged.available_for_moderation(search_params[:hidden])
|
||||
@posts = @posts.paginated_search(params, order: "modqueue", count_pages: true)
|
||||
|
||||
@pending_post_count = @posts.pending.count
|
||||
@flagged_post_count = @posts.flagged.count
|
||||
@disapproval_reasons = PostDisapproval.where(post: @posts).where.not(reason: "disinterest").group(:reason).order(count: :desc).distinct.count(:post_id)
|
||||
@uploaders = @posts.reorder(nil).group(:uploader).order(count: :desc).limit(20).count
|
||||
@modqueue_posts = @posts.except(:offset, :limit, :order)
|
||||
@pending_post_count = @modqueue_posts.pending.count
|
||||
@flagged_post_count = @modqueue_posts.flagged.count
|
||||
@disapproval_reasons = PostDisapproval.where(post: @modqueue_posts).where.not(reason: "disinterest").group(:reason).order(count: :desc).distinct.count(:post_id)
|
||||
@uploaders = @modqueue_posts.group(:uploader).order(count: :desc).limit(20).count
|
||||
|
||||
@tags = RelatedTagCalculator.frequent_tags_for_post_relation(@posts)
|
||||
@tags = RelatedTagCalculator.frequent_tags_for_post_relation(@modqueue_posts)
|
||||
@artist_tags = @tags.select { |tag| tag.category == Tag.categories.artist }.sort_by(&:overlap_count).reverse.take(10)
|
||||
@copyright_tags = @tags.select { |tag| tag.category == Tag.categories.copyright }.sort_by(&:overlap_count).reverse.take(10)
|
||||
@character_tags = @tags.select { |tag| tag.category == Tag.categories.character }.sort_by(&:overlap_count).reverse.take(10)
|
||||
|
||||
@posts = @posts.reorder(id: :asc).paginated_search(params, count_pages: true)
|
||||
respond_with(@posts)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user