skill-assessment-app/app/controllers/admin/result_controller.rb

35 lines
1.2 KiB
Ruby
Raw Permalink Normal View History

2016-09-22 14:19:44 -05:00
# frozen_string_literal: true
module Admin
class ResultController < AdminController
2017-05-04 14:02:11 -05:00
# TODO: bypass pundit authorization until a result wrapper class if sorted
2016-09-22 14:19:44 -05:00
after_action :skip_authorization
2017-05-04 14:02:11 -05:00
# needed for :view
2016-09-22 14:19:44 -05:00
def index
2017-03-02 16:13:08 -06:00
sort_case = "(case when review_status = 0 then '' else name end)"
sort_with_case = sort_column == 'name' ? sort_case : sort_column
2017-05-04 14:02:11 -05:00
@candidates = policy_scope(:result).includes(:recruiter)
.order("#{sort_with_case} #{sort_direction}")
.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
2017-03-02 16:13:08 -06:00
@sort_col ||= Candidate.column_names.include?(params[:sort]) ? params[:sort] : 'completed_at'
2017-02-14 16:39:53 -06:00
end
2017-03-06 13:35:02 -06:00
def sort_direction
%w(asc desc).include?(params[:direction]) ? params[:direction] : 'desc'
end
2016-09-22 14:19:44 -05:00
end
end