From 4dbe85d0055a1db08165a9ed06b9b3033ca1b191 Mon Sep 17 00:00:00 2001 From: Dustin Pianalto Date: Thu, 6 Mar 2025 18:49:58 -0900 Subject: [PATCH] fixed stuff --- web/server.go | 2 +- web/templates/heats.templ | 28 ++++----- web/templates/heats_templ.go | 112 +++++++++++++++-------------------- 3 files changed, 62 insertions(+), 80 deletions(-) diff --git a/web/server.go b/web/server.go index c8c23ad..4b837c7 100644 --- a/web/server.go +++ b/web/server.go @@ -697,7 +697,7 @@ func (s *Server) handleHeats() http.HandlerFunc { } // Render template - component := templates.Heats(groups, racers, selectedGroupID) + component := templates.Heats(groups, racers, selectedGroupID, s.db) if err := component.Render(r.Context(), w); err != nil { s.logger.Error("Failed to render heats template", "error", err) http.Error(w, "Failed to render page", http.StatusInternalServerError) diff --git a/web/templates/heats.templ b/web/templates/heats.templ index 4f38979..d4aac75 100644 --- a/web/templates/heats.templ +++ b/web/templates/heats.templ @@ -3,9 +3,11 @@ package templates import ( "strconv" "track-gopher/models" + "track-gopher/db" + "track-gopher/derby" ) -templ Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64) { +templ Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64, db *db.DB) { @Layout("Race Heats") {

Race Heats Generator

@@ -32,7 +34,7 @@ templ Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64)
if selectedGroupID > 0 { - @HeatsContent(selectedGroupID, groups, racers) + @HeatsContent(selectedGroupID, groups, db) } else {

Please select a group to generate heats.

@@ -43,14 +45,9 @@ templ Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64) } } -templ HeatsContent(groupID int64, groups []models.Group, allRacers []models.Racer) { +templ HeatsContent(groupID int64, groups []models.Group, db *db.DB) { // Filter racers by group - var groupRacers []models.Racer - for _, racer := range allRacers { - if racer.GroupID == groupID { - groupRacers = append(groupRacers, racer) - } - } + {{ groupRacers, _ := db.GetRacersByGroup(groupID) }}
@@ -92,13 +89,14 @@ templ HeatsContent(groupID int64, groups []models.Group, allRacers []models.Race templ GeneratedHeats(racers []models.Racer) { // Convert db.Racer to derby.Racer for heat generation - var derbyRacers []derby.Racer - for _, racer := range racers { - derbyRacers = append(derbyRacers, derby.CreateRacer(racer.ID, racer.FirstName, racer.LastName, racer.CarNumber)) - } - - var heats = derby.GenerateHeats(derbyRacers) + {{ + var derbyRacers []derby.Racer + for _, racer := range racers { + derbyRacers = append(derbyRacers, derby.CreateRacer(racer.ID, racer.FirstName, racer.LastName, racer.CarNumber)) + } + var heats = derby.GenerateHeats(derbyRacers) + }} if len(heats) == 0 {

No heats could be generated. Please add more racers.

diff --git a/web/templates/heats_templ.go b/web/templates/heats_templ.go index e8480e7..708792e 100644 --- a/web/templates/heats_templ.go +++ b/web/templates/heats_templ.go @@ -10,10 +10,12 @@ import templruntime "github.com/a-h/templ/runtime" import ( "strconv" + "track-gopher/db" + "track-gopher/derby" "track-gopher/models" ) -func Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64) templ.Component { +func Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64, db *db.DB) 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 { @@ -58,7 +60,7 @@ func Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64) var templ_7745c5c3_Var3 string templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.FormatInt(group.ID, 10)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 26, Col: 53} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 28, Col: 53} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) if templ_7745c5c3_Err != nil { @@ -81,7 +83,7 @@ func Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64) var templ_7745c5c3_Var4 string templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(group.Name) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 27, Col: 19} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 29, Col: 19} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) if templ_7745c5c3_Err != nil { @@ -97,7 +99,7 @@ func Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64) return templ_7745c5c3_Err } if selectedGroupID > 0 { - templ_7745c5c3_Err = HeatsContent(selectedGroupID, groups, racers).Render(ctx, templ_7745c5c3_Buffer) + templ_7745c5c3_Err = HeatsContent(selectedGroupID, groups, db).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -121,7 +123,7 @@ func Heats(groups []models.Group, racers []models.Racer, selectedGroupID int64) }) } -func HeatsContent(groupID int64, groups []models.Group, allRacers []models.Racer) templ.Component { +func HeatsContent(groupID int64, groups []models.Group, db *db.DB) 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 { @@ -142,81 +144,70 @@ func HeatsContent(groupID int64, groups []models.Group, allRacers []models.Racer templ_7745c5c3_Var5 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "var groupRacers []models.Racer ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, racer := range allRacers { - if racer.GroupID == groupID { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "groupRacers = append(groupRacers, racer)") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "

Heats for ") + groupRacers, _ := db.GetRacersByGroup(groupID) + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "

Heats for ") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var6 string templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(getGroupName(groups, groupID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 58, Col: 45} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 55, Col: 45} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, " (") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, " (") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var7 string templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(len(groupRacers))) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 58, Col: 81} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 55, Col: 81} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, " racers)

") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "\" hx-target=\"#save-status\">Save Heats

") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } if len(groupRacers) == 0 { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "

No racers in this group. Add racers to generate heats.

") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "

No racers in this group. Add racers to generate heats.

") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } } else { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -224,12 +215,12 @@ func HeatsContent(groupID int64, groups []models.Group, allRacers []models.Racer if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -258,154 +249,147 @@ func GeneratedHeats(racers []models.Racer) templ.Component { templ_7745c5c3_Var10 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "var derbyRacers []derby.Racer ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } + + var derbyRacers []derby.Racer for _, racer := range racers { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "derbyRacers = append(derbyRacers, derby.CreateRacer(racer.ID, racer.FirstName, racer.LastName, racer.CarNumber)) ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "var heats = derby.GenerateHeats(derbyRacers) ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err + derbyRacers = append(derbyRacers, derby.CreateRacer(racer.ID, racer.FirstName, racer.LastName, racer.CarNumber)) } + + var heats = derby.GenerateHeats(derbyRacers) if len(heats) == 0 { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "

No heats could be generated. Please add more racers.

") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "

No heats could be generated. Please add more racers.

") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } } else { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 20, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } for _, heat := range heats { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "

Heat ") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 21, "

Heat ") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var11 string templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(strconv.Itoa(heat.HeatNum)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 110, Col: 77} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 108, Col: 77} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "

LaneRacerCar #
1") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "
LaneRacerCar #
1") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var12 string templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(getRacerName(racers, heat.Lane1ID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 122, Col: 66} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 120, Col: 66} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 23, "") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var13 string templ_7745c5c3_Var13, templ_7745c5c3_Err = templ.JoinStringErrs(getRacerCarNumber(racers, heat.Lane1ID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 123, Col: 71} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 121, Col: 71} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "
2") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 24, "
2") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var14 string templ_7745c5c3_Var14, templ_7745c5c3_Err = templ.JoinStringErrs(getRacerName(racers, heat.Lane2ID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 127, Col: 66} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 125, Col: 66} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 25, "") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var15 string templ_7745c5c3_Var15, templ_7745c5c3_Err = templ.JoinStringErrs(getRacerCarNumber(racers, heat.Lane2ID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 128, Col: 71} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 126, Col: 71} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var15)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "
3") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 26, "
3") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var16 string templ_7745c5c3_Var16, templ_7745c5c3_Err = templ.JoinStringErrs(getRacerName(racers, heat.Lane3ID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 132, Col: 66} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 130, Col: 66} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var16)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var17 string templ_7745c5c3_Var17, templ_7745c5c3_Err = templ.JoinStringErrs(getRacerCarNumber(racers, heat.Lane3ID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 133, Col: 71} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 131, Col: 71} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var17)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "
4") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "
4") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var18 string templ_7745c5c3_Var18, templ_7745c5c3_Err = templ.JoinStringErrs(getRacerName(racers, heat.Lane4ID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 137, Col: 66} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 135, Col: 66} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var18)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } var templ_7745c5c3_Var19 string templ_7745c5c3_Var19, templ_7745c5c3_Err = templ.JoinStringErrs(getRacerCarNumber(racers, heat.Lane4ID)) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 138, Col: 71} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `web/templates/heats.templ`, Line: 136, Col: 71} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var19)) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "

") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err }