feat(objekt): letzte abgeschlossene Kontrolle je Objekt anzeigen
CI / backend-tests (push) Failing after 1m28s
CI / frontend-build (push) Successful in 17s

Bisher nirgends vermerkt/abrufbar, wann ein Objekt zuletzt komplett
kontrolliert wurde (nur roh in kontrolle.beendet_am ableitbar). Neues Feld
ObjektRead.letzte_kontrolle_am (jüngste Kontrolle mit status=abgeschlossen),
angezeigt in Objektliste und Admin-Objektsektion ("noch nie kontrolliert"
falls keine).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
This commit is contained in:
2026-09-05 11:00:49 +02:00
co-authored by Claude Sonnet 5
parent 69d6956d23
commit c3f141f7b0
10 changed files with 6599 additions and 14 deletions
+33
View File
@@ -191,3 +191,36 @@ Keine Commits in dieser Session.
- frontend/src/pages/admin/ObjektSection.tsx | 29 ++++++++++++++++++++++++-----
---
## 2026-09-05 10:40 10:47 (6m)
**Beschreibung:** Claude Code Session
**Projekt:** asb-material
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- frontend/src/pages/LoginPage.tsx | 11 ++++++++++-
---
## 2026-09-05 10:50 10:50 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** frontend
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- frontend/src/pages/LoginPage.tsx | 11 ++++++++++-
---
## 2026-09-05 10:51 10:51 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** frontend
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- frontend/src/pages/LoginPage.tsx | 11 ++++++++++-
---
+6264
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -7,6 +7,7 @@ export interface Objekt {
standort_id: number;
status: string;
fahrzeug_id: number | null;
letzte_kontrolle_am: string | null;
}
export interface Objektposition {
+5
View File
@@ -76,6 +76,11 @@ export function ObjektListPage() {
<span className="badge badge-neutral">{objekt.status}</span>
</div>
<div className="card-subtitle">{objekt.code}</div>
<div className="text-muted" style={{ fontSize: "0.85rem" }}>
{objekt.letzte_kontrolle_am
? `Letzte Kontrolle: ${new Date(objekt.letzte_kontrolle_am).toLocaleDateString("de-DE")}`
: "Noch nie kontrolliert"}
</div>
</Link>
</li>
))}
@@ -277,6 +277,13 @@ export function ObjektSection({
{o.fahrzeug_id !== null && (
<span className="text-muted"> Fahrzeug: {objektName(o.fahrzeug_id)}</span>
)}
<span className="text-muted">
{" "}
{" "}
{o.letzte_kontrolle_am
? `zuletzt kontrolliert ${new Date(o.letzte_kontrolle_am).toLocaleDateString("de-DE")}`
: "noch nie kontrolliert"}
</span>
</span>
<div className="row">
<button