mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-04-10 15:50:50 +00:00
Wrestler pool number is now saved in db. Pool number generation moved to it's own class.
This commit is contained in:
@@ -130,7 +130,7 @@ class Match < ActiveRecord::Base
|
||||
end
|
||||
def poolNumber
|
||||
if self.w1?
|
||||
wrestler1.generatePoolNumber
|
||||
wrestler1.pool
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -17,8 +17,13 @@ class Weight < ActiveRecord::Base
|
||||
# self.tournament.destroyAllMatches
|
||||
end
|
||||
|
||||
def wrestlersForPool(pool)
|
||||
self.wrestlers.select{|w| w.generatePoolNumber == pool}
|
||||
def wrestlersForPool(poolNumber)
|
||||
#For some reason this does not work
|
||||
# wrestlers.select{|w| w.pool == poolNumber}
|
||||
|
||||
#This does...
|
||||
weightWrestlers = Wrestler.where(:weight_id => self.id)
|
||||
weightWrestlers.select{|w| w.pool == poolNumber}
|
||||
end
|
||||
|
||||
def allPoolMatchesFinished(pool)
|
||||
@@ -43,7 +48,8 @@ class Weight < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def poolSeedOrder(pool)
|
||||
wrestlersForPool(pool).sort_by{|w| [w.original_seed ? 0 : 1, w.original_seed || 0]}
|
||||
# wrestlersForPool(pool).sort_by{|w| [w.original_seed ? 0 : 1, w.original_seed || 0]}
|
||||
return wrestlersForPool(pool).sort_by{|w|w.seed}
|
||||
end
|
||||
|
||||
|
||||
@@ -51,79 +57,6 @@ class Weight < ActiveRecord::Base
|
||||
SwapWrestlers.new.swapWrestlers(wrestler1_id,wrestler2_id)
|
||||
end
|
||||
|
||||
def returnPoolNumber(wrestler)
|
||||
if self.pools == 4
|
||||
@wrestlers = fourPoolNumbers(self.wrestlers)
|
||||
elsif self.pools == 2
|
||||
@wrestlers = twoPoolNumbers(self.wrestlers)
|
||||
elsif self.pools == 1
|
||||
@wrestlers = onePoolNumbers(self.wrestlers)
|
||||
end
|
||||
@wrestler = @wrestlers.select{|w| w.id == wrestler.id}.first
|
||||
return @wrestler.poolNumber
|
||||
end
|
||||
|
||||
def onePoolNumbers(poolWrestlers)
|
||||
poolWrestlers.sort_by{|x| x.seed }.each do |w|
|
||||
w.poolNumber = 1
|
||||
end
|
||||
return poolWrestlers
|
||||
end
|
||||
|
||||
|
||||
def twoPoolNumbers(poolWrestlers)
|
||||
pool = 1
|
||||
poolWrestlers.sort_by{|x| x.seed }.reverse.each do |w|
|
||||
if w.seed == 1
|
||||
w.poolNumber = 1
|
||||
elsif w.seed == 2
|
||||
w.poolNumber = 2
|
||||
elsif w.seed == 3
|
||||
w.poolNumber = 2
|
||||
elsif w.seed == 4
|
||||
w.poolNumber = 1
|
||||
else
|
||||
w.poolNumber = pool
|
||||
end
|
||||
if pool < 2
|
||||
pool = pool + 1
|
||||
else
|
||||
pool = 1
|
||||
end
|
||||
end
|
||||
return poolWrestlers
|
||||
end
|
||||
|
||||
def fourPoolNumbers(poolWrestlers)
|
||||
pool = 1
|
||||
poolWrestlers.sort_by{|x| x.seed }.reverse.each do |w|
|
||||
if w.seed == 1
|
||||
w.poolNumber = 1
|
||||
elsif w.seed == 2
|
||||
w.poolNumber = 2
|
||||
elsif w.seed == 3
|
||||
w.poolNumber = 3
|
||||
elsif w.seed == 4
|
||||
w.poolNumber = 4
|
||||
elsif w.seed == 8
|
||||
w.poolNumber = 1
|
||||
elsif w.seed == 7
|
||||
w.poolNumber = 2
|
||||
elsif w.seed == 6
|
||||
w.poolNumber = 3
|
||||
elsif w.seed == 5
|
||||
w.poolNumber = 4
|
||||
else
|
||||
w.poolNumber = pool
|
||||
end
|
||||
if pool < 4
|
||||
pool = pool + 1
|
||||
else
|
||||
pool = 1
|
||||
end
|
||||
end
|
||||
return poolWrestlers
|
||||
end
|
||||
|
||||
def bracket_size
|
||||
wrestlers.size
|
||||
|
||||
@@ -4,7 +4,7 @@ class Wrestler < ActiveRecord::Base
|
||||
has_one :tournament, through: :weight
|
||||
has_many :matches, through: :weight
|
||||
has_many :deductedPoints, class_name: "Teampointadjust"
|
||||
attr_accessor :poolNumber, :poolAdvancePoints, :originalId, :swapId
|
||||
attr_accessor :poolAdvancePoints, :originalId, :swapId
|
||||
|
||||
validates :name, :weight_id, :school_id, presence: true
|
||||
|
||||
@@ -103,10 +103,6 @@ class Wrestler < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def generatePoolNumber
|
||||
self.weight.returnPoolNumber(self)
|
||||
end
|
||||
|
||||
def boutByRound(round)
|
||||
round_match = allMatches.select{|m| m.round == round}.first
|
||||
if round_match.blank?
|
||||
@@ -122,7 +118,7 @@ class Wrestler < ActiveRecord::Base
|
||||
|
||||
def poolMatches
|
||||
pool_matches = allMatches.select{|m| m.bracket_position == "Pool"}
|
||||
pool_matches.select{|m| m.poolNumber == self.generatePoolNumber}
|
||||
pool_matches.select{|m| m.poolNumber == self.pool}
|
||||
end
|
||||
|
||||
def hasAPoolBye
|
||||
|
||||
@@ -6,7 +6,7 @@ class PoolAdvance
|
||||
end
|
||||
|
||||
def advanceWrestler
|
||||
if @wrestler.weight.allPoolMatchesFinished(@wrestler.generatePoolNumber) && @wrestler.finishedBracketMatches.size == 0
|
||||
if @wrestler.weight.allPoolMatchesFinished(@wrestler.pool) && @wrestler.finishedBracketMatches.size == 0
|
||||
poolToBracketAdvancment
|
||||
end
|
||||
if @wrestler.finishedBracketMatches.size > 0
|
||||
@@ -15,7 +15,7 @@ class PoolAdvance
|
||||
end
|
||||
|
||||
def poolToBracketAdvancment
|
||||
pool = @wrestler.generatePoolNumber
|
||||
pool = @wrestler.pool
|
||||
if @wrestler.weight.wrestlers.size > 6
|
||||
poolOrder = @wrestler.weight.poolOrder(pool)
|
||||
#Take pool order and move winner and runner up to correct match based on w1_name and w2_name
|
||||
|
||||
@@ -6,12 +6,13 @@ class PoolGeneration
|
||||
end
|
||||
|
||||
def generatePools
|
||||
GeneratePoolNumbers.new(@weight).savePoolNumbers
|
||||
pools = @weight.pools
|
||||
while @pool <= pools
|
||||
roundRobin
|
||||
@pool += 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def roundRobin
|
||||
wrestlers = @weight.wrestlersForPool(@pool)
|
||||
|
||||
77
app/services/weight_services/generate_pool_numbers.rb
Normal file
77
app/services/weight_services/generate_pool_numbers.rb
Normal file
@@ -0,0 +1,77 @@
|
||||
class GeneratePoolNumbers
|
||||
def initialize( weight )
|
||||
@weight = weight
|
||||
end
|
||||
|
||||
def savePoolNumbers
|
||||
if @weight.pools == 4
|
||||
saveFourPoolNumbers(@weight.wrestlers)
|
||||
elsif @weight.pools == 2
|
||||
saveTwoPoolNumbers(@weight.wrestlers)
|
||||
elsif @weight.pools == 1
|
||||
saveOnePoolNumbers(@weight.wrestlers)
|
||||
end
|
||||
end
|
||||
|
||||
def saveOnePoolNumbers(poolWrestlers)
|
||||
poolWrestlers.sort_by{|x| x.seed }.each do |w|
|
||||
w.pool = 1
|
||||
w.save
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def saveTwoPoolNumbers(poolWrestlers)
|
||||
pool = 1
|
||||
poolWrestlers.sort_by{|x| x.seed }.reverse.each do |w|
|
||||
if w.seed == 1
|
||||
w.pool = 1
|
||||
elsif w.seed == 2
|
||||
w.pool = 2
|
||||
elsif w.seed == 3
|
||||
w.pool = 2
|
||||
elsif w.seed == 4
|
||||
w.pool = 1
|
||||
else
|
||||
w.pool = pool
|
||||
end
|
||||
if pool < 2
|
||||
pool = pool + 1
|
||||
else
|
||||
pool = 1
|
||||
end
|
||||
w.save
|
||||
end
|
||||
end
|
||||
|
||||
def saveFourPoolNumbers(poolWrestlers)
|
||||
pool = 1
|
||||
poolWrestlers.sort_by{|x| x.seed }.reverse.each do |w|
|
||||
if w.seed == 1
|
||||
w.pool = 1
|
||||
elsif w.seed == 2
|
||||
w.pool = 2
|
||||
elsif w.seed == 3
|
||||
w.pool = 3
|
||||
elsif w.seed == 4
|
||||
w.pool = 4
|
||||
elsif w.seed == 8
|
||||
w.pool = 1
|
||||
elsif w.seed == 7
|
||||
w.pool = 2
|
||||
elsif w.seed == 6
|
||||
w.pool = 3
|
||||
elsif w.seed == 5
|
||||
w.pool = 4
|
||||
else
|
||||
w.pool = pool
|
||||
end
|
||||
if pool < 4
|
||||
pool = pool + 1
|
||||
else
|
||||
pool = 1
|
||||
end
|
||||
w.save
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,6 +1,6 @@
|
||||
<% @round = 1 %>
|
||||
<% @pool = 1 %>
|
||||
<% until @wrestlers.select{|w| w.generatePoolNumber == @pool}.blank? %>
|
||||
<% until @wrestlers.select{|w| w.pool == @pool}.blank? %>
|
||||
<h5>Pool <%= @pool %></h5>
|
||||
<table class="table table-striped table-bordered table-condensed">
|
||||
<thead>
|
||||
@@ -15,7 +15,7 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @wrestlers.select{|w| w.generatePoolNumber == @pool}.sort_by{|w| w.seed}.each do |w| %>
|
||||
<% @wrestlers.select{|w| w.pool == @pool}.sort_by{|w| w.seed}.each do |w| %>
|
||||
<tr>
|
||||
<td><%= w.original_seed %> <%= w.name %> <%= w.season_win %>-<%= w.season_loss %> <%= w.school.name %></td>
|
||||
<% @round = 1 %>
|
||||
|
||||
Reference in New Issue
Block a user