- if currentHeat.Lane1ID != nil {
- @raceLaneInfo(1, *currentHeat.Lane1ID, racers, currentResult)
+ if heatData.Lane1 != nil {
+ @raceLaneInfo(*heatData.Lane1)
}
- if currentHeat.Lane2ID != nil {
- @raceLaneInfo(2, *currentHeat.Lane2ID, racers, currentResult)
+ if heatData.Lane2 != nil {
+ @raceLaneInfo(*heatData.Lane2)
}
- if currentHeat.Lane3ID != nil {
- @raceLaneInfo(3, *currentHeat.Lane3ID, racers, currentResult)
+ if heatData.Lane3 != nil {
+ @raceLaneInfo(*heatData.Lane3)
}
- if currentHeat.Lane4ID != nil {
- @raceLaneInfo(4, *currentHeat.Lane4ID, racers, currentResult)
+ if heatData.Lane4 != nil {
+ @raceLaneInfo(*heatData.Lane4)
}
@@ -376,51 +167,21 @@ templ currentHeatDisplay(heats []models.Heat, racers []models.Racer, currentHeat
}
// Helper template for displaying a lane in the race manager
-templ raceLaneInfo(lane int, racerID int64, racers []models.Racer, result *models.HeatResult) {
- {{
- // Find the racer
- var racer models.Racer
- for _, r := range racers {
- if r.ID == racerID {
- racer = r
- break
- }
- }
-
- // Get time and position from result if available
- var timeStr string = "--.-"
- var positionStr string = "-"
-
- if result != nil {
- if lane == 1 && result.Lane1Time > 0 {
- timeStr = fmt.Sprintf("%.4f", result.Lane1Time)
- positionStr = strconv.Itoa(result.Lane1Position)
- } else if lane == 2 && result.Lane2Time > 0 {
- timeStr = fmt.Sprintf("%.4f", result.Lane2Time)
- positionStr = strconv.Itoa(result.Lane2Position)
- } else if lane == 3 && result.Lane3Time > 0 {
- timeStr = fmt.Sprintf("%.4f", result.Lane3Time)
- positionStr = strconv.Itoa(result.Lane3Position)
- } else if lane == 4 && result.Lane4Time > 0 {
- timeStr = fmt.Sprintf("%.4f", result.Lane4Time)
- positionStr = strconv.Itoa(result.Lane4Position)
- }
- }
- }}
+templ raceLaneInfo(laneData models.LaneData) {
-
{ racer.FirstName } { racer.LastName }
-
Car #: { racer.CarNumber }
+
{ laneData.Name }
+
Car #: { laneData.CarNum }
- Time: { timeStr }
+ Time: { fmt.Sprintf("%.3f", laneData.Time) }
- Position: { positionStr }
+ Position: { strconv.Itoa(laneData.Place) }
@@ -429,20 +190,10 @@ templ raceLaneInfo(lane int, racerID int64, racers []models.Racer, result *model
}
// Helper template for displaying a racer in the next heat
-templ nextHeatRacer(lane int, racerID int64, racers []models.Racer) {
- {{
- // Find racer
- var racer models.Racer
- for _, r := range racers {
- if r.ID == racerID {
- racer = r
- break
- }
- }
- }}
+templ nextHeatRacer(laneData models.LaneData) {
- | { strconv.Itoa(lane) } |
- { racer.FirstName } { racer.LastName } |
- { racer.CarNumber } |
+ { strconv.Itoa(laneData.Lane) } |
+ { laneData.Name } |
+ { laneData.CarNum } |
}
\ No newline at end of file
diff --git a/web/templates/race_manage_templ.go b/web/templates/race_manage_templ.go
index 7c1b8bf..f1d78ef 100644
--- a/web/templates/race_manage_templ.go
+++ b/web/templates/race_manage_templ.go
@@ -15,7 +15,7 @@ import (
)
// RaceManage renders the race management view
-func RaceManage(groups []models.Group, currentGroup models.Group, heats []models.Heat, racers []models.Racer, currentHeatNum int, results []models.HeatResult) templ.Component {
+func RaceManage(heatData *models.HeatData, nextHeat *models.HeatData, groups []models.Group, results []models.HeatResult) templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
@@ -70,7 +70,7 @@ func RaceManage(groups []models.Group, currentGroup models.Group, heats []models
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- if group.ID == currentGroup.ID {
+ if group.ID == heatData.Group.ID {
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " selected")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
@@ -99,9 +99,9 @@ func RaceManage(groups []models.Group, currentGroup models.Group, heats []models
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var5 string
- templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(currentHeatNum))
+ templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(heatData.HeatNumber))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 32, Col: 80}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 32, Col: 85}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
if templ_7745c5c3_Err != nil {
@@ -112,9 +112,9 @@ func RaceManage(groups []models.Group, currentGroup models.Group, heats []models
return templ_7745c5c3_Err
}
var templ_7745c5c3_Var6 string
- templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(len(heats)))
+ templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(heatData.TotalHeats))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 32, Col: 112}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 32, Col: 126}
}
_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6))
if templ_7745c5c3_Err != nil {
@@ -124,7 +124,7 @@ func RaceManage(groups []models.Group, currentGroup models.Group, heats []models
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- if currentHeatNum <= 1 {
+ if heatData.HeatNumber <= 1 {
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, " disabled")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
@@ -134,7 +134,7 @@ func RaceManage(groups []models.Group, currentGroup models.Group, heats []models
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- if currentHeatNum >= len(heats) {
+ if heatData.HeatNumber >= heatData.TotalHeats {
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, " disabled")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
@@ -289,7 +289,7 @@ func RaceManage(groups []models.Group, currentGroup models.Group, heats []models
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = currentHeatDisplay(heats, racers, currentHeatNum, results).Render(ctx, templ_7745c5c3_Buffer)
+ templ_7745c5c3_Err = currentHeatDisplay(heatData).Render(ctx, templ_7745c5c3_Buffer)
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -297,70 +297,54 @@ func RaceManage(groups []models.Group, currentGroup models.Group, heats []models
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- if currentHeatNum < len(heats) {
+ if nextHeat != nil {
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "
| Lane | Racer | Car # |
")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- for _, heat := range heats {
- if heat.HeatNum == currentHeatNum+1 {
- if heat.Lane1ID != nil {
- templ_7745c5c3_Err = nextHeatRacer(1, *heat.Lane1ID, racers).Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- }
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, " ")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- if heat.Lane2ID != nil {
- templ_7745c5c3_Err = nextHeatRacer(2, *heat.Lane2ID, racers).Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- }
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, " ")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- if heat.Lane3ID != nil {
- templ_7745c5c3_Err = nextHeatRacer(3, *heat.Lane3ID, racers).Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- }
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, " ")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- if heat.Lane4ID != nil {
- templ_7745c5c3_Err = nextHeatRacer(4, *heat.Lane4ID, racers).Render(ctx, templ_7745c5c3_Buffer)
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- }
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "| Lane | Racer | Car # |
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ if nextHeat.Lane1 != nil {
+ templ_7745c5c3_Err = raceNextHeatRow(*nextHeat.Lane1).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
}
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "
")
+ if nextHeat.Lane2 != nil {
+ templ_7745c5c3_Err = raceNextHeatRow(*nextHeat.Lane2).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ if nextHeat.Lane3 != nil {
+ templ_7745c5c3_Err = raceNextHeatRow(*nextHeat.Lane3).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ if nextHeat.Lane4 != nil {
+ templ_7745c5c3_Err = raceNextHeatRow(*nextHeat.Lane4).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "
")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "
")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "
")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -375,7 +359,7 @@ func RaceManage(groups []models.Group, currentGroup models.Group, heats []models
}
// Find the current heat
-func currentHeatDisplay(heats []models.Heat, racers []models.Racer, currentHeatNum int, results []models.HeatResult) templ.Component {
+func currentHeatDisplay(heatData *models.HeatData) templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
@@ -396,66 +380,48 @@ func currentHeatDisplay(heats []models.Heat, racers []models.Racer, currentHeatN
templ_7745c5c3_Var19 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
-
- // Find the current heat
- var currentHeat models.Heat
- for _, heat := range heats {
- if heat.HeatNum == currentHeatNum {
- currentHeat = heat
- break
- }
- }
-
- // Find the current result
- var currentResult *models.HeatResult
- for _, result := range results {
- if result.HeatNumber == currentHeatNum {
- currentResult = &result
- break
- }
- }
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "
")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -464,7 +430,7 @@ func currentHeatDisplay(heats []models.Heat, racers []models.Racer, currentHeatN
}
// Helper template for displaying a lane in the race manager
-func raceLaneInfo(lane int, racerID int64, racers []models.Racer, result *models.HeatResult) templ.Component {
+func raceLaneInfo(laneData models.LaneData) templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
@@ -485,114 +451,72 @@ func raceLaneInfo(lane int, racerID int64, racers []models.Racer, result *models
templ_7745c5c3_Var21 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
-
- // Find the racer
- var racer models.Racer
- for _, r := range racers {
- if r.ID == racerID {
- racer = r
- break
- }
- }
-
- // Get time and position from result if available
- var timeStr string = "--.-"
- var positionStr string = "-"
-
- if result != nil {
- if lane == 1 && result.Lane1Time > 0 {
- timeStr = fmt.Sprintf("%.4f", result.Lane1Time)
- positionStr = strconv.Itoa(result.Lane1Position)
- } else if lane == 2 && result.Lane2Time > 0 {
- timeStr = fmt.Sprintf("%.4f", result.Lane2Time)
- positionStr = strconv.Itoa(result.Lane2Position)
- } else if lane == 3 && result.Lane3Time > 0 {
- timeStr = fmt.Sprintf("%.4f", result.Lane3Time)
- positionStr = strconv.Itoa(result.Lane3Position)
- } else if lane == 4 && result.Lane4Time > 0 {
- timeStr = fmt.Sprintf("%.4f", result.Lane4Time)
- positionStr = strconv.Itoa(result.Lane4Position)
- }
- }
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "
")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
@@ -601,7 +525,7 @@ func raceLaneInfo(lane int, racerID int64, racers []models.Racer, result *models
}
// Helper template for displaying a racer in the next heat
-func nextHeatRacer(lane int, racerID int64, racers []models.Racer) templ.Component {
+func nextHeatRacer(laneData models.LaneData) templ.Component {
return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
@@ -617,73 +541,51 @@ func nextHeatRacer(lane int, racerID int64, racers []models.Racer) templ.Compone
}()
}
ctx = templ.InitializeContext(ctx)
- templ_7745c5c3_Var28 := templ.GetChildren(ctx)
- if templ_7745c5c3_Var28 == nil {
- templ_7745c5c3_Var28 = templ.NopComponent
+ templ_7745c5c3_Var27 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var27 == nil {
+ templ_7745c5c3_Var27 = templ.NopComponent
}
ctx = templ.ClearChildren(ctx)
-
- // Find racer
- var racer models.Racer
- for _, r := range racers {
- if r.ID == racerID {
- racer = r
- break
- }
- }
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "
| ")
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- var templ_7745c5c3_Var29 string
- templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(lane))
- if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 444, Col: 32}
- }
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
- if templ_7745c5c3_Err != nil {
- return templ_7745c5c3_Err
- }
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, " | ")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, " |
| ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var30 string
- templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(racer.FirstName)
+ var templ_7745c5c3_Var28 string
+ templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(laneData.Lane))
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 445, Col: 29}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 195, Col: 41}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, " ")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, " | ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var31 string
- templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(racer.LastName)
+ var templ_7745c5c3_Var29 string
+ templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(laneData.Name)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 445, Col: 48}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 196, Col: 27}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31))
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, " | ")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, " | ")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- var templ_7745c5c3_Var32 string
- templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(racer.CarNumber)
+ var templ_7745c5c3_Var30 string
+ templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(laneData.CarNum)
if templ_7745c5c3_Err != nil {
- return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 446, Col: 29}
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/race_manage.templ`, Line: 197, Col: 29}
}
- _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32))
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30))
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}
- templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, " |
")
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "")
if templ_7745c5c3_Err != nil {
return templ_7745c5c3_Err
}