debshots/app/controllers/moderate_controller.rb

42 lines
1.7 KiB
Ruby

class ModerateController < ApplicationController
before_action :authenticate_user!
def index
# List of screenshots to be moderated
@pending_screenshots = Screenshot.where(approved: false)
# First package with pending screenshots
@pending_package = Package.joins(:screenshots).where('screenshots.approved=false or screenshots.markedfordelete=true').distinct(:name).first
# # List of screenshots that were reported (to be removed)
# @reported_screenshots = Screenshot.where(markedfordelete: true)
# # First package with reported screenshots
# @reported_package = Package.joins(:screenshots).where('screenshots.markedfordelete=true').distinct(:name).first
# # The next package that has pending screenshots…
# @package = @pending_package or @reported_package
@package = @pending_package
if @package
# Number of screenshots that were already moderated (during this session)
session[:already_moderated] ||= 0
@moderated_screenshots = session[:already_moderated]
# Percentage of already moderated screenshots
@percent_moderated = 100 * (@moderated_screenshots+1) / (@moderated_screenshots + @pending_screenshots.count)
# @percent_moderated = 100 * (@moderated_screenshots+1) / (@moderated_screenshots + @pending_screenshots.count + @reported_screenshots.count)
end
end
# Publish a screenshot from the moderation queue
def approve_screenshot
@screenshot = Screenshot.find(params[:id])
# TODO: Move code to model
@screenshot.delete_reason = nil
@screenshot.markedfordelete = false
@screenshot.approved = true
@screenshot.save!
flash['notice'] = "Screenshot approved."
redirect_to package_path
end
end