implemented radio button system for entering the games
This commit is contained in:
@@ -54,10 +54,16 @@ func postEnter(c *gin.Context) {
|
||||
}
|
||||
|
||||
// Parse form
|
||||
a1h := strings.TrimSpace(c.PostForm("a1"))
|
||||
a2h := strings.TrimSpace(c.PostForm("a2"))
|
||||
b1h := strings.TrimSpace(c.PostForm("b1"))
|
||||
b2h := strings.TrimSpace(c.PostForm("b2"))
|
||||
p1h := strings.TrimSpace(c.PostForm("p1"))
|
||||
p2h := strings.TrimSpace(c.PostForm("p2"))
|
||||
p3h := strings.TrimSpace(c.PostForm("p3"))
|
||||
p4h := strings.TrimSpace(c.PostForm("p4"))
|
||||
|
||||
p1t := strings.TrimSpace(c.PostForm("team_p1"))
|
||||
p2t := strings.TrimSpace(c.PostForm("team_p2"))
|
||||
p3t := strings.TrimSpace(c.PostForm("team_p3"))
|
||||
p4t := strings.TrimSpace(c.PostForm("team_p4"))
|
||||
|
||||
scoreA := atoiSafe(c.PostForm("scoreA"))
|
||||
scoreB := atoiSafe(c.PostForm("scoreB"))
|
||||
|
||||
@@ -84,25 +90,46 @@ func postEnter(c *gin.Context) {
|
||||
return u, nil
|
||||
}
|
||||
|
||||
var a1, a2, b1, b2 *User
|
||||
var p1, p2, p3, p4 *User
|
||||
|
||||
// Always ensure A1 exists, fallback to current if empty
|
||||
var err error
|
||||
if a1, err = resolveUser(a1h); err != nil {
|
||||
if p1, err = resolveUser(p1h); err != nil {
|
||||
return
|
||||
}
|
||||
if a2, err = resolveUser(a2h); err != nil {
|
||||
if p2, err = resolveUser(p2h); err != nil {
|
||||
return
|
||||
}
|
||||
if b1, err = resolveUser(b1h); err != nil {
|
||||
if p3, err = resolveUser(p3h); err != nil {
|
||||
return
|
||||
}
|
||||
if b2, err = resolveUser(b2h); err != nil {
|
||||
if p4, err = resolveUser(p4h); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// Generate raw teams
|
||||
var players []Player
|
||||
var team1ps, team2ps []Player
|
||||
users := []*User{p1, p2, p3, p4}
|
||||
sides := []string{p1t, p2t, p3t, p4t}
|
||||
var playerbuf []float64
|
||||
|
||||
for i, u := range users {
|
||||
if u != nil {
|
||||
if sides[i] == "A" || sides[i] == "B" {
|
||||
players = append(players, Player{u, sides[i], 0})
|
||||
playerbuf = append(playerbuf, u.Elo)
|
||||
if sides[i] == "A" {
|
||||
team1ps = append(team1ps, Player{u, sides[i], 0})
|
||||
} else {
|
||||
team2ps = append(team2ps, Player{u, sides[i], 0})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for at least one player on each side
|
||||
if b1 == nil && b2 == nil || a1 == nil && a2 == nil {
|
||||
if len(team1ps) == 0 || len(team2ps) == 0 {
|
||||
SaveForm(c)
|
||||
SetMessage(c, "There must be at least one player on each side")
|
||||
c.Redirect(http.StatusSeeOther, "/enter")
|
||||
@@ -111,7 +138,6 @@ func postEnter(c *gin.Context) {
|
||||
|
||||
// Check for duplicate users
|
||||
seen := map[uint]bool{}
|
||||
users := []*User{a1, a2, b1, b2}
|
||||
for i, u := range users {
|
||||
if u != nil {
|
||||
if seen[u.ID] {
|
||||
@@ -148,25 +174,8 @@ func postEnter(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
var players []Player
|
||||
fmt.Println("Len players", len(players))
|
||||
var playerbuf []float64
|
||||
for i, user := range users {
|
||||
if user != nil {
|
||||
var side string
|
||||
if i > 1 {
|
||||
side = "B"
|
||||
} else {
|
||||
side = "A"
|
||||
}
|
||||
players = append(players, Player{u: user, side: side, dElo: 0})
|
||||
playerbuf = append(playerbuf, user.Elo)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
team1 := NewTeam(players[:len(players)/2], g.ScoreA)
|
||||
team2 := NewTeam(players[len(players)/2:], g.ScoreB)
|
||||
team1 := NewTeam(team1ps, g.ScoreA)
|
||||
team2 := NewTeam(team2ps, g.ScoreB)
|
||||
|
||||
// Set new elo for all players
|
||||
GetNewElo([]*Team{team1, team2})
|
||||
|
||||
Reference in New Issue
Block a user