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'