added absence - abwesenheit, closes #11

This commit is contained in:
2025-05-19 21:42:30 +02:00
parent 37458d8ffb
commit df3779d264
10 changed files with 311 additions and 173 deletions

View File

@@ -94,16 +94,14 @@ func updateBooking(w http.ResponseWriter, r *http.Request) {
log.Println("Error loading location", err)
loc = time.Local
}
user, err := (*models.User).GetUserFromSession(nil, Session, r.Context())
if err != nil {
log.Println("No user found!", err)
return
}
switch r.FormValue("action") {
case "add":
log.Println("Adding Booking")
user, err := (*models.User).GetUserFromSession(nil, Session, r.Context())
if err != nil {
log.Println("No user found!", err)
}
timestamp, err := time.ParseInLocation("2006-01-02|15:04", r.FormValue("date")+"|"+r.FormValue("timestamp"), loc)
log.Println(timestamp)
if err != nil {
log.Println("Error parsing timestamp", err)
return
@@ -124,17 +122,14 @@ func updateBooking(w http.ResponseWriter, r *http.Request) {
}
break
case "change":
log.Println("Changing Booking")
absence, err := strconv.Atoi(r.FormValue("absence"))
absenceType, err := strconv.Atoi(r.FormValue("absence"))
if err != nil {
log.Println("Error parsing absence type.", err)
absence = 0
absenceType = 0
}
if absence != 0 {
log.Println("New absence", absence)
log.Println("At date", r.FormValue("date"))
if absenceType != 0 {
createAbsence(absenceType, user, loc, r)
}
for index, possibleBooking := range r.PostForm {
if len(index) > 7 && index[:7] == "booking" {
booking_id, err := strconv.Atoi(index[8:])
@@ -162,6 +157,20 @@ func updateBooking(w http.ResponseWriter, r *http.Request) {
getBookings(w, r)
}
func createAbsence(absenceType int, user models.User, loc *time.Location, r *http.Request) {
absenceDate, err := time.ParseInLocation("2006-01-02", r.FormValue("date"), loc)
if err != nil {
log.Println("Cannot get date from input! Skipping absence creation", err)
return
}
absence := models.NewAbsence(user.CardUID, int8(absenceType), absenceDate)
err = absence.Insert()
if err != nil {
log.Println("Error inserting absence!", err)
return
}
}
func getBookingsAPI(w http.ResponseWriter, r *http.Request) {
_user_pn := r.URL.Query().Get("personal_nummer")
user_pn, err := strconv.Atoi(_user_pn)