Don't crash on no latest sync

This makes the template function timeSince a little more forgiving of
situations where we don't have a latest time for sync because it's never
happened.
This commit is contained in:
Eli Ribble 2025-11-11 20:09:47 +00:00
parent a2e67e3d60
commit 1a2e9f8a18
No known key found for this signature in database

13
html.go
View file

@ -71,7 +71,7 @@ type ContentDashboard struct {
CountInspections int CountInspections int
CountMosquitoSources int CountMosquitoSources int
CountServiceRequests int CountServiceRequests int
LastSync time.Time LastSync *time.Time
Org string Org string
RecentRequests []ServiceRequestSummary RecentRequests []ServiceRequestSummary
User User User User
@ -130,7 +130,7 @@ func htmlDashboard(ctx context.Context, w http.ResponseWriter, user *models.User
respondError(w, "Failed to get org", err, http.StatusInternalServerError) respondError(w, "Failed to get org", err, http.StatusInternalServerError)
return return
} }
var lastSync time.Time var lastSync *time.Time
sync, err := org.FieldseekerSyncs(sm.OrderBy("created")).One(ctx, PGInstance.BobDB) sync, err := org.FieldseekerSyncs(sm.OrderBy("created")).One(ctx, PGInstance.BobDB)
if err != nil { if err != nil {
if err.Error() != "sql: no rows in result set" { if err.Error() != "sql: no rows in result set" {
@ -138,7 +138,7 @@ func htmlDashboard(ctx context.Context, w http.ResponseWriter, user *models.User
return return
} }
} else { } else {
lastSync = sync.Created lastSync = &sync.Created
} }
inspectionCount, err := org.FSMosquitoinspections().Count(ctx, PGInstance.BobDB) inspectionCount, err := org.FSMosquitoinspections().Count(ctx, PGInstance.BobDB)
if err != nil { if err != nil {
@ -400,9 +400,12 @@ func timeElapsed(seconds null.Val[float32]) string {
} }
} }
func timeSince(t time.Time) string { func timeSince(t *time.Time) string {
if t == nil {
return "never"
}
now := time.Now() now := time.Now()
diff := now.Sub(t) diff := now.Sub(*t)
hours := diff.Hours() hours := diff.Hours()
slog.Info("time since", slog.String("t", t.String()), slog.Float64("hours", hours)) slog.Info("time since", slog.String("t", t.String()), slog.Float64("hours", hours))