From b4bc055585dee532653a8c64e45385e085ec22a8 Mon Sep 17 00:00:00 2001
From: Luke Shumaker
Date: Tue, 22 Apr 2014 18:29:17 -0400
Subject: I hate code
---
app/controllers/matches_controller.rb | 11 +++--------
app/controllers/tournaments_controller.rb | 25 ++++++++++++++++---------
app/models/tournament_stage.rb | 4 ++--
app/views/matches/index.html.erb | 2 +-
app/views/matches/show.html.erb | 4 ----
lib/scheduling/elimination.rb | 14 ++++++++------
6 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/app/controllers/matches_controller.rb b/app/controllers/matches_controller.rb
index 59f376a..b50aca5 100644
--- a/app/controllers/matches_controller.rb
+++ b/app/controllers/matches_controller.rb
@@ -1,6 +1,4 @@
class MatchesController < ApplicationController
- before_action :set_tournament, only: [:index, :update]
-
require 'httparty'
require 'json'
require 'delayed_job'
@@ -118,7 +116,7 @@ class MatchesController < ApplicationController
# GET /tournaments/1/matches/1
# GET /tournaments/1/matches/1.json
def show
- if Tournament.find_by_id(@match.tournament_id).game_id == 1
+ if @match.tournament_stage.tournament.game_id == 1
file_blue = "blue.yaml"
file_purple = "purple.yaml"
@blue2 = YAML.load_file(file_blue)
@@ -235,11 +233,8 @@ class MatchesController < ApplicationController
private
# Use callbacks to share common setup or constraints between actions.
def set_match
- set_tournament
- @match = @tournament.matches.find(params[:id])
- end
- def set_tournament
- @tournament = Tournament.find(params[:tournament_id])
+ @match = Match.find(params[:id])
+ @tournament = @match.tournament_stage.tournament
end
# Never trust parameters from the scary internet, only allow the white list through.
diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb
index 4b0e1af..03dc5b8 100644
--- a/app/controllers/tournaments_controller.rb
+++ b/app/controllers/tournaments_controller.rb
@@ -95,17 +95,24 @@ class TournamentsController < ApplicationController
end
when "start"
check_permission(:edit, @tournament)
- @tournament.status = 1
- ok =
- @tournament.save &&
- @tournament.tournament_stages.create(scheduling: "elimination") &&
- @tournament.tournament_stages.first.create_matches
respond_to do |format|
- if ok
- format.html { redirect_to @tournament, notice: 'You have started this tournament.' }
- format.json { head :no_content }
+ if @tournament.status == 0
+ @tournament.status = 1
+ success = true
+ ActiveRecord::Base.transaction do
+ success &= @tournament.save &&
+ success &= @tournament.tournament_stages.create(scheduling: "elimination")
+ success &= @tournament.tournament_stages.first.create_matches
+ end
+ if success
+ format.html { redirect_to @tournament, notice: 'You have started this tournament.' }
+ format.json { head :no_content }
+ else
+ format.html { redirect_to @tournament, notice: "You don't have permission to start this tournament." }
+ format.json { render json: "Permission denied", status: :forbidden }
+ end
else
- format.html { redirect_to @tournament, notice: "You don't have permission to start this tournament." }
+ format.html { redirect_to @tournament, notice: "This tournament is not in a state that it can be started." }
format.json { render json: "Permission denied", status: :forbidden }
end
end
diff --git a/app/models/tournament_stage.rb b/app/models/tournament_stage.rb
index 9fa6dcd..762f6a7 100644
--- a/app/models/tournament_stage.rb
+++ b/app/models/tournament_stage.rb
@@ -17,9 +17,9 @@ class TournamentStage < ActiveRecord::Base
@scheduling.create_matches
end
- def to_svg
+ def to_svg(current_user)
set_scheduling
- return @scheduling.graph
+ return @scheduling.graph(current_user)
end
private
diff --git a/app/views/matches/index.html.erb b/app/views/matches/index.html.erb
index 058477a..fda8582 100644
--- a/app/views/matches/index.html.erb
+++ b/app/views/matches/index.html.erb
@@ -37,5 +37,5 @@
<% @tournament.stages_ordered.keys.sort.each do |stage_key| %>
- <%= raw @tournament.stages_ordered[stage_key].to_svg %>
+ <%= raw @tournament.stages_ordered[stage_key].to_svg(current_user) %>
<% end %>
diff --git a/app/views/matches/show.html.erb b/app/views/matches/show.html.erb
index e7fe791..a1d82a3 100644
--- a/app/views/matches/show.html.erb
+++ b/app/views/matches/show.html.erb
@@ -7,10 +7,6 @@
<%= @match.tournament_stage %>
-
- Name:
- <%= @match.name %>
-