30 lines
1.1 KiB
Ruby
30 lines
1.1 KiB
Ruby
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
|