class ModerateController < ApplicationController before_action :authenticate_user! def index # List of screenshots to be moderated @pending_screenshots = Screenshot.where(approved: false) # List of packages with pending screenshots @pending_packages = Package.joins(:screenshots).where('screenshots.approved=false').distinct(:name) # The next package that has pending screenshots… @package = @pending_packages.first # 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) end # Publish a screenshot from the moderation queue def approve_screenshot @screenshot = Screenshot.find(params[:id]) @screenshot.delete_reason = nil @screenshot.markedfordelete = false @screenshot.approved = true @screenshot.save! flash['notice'] = "Screenshot approved." redirect_to package_path end end