summaryrefslogtreecommitdiff
path: root/app/controllers/brackets_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/brackets_controller.rb')
-rw-r--r--app/controllers/brackets_controller.rb41
1 files changed, 31 insertions, 10 deletions
diff --git a/app/controllers/brackets_controller.rb b/app/controllers/brackets_controller.rb
index fe43ca9..50ff5fe 100644
--- a/app/controllers/brackets_controller.rb
+++ b/app/controllers/brackets_controller.rb
@@ -1,20 +1,29 @@
class BracketsController < ApplicationController
- before_action :set_bracket, only: [:show, :edit, :update, :destroy]
+ before_action :set_tournament, only: [:index, :create]
# GET /brackets
# GET /brackets.json
def index
- @brackets = Bracket.all
+ @tournament = Tournament.find(params[:tournament_id])
+ @brackets = @tournament.brackets
end
# GET /brackets/1
# GET /brackets/1.json
def show
- end
+ @matches = @tournament.stages.first.matches_ordered
+ @numTeams = @tournament.min_teams_per_match
+ @logBase = @numTeams
+
+ # depth of SVG tree
+ @depth = Math.log(@matches.count*(@logBase-1),@logBase).floor+1;
+
+ # height of SVG
+ @matchHeight = 50*@logBase;
+ @height = [(@matchHeight+50) * @logBase**(@depth-1) + 100, 500].max;
- # GET /brackets/new
- def new
- @bracket = Bracket.new
+ @base = 1
+ @pBase = 1
end
# GET /brackets/1/edit
@@ -24,14 +33,17 @@ class BracketsController < ApplicationController
# POST /brackets
# POST /brackets.json
def create
- @bracket = Bracket.new(bracket_params)
+ @bracket = @tournament.brackets.build(user: current_user)
+ @bracket.name = current_user.user_name + "'s Prediction for " + @tournament.name
respond_to do |format|
- if @bracket.save
+ if @tournament.status == 1 && @tournament.stages.first.scheduling_method == "elimination" && @tournament.stages.first.matches.first.status == 0
+ @bracket.save
+ @bracket.create_matches
format.html { redirect_to @bracket, notice: 'Bracket was successfully created.' }
- format.json { render action: 'show', status: :created, location: @bracket }
+ format.json { render action: 'edit', status: :created, location: @bracket }
else
- format.html { render action: 'new' }
+ format.html { redirect_to tournaments_path action: 'You can\'t make a bracket for this tournament' }
format.json { render json: @bracket.errors, status: :unprocessable_entity }
end
end
@@ -64,11 +76,20 @@ class BracketsController < ApplicationController
private
# Use callbacks to share common setup or constraints between actions.
def set_bracket
+ @tournament = Tournament.find(params[:tournament_id])
@bracket = Bracket.find(params[:id])
end
+ def set_tournament
+ @tournament = Tournament.find(params[:tournament_id])
+ end
+
# Never trust parameters from the scary internet, only allow the white list through.
def bracket_params
params.require(:bracket).permit(:user_id, :tournament_id, :name)
end
+
+ def is_owner?(bracket)
+ bracket.user == current_user
+ end
end