You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.2 KiB
47 lines
1.2 KiB
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 |