2016-09-22 14:19:44 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
module Admin
|
|
|
|
class ResultController < AdminController
|
2017-02-14 16:39:53 -06:00
|
|
|
helper_method :sort_column, :sort_direction
|
|
|
|
|
2016-09-22 14:19:44 -05:00
|
|
|
# TODO: change context from Candidate to Quiz
|
|
|
|
# bypass pundit lockdowns until completed
|
|
|
|
after_action :skip_policy_scope
|
|
|
|
after_action :skip_authorization
|
|
|
|
#
|
|
|
|
|
2016-09-22 17:26:00 -05:00
|
|
|
# TODO: Limit results to the quizzes current_user has access to
|
2016-09-22 14:19:44 -05:00
|
|
|
def index
|
2016-12-04 16:41:07 -06:00
|
|
|
@candidates = Candidate.where(completed: true)
|
|
|
|
.includes(:recruiter)
|
2017-02-14 16:39:53 -06:00
|
|
|
.order("#{sort_column} #{sort_direction}")
|
2017-02-24 14:27:38 -06:00
|
|
|
.page(params[:page])
|
2016-09-22 14:19:44 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
def view
|
|
|
|
@candidate = Candidate.find_by(test_hash: params[:test_hash])
|
|
|
|
@quiz = @candidate.my_quiz
|
|
|
|
@status = QuizStatus.new(@candidate)
|
2017-02-10 15:46:43 -06:00
|
|
|
@comments = QuizComment.includes(:user).where(test_hash: @candidate.test_hash).order(:created_at)
|
|
|
|
@comment = QuizComment.new
|
2016-09-22 14:19:44 -05:00
|
|
|
end
|
2017-02-14 16:39:53 -06:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def sort_column
|
|
|
|
Candidate.column_names.include?(params[:sort]) ? params[:sort] : 'completed_at'
|
|
|
|
end
|
|
|
|
|
|
|
|
def sort_direction
|
|
|
|
%w(asc desc).include?(params[:direction]) ? params[:direction] : 'desc'
|
|
|
|
end
|
2016-09-22 14:19:44 -05:00
|
|
|
end
|
|
|
|
end
|