Compare commits
4 Commits
2.0.0-rc.1
...
4ded8632e5
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ded8632e5 | |||
| b2af48463c | |||
| 0b72147e02 | |||
| d1b46cf894 |
@@ -68,5 +68,5 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
push: true
|
push: true
|
||||||
context: Backend
|
context: DocumentCreator
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ func LogoutHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
func autoLogout(w http.ResponseWriter) {
|
func autoLogout(w http.ResponseWriter) {
|
||||||
users, err := models.GetAllUsers()
|
users, err := models.GetAllUsers()
|
||||||
var logged_out_users []models.User
|
var loggedOutUsers []models.User
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error getting user list %v\n", err)
|
fmt.Printf("Error getting user list %v\n", err)
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@ func autoLogout(w http.ResponseWriter) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error logging out user %v\n", err)
|
fmt.Printf("Error logging out user %v\n", err)
|
||||||
} else {
|
} else {
|
||||||
logged_out_users = append(logged_out_users, user)
|
loggedOutUsers = append(loggedOutUsers, user)
|
||||||
log.Printf("Automaticaly logged out user %s, %s ", user.Name, user.Vorname)
|
log.Printf("Automaticaly logged out user %s, %s ", user.Name, user.Vorname)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,6 +39,6 @@ func autoLogout(w http.ResponseWriter) {
|
|||||||
}
|
}
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
w.WriteHeader(http.StatusOK)
|
w.WriteHeader(http.StatusOK)
|
||||||
json.NewEncoder(w).Encode(logged_out_users)
|
json.NewEncoder(w).Encode(loggedOutUsers)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ func getBookings(w http.ResponseWriter, r *http.Request) {
|
|||||||
if day.Date().Before(lastSub) {
|
if day.Date().Before(lastSub) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
aggregatedOvertime += day.GetOvertime(user, models.WorktimeBaseDay, false)
|
aggregatedOvertime += day.GetOvertime(user, models.WorktimeBaseDay, true)
|
||||||
}
|
}
|
||||||
if reportedOvertime, err := user.GetReportedOvertime(); err == nil {
|
if reportedOvertime, err := user.GetReportedOvertime(); err == nil {
|
||||||
user.Overtime = (reportedOvertime + aggregatedOvertime).Round(time.Minute)
|
user.Overtime = (reportedOvertime + aggregatedOvertime).Round(time.Minute)
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ func (c *CompoundDay) GetWorkDay() WorkDay {
|
|||||||
|
|
||||||
// IsEmpty implements [IWorkDay].
|
// IsEmpty implements [IWorkDay].
|
||||||
func (c *CompoundDay) IsEmpty() bool {
|
func (c *CompoundDay) IsEmpty() bool {
|
||||||
return len(c.DayParts) > 0
|
return len(c.DayParts) == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// Date implements [IWorkDay].
|
// Date implements [IWorkDay].
|
||||||
@@ -47,12 +47,16 @@ func (c *CompoundDay) GetDayProgress(u User) int8 {
|
|||||||
|
|
||||||
// GetOvertime implements [IWorkDay].
|
// GetOvertime implements [IWorkDay].
|
||||||
func (c *CompoundDay) GetOvertime(u User, base WorktimeBase, includeKurzarbeit bool) time.Duration {
|
func (c *CompoundDay) GetOvertime(u User, base WorktimeBase, includeKurzarbeit bool) time.Duration {
|
||||||
|
work := c.GetWorktime(u, base, includeKurzarbeit)
|
||||||
|
var targetHours time.Duration
|
||||||
|
|
||||||
var overtime time.Duration
|
switch base {
|
||||||
for _, day := range c.DayParts {
|
case WorktimeBaseDay:
|
||||||
overtime += day.GetOvertime(u, base, includeKurzarbeit)
|
targetHours = u.ArbeitszeitProTagFrac(1)
|
||||||
|
case WorktimeBaseWeek:
|
||||||
|
targetHours = u.ArbeitszeitProWocheFrac(.2)
|
||||||
}
|
}
|
||||||
return overtime
|
return (work - targetHours).Round(time.Minute)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPausetime implements [IWorkDay].
|
// GetPausetime implements [IWorkDay].
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ templ defaultDayComponent(day models.IWorkDay) {
|
|||||||
if pause > 0 {
|
if pause > 0 {
|
||||||
<p class="text-neutral-500 flex flex-row items-center"><span class="icon-[material-symbols-light--motion-photos-paused-outline]"></span>{ helper.FormatDuration(pause) }</p>
|
<p class="text-neutral-500 flex flex-row items-center"><span class="icon-[material-symbols-light--motion-photos-paused-outline]"></span>{ helper.FormatDuration(pause) }</p>
|
||||||
}
|
}
|
||||||
if overtime != 0 && day.IsEmpty() == false {
|
if !day.IsEmpty() && overtime != 0 {
|
||||||
<p class="text-neutral-500 flex flex-row items-center">
|
<p class="text-neutral-500 flex flex-row items-center">
|
||||||
<span class="icon-[material-symbols-light--more-time]"></span>
|
<span class="icon-[material-symbols-light--more-time]"></span>
|
||||||
{ helper.FormatDuration(overtime) }
|
{ helper.FormatDuration(overtime) }
|
||||||
|
|||||||
@@ -346,7 +346,7 @@ func defaultDayComponent(day models.IWorkDay) templ.Component {
|
|||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
if overtime != 0 && day.IsEmpty() == false {
|
if !day.IsEmpty() && overtime != 0 {
|
||||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<p class=\"text-neutral-500 flex flex-row items-center\"><span class=\"icon-[material-symbols-light--more-time]\"></span> ")
|
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 27, "<p class=\"text-neutral-500 flex flex-row items-center\"><span class=\"icon-[material-symbols-light--more-time]\"></span> ")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
|
|||||||
Reference in New Issue
Block a user