added overtime to time and team page + ui improvements + mobile support for team page closed #12

This commit is contained in:
2025-09-04 00:11:33 +02:00
parent 45440b6457
commit 1ae30c11cb
19 changed files with 2138 additions and 387 deletions

View File

@@ -71,6 +71,20 @@ func getBookings(w http.ResponseWriter, r *http.Request) {
return workDays[i].Day.After(workDays[j].Day)
})
lastSub := user.GetLastWorkWeekSubmission()
var aggregatedOvertime time.Duration
for _, days := range workDays {
if days.Day.Before(lastSub) {
continue
}
aggregatedOvertime += days.CalcOvertime(user)
}
if reportedOvertime, err := user.GetReportedOvertime(); err == nil {
user.Overtime = (reportedOvertime + aggregatedOvertime).Round(time.Minute)
} else {
log.Println("Cannot calculate overtime: ", err)
}
if r.Header.Get("Accept") == "application/json" {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
@@ -78,8 +92,12 @@ func getBookings(w http.ResponseWriter, r *http.Request) {
return
}
if err != nil {
log.Println("Error calc overtime: ", err)
}
ctx := context.WithValue(r.Context(), "user", user)
templates.TimePage(workDays).Render(ctx, w)
templates.TimePage(workDays, lastSub).Render(ctx, w)
}
func updateBooking(w http.ResponseWriter, r *http.Request) {