From 70e42673451a858a2a930d236a1410f5436d2078 Mon Sep 17 00:00:00 2001 From: Cory Pride Date: Fri, 12 Jun 2026 10:43:24 -0500 Subject: [PATCH] fix: take attendance/ edit attendance --- backend/src/models/program_classes.go | 1 + backend/src/services/classes.go | 19 +++++++++++++++++++ frontend/src/pages/Dashboard.tsx | 14 ++++++++++++-- frontend/src/types/program.ts | 1 + 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/backend/src/models/program_classes.go b/backend/src/models/program_classes.go index 7047b62ae..bc21b44aa 100644 --- a/backend/src/models/program_classes.go +++ b/backend/src/models/program_classes.go @@ -59,6 +59,7 @@ type TodaysScheduleItem struct { Date string `json:"date"` StartTime string `json:"start_time"` Room string `json:"room"` + HasAttendance bool `json:"has_attendance"` } func (c *ProgramClass) BeforeCreate(tx *gorm.DB) error { diff --git a/backend/src/services/classes.go b/backend/src/services/classes.go index 7b55e5c68..b854b19f7 100644 --- a/backend/src/services/classes.go +++ b/backend/src/services/classes.go @@ -336,6 +336,25 @@ func (svc *ClassesService) GetTodaysSchedule(args *models.QueryContext, facility } } + if len(items) > 0 { + eventIDs := make([]uint, 0, len(items)) + dates := make([]string, 0, len(items)) + for _, item := range items { + eventIDs = append(eventIDs, item.EventID) + dates = append(dates, item.Date) + } + attendanceCounts, err := svc.db.GetAttendanceCountsForEvents(args, eventIDs, dates) + if err == nil { + taken := make(map[string]bool) + for _, ac := range attendanceCounts { + taken[fmt.Sprintf("%d|%s", ac.EventID, ac.Date)] = true + } + for i, item := range items { + items[i].HasAttendance = taken[fmt.Sprintf("%d|%s", item.EventID, item.Date)] + } + } + } + sort.Slice(items, func(i, j int) bool { if items[i].Date == items[j].Date { //sorting by date, time, then by name if items[i].StartTime == items[j].StartTime { diff --git a/frontend/src/pages/Dashboard.tsx b/frontend/src/pages/Dashboard.tsx index 6a14f92ed..569d42ded 100644 --- a/frontend/src/pages/Dashboard.tsx +++ b/frontend/src/pages/Dashboard.tsx @@ -377,13 +377,23 @@ function TodaysSchedule({ ); diff --git a/frontend/src/types/program.ts b/frontend/src/types/program.ts index d8b0f3aa7..a75c2a177 100644 --- a/frontend/src/types/program.ts +++ b/frontend/src/types/program.ts @@ -178,6 +178,7 @@ export interface TodaysScheduleItem { date: string; start_time: string; room: string; + has_attendance?: boolean; } export interface ClassMetrics {