diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb index d78b831..77d1ef4 100644 --- a/app/controllers/tournaments_controller.rb +++ b/app/controllers/tournaments_controller.rb @@ -1,8 +1,8 @@ class TournamentsController < ApplicationController - before_action :set_tournament, only: [:teampointadjust,:remove_teampointadjust,:remove_school_delegate,:remove_delegate,:school_delegate,:delegate,:matches,:weigh_in,:weigh_in_weight,:create_custom_weights,:show,:edit,:update,:destroy,:up_matches,:no_matches,:team_scores,:brackets,:generate_matches,:bracket,:all_brackets] + before_action :set_tournament, only: [:error,:teampointadjust,:remove_teampointadjust,:remove_school_delegate,:remove_delegate,:school_delegate,:delegate,:matches,:weigh_in,:weigh_in_weight,:create_custom_weights,:show,:edit,:update,:destroy,:up_matches,:no_matches,:team_scores,:brackets,:generate_matches,:bracket,:all_brackets] before_filter :check_access_manage, only: [:teampointadjust,:remove_teampointadjust,:remove_school_delegate,:school_delegate,:weigh_in,:weigh_in_weight,:create_custom_weights,:update,:edit,:generate_matches,:matches] before_filter :check_access_destroy, only: [:destroy,:delegate,:remove_delegate] - + before_filter :check_tournament_errors, only: [:generate_matches] before_filter :check_for_matches, only: [:up_matches,:bracket,:all_brackets] def remove_teampointadjust @@ -229,6 +229,9 @@ class TournamentsController < ApplicationController format.json { head :no_content } end end + + def error + end private # Use callbacks to share common setup or constraints between actions. @@ -257,4 +260,13 @@ class TournamentsController < ApplicationController end end end + + def check_tournament_errors + if @tournament.tournamentMatchGenerationError != nil + respond_to do |format| + format.html { redirect_to "/tournaments/#{@tournament.id}/error" } + end + end + end + end diff --git a/app/models/tournament.rb b/app/models/tournament.rb index 983f442..3be469e 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -109,4 +109,26 @@ class Tournament < ActiveRecord::Base end end end + + def poolToBracketWeightsWithTooManyWrestlers + if self.tournament_type == "Pool to bracket" + weights.select{|w| w.wrestlers.size > 16} + else + nil + end + end + + def tournamentMatchGenerationError + errorString = "There is a tournament error." + if poolToBracketWeightsWithTooManyWrestlers != nil + errorString = errorString + " The following weights have too many wrestlers " + poolToBracketWeightsWithTooManyWrestlers.each do |w| + errorString = errorString + "#{w.max} " + end + return errorString + else + nil + end + end + end diff --git a/app/views/tournaments/error.html.erb b/app/views/tournaments/error.html.erb new file mode 100644 index 0000000..f12dd46 --- /dev/null +++ b/app/views/tournaments/error.html.erb @@ -0,0 +1,3 @@ +<%= link_to "Back to #{@tournament.name}", "/tournaments/#{@tournament.id}", :class=>"btn btn-default" %> +

+<%= @tournament.tournamentMatchGenerationError %> \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 542692c..1f8bd63 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -49,6 +49,7 @@ Wrestling::Application.routes.draw do get 'tournaments/:id/teampointadjust' => 'tournaments#teampointadjust' post 'tournaments/:id/teampointadjust' => 'tournaments#teampointadjust' delete 'tournaments/:id/:teampointadjust/remove_teampointadjust' => 'tournaments#remove_teampointadjust' + get 'tournaments/:id/error' => 'tournaments#error' # Example of regular route: # get 'products/:id' => 'catalog#view'