feat(dokument): Dokumente-Modul (Roadmap Phase 5)
CI / backend-tests (push) Failing after 1m51s
CI / frontend-build (push) Successful in 17s

Polymorphe Datei-Anhänge (PDF/JPEG/PNG/WebP, Whitelist statt Blacklist -
owasp-Grundsatz) an beliebige Ressource, gleiches entitaet_typ/entitaet_id-
Muster wie Mangel/Historie. Lokale Ablage (settings.upload_dir, kein Cloud-
Zwang, Self-Hosting-Anforderung), server-generierter Dateiname verhindert
Path-Traversal/Namenskollisionen.

POST /dokumente (multipart), GET /dokumente (Filter Pflicht: entitaet_typ +
entitaet_id), GET /dokumente/{id}/download, DELETE /dokumente/{id}. Hochladen:
alle Mitarbeiter+, Löschen: Materialverantwortliche+Leitung+Admin.

Frontend: wiederverwendbares DokumentePanel (Upload/Liste/Download/Löschen),
eingebunden in ObjektSection (je Objekt) und MangelListePage (Fotos zu
Mängeln) - weitere Ressourcen (Geräteinstanz, Fahrzeugdetails, Benutzer)
können denselben Baustein später einfach wiederverwenden.

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 13:56:27 +02:00
co-authored by Claude Sonnet 5
parent 11ad747136
commit 73bf6c1605
16 changed files with 631 additions and 0 deletions
+19
View File
@@ -4087,3 +4087,22 @@ Keine Commits in dieser Session.
- frontend/src/pages/admin/ObjektSection.tsx | 62 ++++++++++++++++++++++++++++++++++++++++++
---
## 2026-09-05 13:47 13:51 (3m)
**Beschreibung:** Claude Code Session
**Projekt:** asb-material
### Commits
- 11ad747 fix(historie): Audit-Lücke bei Mangel/Personal/Objekt-Änderungen geschlossen
### Geänderte Dateien
- DEVLOG.md | 22 ++++++++++++++++++++++
- backend/app/api/v1/endpoints/mangel.py | 33 +++++++++++++++++++++++++--------
- backend/app/api/v1/endpoints/objekte.py | 23 ++++++++++++++++++++++-
- backend/app/api/v1/endpoints/personal.py | 27 +++++++++++++++++++++++++--
- backend/app/services/mangel.py | 28 ++++++++++++++++++++++++----
- backend/tests/test_fahrzeugdetails.py | 15 +++++++++++++++
- backend/tests/test_mangel.py | 26 ++++++++++++++++++++++++++
- backend/tests/test_personal.py | 32 ++++++++++++++++++++++++++++++++
- frontend/src/pages/admin/HistorieSection.tsx | 11 ++++++++++-
---