fix(time): Mikrosekunden bei Zeitstempeln kappen
Security Audit / Python Dependency Audit (push) Canceled after 0s
Security Audit / Node.js Dependency Audit (push) Canceled after 0s
Security Audit / Frontend Build (tsc + vite) (push) Canceled after 0s

start_time/end_time/break_start wurden mit vollen Mikrosekunden gespeichert
(datetime.now(timezone.utc).time() ohne microsecond=0), was Clients ohne
Mikrosekunden-Parsing brechen konnte (siehe Mobile-App-Crash). Sekunden-
Genauigkeit reicht für Zeiterfassung.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
This commit is contained in:
patrickandClaude Sonnet 5 committed 2026-09-09 23:59:25 +02:00
1 parent 4398632880
commit 2e27a7fcae
1 file changed
+4 -4
+4 -4
View File
@@ -79,7 +79,7 @@ class TimeService:
db: AsyncSession,
) -> tuple[TimeEntry, list[str]]:
today = datetime.now(timezone.utc).date()
now_time = datetime.now(timezone.utc).time().replace(tzinfo=None)
now_time = datetime.now(timezone.utc).time().replace(microsecond=0, tzinfo=None)
# Offenen Eintrag für heute prüfen
open_entry = await self._get_open_entry(user.id, db)
@@ -125,7 +125,7 @@ class TimeService:
if entry is None:
raise HTTPException(status_code=404, detail="Kein offener Zeitstempel gefunden.")
now_time = datetime.now(timezone.utc).time().replace(tzinfo=None)
now_time = datetime.now(timezone.utc).time().replace(microsecond=0, tzinfo=None)
# Aktive Pause beenden falls vergessen
if entry.break_start is not None:
@@ -148,7 +148,7 @@ class TimeService:
if entry.break_start is not None:
raise HTTPException(status_code=409, detail="Pause bereits aktiv.")
now_time = datetime.now(timezone.utc).time().replace(tzinfo=None)
now_time = datetime.now(timezone.utc).time().replace(microsecond=0, tzinfo=None)
entry.break_start = now_time
entry.updated_at = datetime.now(timezone.utc)
return entry
@@ -160,7 +160,7 @@ class TimeService:
if entry.break_start is None:
raise HTTPException(status_code=409, detail="Keine aktive Pause.")
now_time = datetime.now(timezone.utc).time().replace(tzinfo=None)
now_time = datetime.now(timezone.utc).time().replace(microsecond=0, tzinfo=None)
extra = self._calc_break_minutes(entry.break_start, now_time)
entry.break_minutes += extra
entry.break_start = None