mirror of
https://github.com/ENSL/ensl.org.git
synced 2025-05-31 00:41:20 +00:00
Init ladder prototype. Challenge stuff is still mostly broken.
This commit is contained in:
parent
7abbf51145
commit
5e29684722
11 changed files with 185 additions and 104 deletions
|
@ -18,10 +18,13 @@ class ChallengesController < ApplicationController
|
|||
end
|
||||
|
||||
def new
|
||||
#No new challenges for now.
|
||||
raise AccessError
|
||||
@challenge = Challenge.new
|
||||
@challenge.user = cuser
|
||||
@challenge.contester2 = Contester.active.find params[:id]
|
||||
@challenge.get_contester1
|
||||
contest = @challenge.contester2.contest
|
||||
@challenge.contester1 = @challenge.user.active_contesters.of_contest(contest).first
|
||||
raise AccessError unless @challenge.can_create? cuser
|
||||
end
|
||||
|
||||
|
@ -62,7 +65,8 @@ class ChallengesController < ApplicationController
|
|||
def destroy
|
||||
raise AccessError unless @challenge.can_destroy? cuser
|
||||
@challenge.destroy
|
||||
return_to
|
||||
#return_to FIX ME from challenge side
|
||||
render text: t(:challenges_cleared)
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -22,6 +22,9 @@ class ContestersController < ApplicationController
|
|||
@contester = Contester.new params[:contester]
|
||||
@contester.user = cuser
|
||||
raise AccessError unless @contester.can_create? cuser
|
||||
if @contester.contest.contest_type == Contest::TYPE_LADDER
|
||||
@contester.score = @contester.contest.contesters.active.count + 1
|
||||
end
|
||||
|
||||
if @contester.save
|
||||
flash[:notice] = t(:contests_join)
|
||||
|
@ -34,9 +37,20 @@ class ContestersController < ApplicationController
|
|||
|
||||
def update
|
||||
raise AccessError unless @contester.can_update? cuser
|
||||
|
||||
if @contester.contest.contest_type == Contest::TYPE_LADDER
|
||||
old_rank = @contester.score
|
||||
new_rank = params[:contester][:score].to_i
|
||||
raise Error, t(:rank_invalid) unless new_rank > 0 and
|
||||
new_rank <= @contester.contest.contesters.active.count
|
||||
if old_rank != new_rank
|
||||
@contester.contest.update_ranks(@contester, old_rank, new_rank)
|
||||
end
|
||||
end
|
||||
|
||||
if @contester.update_attributes params[:contester]
|
||||
flash[:notice] = t(:contests_contester_update)
|
||||
redirect_to @contester
|
||||
redirect_to @contester.contest
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue