diff --git a/app/models/generates_tournament_matches.rb b/app/models/generates_tournament_matches.rb
index d1e50b4..11fc2af 100644
--- a/app/models/generates_tournament_matches.rb
+++ b/app/models/generates_tournament_matches.rb
@@ -1,6 +1,8 @@
module GeneratesTournamentMatches
def generateMatchups
+ resetSchoolScores
+ setSeedsAndRandomSeedingWrestlersWithoutSeeds
poolToBracket() if tournament_type == "Pool to bracket"
matches
end
@@ -9,7 +11,6 @@ module GeneratesTournamentMatches
end
def poolToBracket
- resetSchoolScores
destroyAllMatches
buildTournamentWeights
generateMatches
@@ -39,5 +40,11 @@ module GeneratesTournamentMatches
m.save
end
end
+
+ def setSeedsAndRandomSeedingWrestlersWithoutSeeds
+ weights.each do |w|
+ w.setSeeds
+ end
+ end
end
diff --git a/app/models/weight.rb b/app/models/weight.rb
index c793d6f..02e412f 100644
--- a/app/models/weight.rb
+++ b/app/models/weight.rb
@@ -49,7 +49,7 @@ class Weight < ActiveRecord::Base
end
def onePoolNumbers(wrestlers)
- wrestlers.sort_by{|x|[x.original_seed]}.each do |w|
+ wrestlers.sort_by{|x|[x.seed]}.each do |w|
w.poolNumber = 1
end
return wrestlers
@@ -58,14 +58,14 @@ class Weight < ActiveRecord::Base
def twoPoolNumbers(wrestlers)
pool = 1
- wrestlers.sort_by{|x|[x.original_seed]}.reverse.each do |w|
- if w.original_seed == 1
+ wrestlers.sort_by{|x|[x.seed]}.reverse.each do |w|
+ if w.seed == 1
w.poolNumber = 1
- elsif w.original_seed == 2
+ elsif w.seed == 2
w.poolNumber = 2
- elsif w.original_seed == 3
+ elsif w.seed == 3
w.poolNumber = 2
- elsif w.original_seed == 4
+ elsif w.seed == 4
w.poolNumber = 1
else
w.poolNumber = pool
@@ -81,14 +81,14 @@ class Weight < ActiveRecord::Base
def fourPoolNumbers(wrestlers)
pool = 1
- wrestlers.sort_by{|x|[x.original_seed]}.reverse.each do |w|
- if w.original_seed == 1
+ wrestlers.sort_by{|x|[x.seed]}.reverse.each do |w|
+ if w.seed == 1
w.poolNumber = 1
- elsif w.original_seed == 2
+ elsif w.seed == 2
w.poolNumber = 2
- elsif w.original_seed == 3
+ elsif w.seed == 3
w.poolNumber = 3
- elsif w.original_seed == 4
+ elsif w.seed == 4
w.poolNumber = 4
else
w.poolNumber = pool
@@ -141,4 +141,26 @@ class Weight < ActiveRecord::Base
def poolOrder(pool)
PoolOrder.new(wrestlersForPool(pool)).getPoolOrder
end
+
+ def randomSeeding
+ wrestlerWithSeeds = wrestlers.select{|w| w.original_seed != nil }.sort_by{|w| w.original_seed}
+ highestSeed = wrestlerWithSeeds.last.original_seed
+ seed = highestSeed
+ wrestlersWithoutSeed = wrestlers.select{|w| w.original_seed == nil }
+ wrestlersWithoutSeed.shuffle.each do |w|
+ w.seed = seed
+ w.save
+ seed += 1
+ end
+ end
+
+ def setSeeds
+ wrestlerWithSeeds = wrestlers.select{|w| w.original_seed != nil }.sort_by{|w| w.original_seed}
+ wrestlerWithSeeds.each do |w|
+ w.seed = w.original_seed
+ w.save
+ end
+ randomSeeding
+ end
+
end
diff --git a/app/views/tournaments/_pool.html.erb b/app/views/tournaments/_pool.html.erb
index d4a885f..aa82c76 100644
--- a/app/views/tournaments/_pool.html.erb
+++ b/app/views/tournaments/_pool.html.erb
@@ -15,7 +15,7 @@
- <% @wrestlers.select{|w| w.generatePoolNumber == @pool}.sort_by{|w| w.original_seed}.each do |w| %>
+ <% @wrestlers.select{|w| w.generatePoolNumber == @pool}.sort_by{|w| w.seed}.each do |w| %>
| <%= w.original_seed %> <%= w.name %> <%= w.season_win %>-<%= w.season_loss %> <%= w.school.name %> |
<% @round = 1 %>
diff --git a/app/views/weights/show.html.erb b/app/views/weights/show.html.erb
index abed09e..35974b6 100644
--- a/app/views/weights/show.html.erb
+++ b/app/views/weights/show.html.erb
@@ -25,7 +25,7 @@
<%= form_tag @wrestlers_update_path do %>
- <% @wrestlers.order("original_seed asc").each do |wrestler| %>
+ <% @wrestlers.sort_by{|w| [w.original_seed ? 0 : 1, w.original_seed || 0]}.each do |wrestler| %>
<% if wrestler.weight_id == @weight.id %>
| <%= wrestler.name %> |
@@ -53,7 +53,9 @@
<% end %>
+
*All wrestlers without a seed (determined by tournament director) will be assigned a random seed.
<% if tournament_permissions(@tournament) %>
+
<%= submit_tag "Save", :class=>"btn btn-success"%>
<% end %>
<% end %>
diff --git a/test/fixtures/mats.yml b/test/fixtures/mats.yml
index f398820..c122bd0 100644
--- a/test/fixtures/mats.yml
+++ b/test/fixtures/mats.yml
@@ -11,3 +11,8 @@
name: Mat1
tournament_id: 1
id: 1
+
+ two:
+ name: 1
+ tournament_id: 2
+ id: 2
diff --git a/test/fixtures/schools.yml b/test/fixtures/schools.yml
index e9359b1..5887553 100644
--- a/test/fixtures/schools.yml
+++ b/test/fixtures/schools.yml
@@ -10,4 +10,8 @@ two:
name: Grove City
tournament_id: 1
+three:
+ id: 3
+ name: Central Crossing
+ tournament_id: 2
diff --git a/test/fixtures/tournaments.yml b/test/fixtures/tournaments.yml
index 099200b..b573534 100644
--- a/test/fixtures/tournaments.yml
+++ b/test/fixtures/tournaments.yml
@@ -9,4 +9,13 @@ one:
tournament_type: Pool to bracket
user_id: 1
+two:
+ id: 2
+ name: Comet Classic 2
+ address: Some Place
+ director: Jacob Cody Wimer
+ director_email: jacob.wimer@gmail.com
+ tournament_type: Pool to bracket
+ user_id: 1
+
diff --git a/test/fixtures/weights.yml b/test/fixtures/weights.yml
index 51d0555..6acf337 100644
--- a/test/fixtures/weights.yml
+++ b/test/fixtures/weights.yml
@@ -26,4 +26,7 @@ five:
tournament_id: 1
-
+six:
+ id: 6
+ max: 285
+ tournament_id: 1
diff --git a/test/fixtures/wrestlers.yml b/test/fixtures/wrestlers.yml
index e8cff9d..e07dd47 100644
--- a/test/fixtures/wrestlers.yml
+++ b/test/fixtures/wrestlers.yml
@@ -430,4 +430,58 @@ fourtyeight:
original_seed: 16
season_loss: 2
season_win: 50
+ criteria:
+
+fourtynine:
+ name: Guy38
+ school_id: 1
+ weight_id: 6
+ original_seed: 1
+ season_loss: 2
+ season_win: 50
+ criteria:
+
+fourtynine:
+ name: Guy39
+ school_id: 1
+ weight_id: 6
+ original_seed: 2
+ season_loss: 2
+ season_win: 50
+ criteria:
+
+fifty:
+ name: Guy40
+ school_id: 1
+ weight_id: 6
+ original_seed:
+ season_loss: 2
+ season_win: 50
+ criteria:
+
+fiftyone:
+ name: Guy41
+ school_id: 1
+ weight_id: 6
+ original_seed:
+ season_loss: 2
+ season_win: 50
+ criteria:
+
+fiftytwo:
+ name: Guy42
+ school_id: 1
+ weight_id: 6
+ original_seed:
+ season_loss: 2
+ season_win: 50
+ criteria:
+
+fiftythree:
+ name: Guy43
+ school_id: 1
+ weight_id: 6
+ original_seed:
+ season_loss: 2
+ season_win: 50
criteria:
\ No newline at end of file
diff --git a/test/integration/pool_advancement_test.rb b/test/integration/pool_advancement_test.rb
index c78ff71..1f2556d 100644
--- a/test/integration/pool_advancement_test.rb
+++ b/test/integration/pool_advancement_test.rb
@@ -536,15 +536,12 @@ class PoolAdvancementTest < ActionDispatch::IntegrationTest
assert_equal 12, wrestler.placementPoints
end
- test "advancement points fourPoolsToSemi Semis" do
+ test "advancement points fourPoolsToSemi Semis and Conso Semis" do
sixteenManToSemi
wrestler = Wrestler.where("name = ?", "Guy22").first
assert_equal 9, wrestler.placementPoints
- end
-
- test "advancement points fourPoolsToSemi Conso Semis" do
- sixteenManToSemi
+
wrestler = Wrestler.where("name = ?", "Guy29").first
assert_equal 3, wrestler.placementPoints
diff --git a/test/integration/poolbracket_matchups_test.rb b/test/integration/poolbracket_matchups_test.rb
index 573083d..cc216ef 100644
--- a/test/integration/poolbracket_matchups_test.rb
+++ b/test/integration/poolbracket_matchups_test.rb
@@ -256,5 +256,12 @@ class PoolbracketMatchupsTest < ActionDispatch::IntegrationTest
assert_equal lastRound, m.round
end
end
-
+
+ test "Random seeding works" do
+ weight = Weight.find(6)
+ wrestlersWithoutSeed = weight.wrestlers.select{|w| w.seed == nil }.size
+
+ assert_equal 0, wrestlersWithoutSeed
+ end
+
end