class Admins::CompetitionsController < Admins::BaseController include CustomSortable before_action :find_competition, except: [:index] def index params[:sort_by] = params[:sort_by].presence || 'created_on' params[:sort_direction] = params[:sort_direction].presence || 'desc' @competitions = custom_sort Competition.all, params[:sort_by], params[:sort_direction] @params_page = params[:page] || 1 @competitions = paginate @competitions ids = @competitions.map(&:id) @member_count_map = TeamMember.where(competition_id: ids).group(:competition_id).count @competition_hot = ModuleSetting.exists?(module_type: "Competition", property: "hot") respond_to do |format| format.js format.html end end def publish @competition.update_attributes!(:published_at, Time.now) end def unpublish @competition.update_attributes!(:published_at, nil) end def online_switch if @competition.status @competition.update_attributes!(status: false) else @competition.update_attributes!(status: true, online_time: Time.now) end end def enroll_list end private def find_competition @competition = Competition.find_by(id: params[:id]) end end