Leopoldadmin
|
563127c75a
|
feat: add vehicle edit page, image gallery with upload, print and CSV export
|
2026-07-19 19:47:39 +02:00 |
|
Leopoldadmin
|
58fcf4a722
|
feat: add dashboard page with stats, quick actions, recent vehicles, update navigation and login redirect
|
2026-07-19 19:33:08 +02:00 |
|
Leopoldadmin
|
5ae1e28ef2
|
feat: add navigation layout with sidebar, header, auth guard, mobile responsive
|
2026-07-19 17:25:35 +02:00 |
|
Leopoldadmin
|
2242a12094
|
fix: redirect login to /de/fahrzeuge instead of non-existent /dashboard
|
2026-07-19 16:49:50 +02:00 |
|
Leopoldadmin
|
4cfe8ad673
|
fix: add coolify external network to backend+frontend for Traefik routing
|
2026-07-19 02:21:14 +02:00 |
|
Leopoldadmin
|
3e8cf935bd
|
fix: use network alias erp-db for postgres to avoid coolify-db DNS collision
|
2026-07-19 02:12:13 +02:00 |
|
Leopoldadmin
|
7a3c40a651
|
fix: remove duplicate bcrypt line
|
2026-07-19 00:36:41 +02:00 |
|
Leopoldadmin
|
14349a211d
|
fix: correct bcrypt version spec in requirements.txt
|
2026-07-19 00:35:15 +02:00 |
|
Leopoldadmin
|
6cedbb1bcb
|
fix: pin bcrypt<5.0 for passlib compatibility
|
2026-07-18 20:14:36 +02:00 |
|
Leopoldadmin
|
97d497ba4f
|
feat: add seed_admin.py for initial admin user creation
|
2026-07-18 20:10:47 +02:00 |
|
Leopoldadmin
|
b69c5f00aa
|
fix: frontend healthcheck use 127.0.0.1 in docker-compose
|
2026-07-18 17:34:40 +02:00 |
|
Leopoldadmin
|
abbb99fe74
|
fix: frontend healthcheck use 127.0.0.1 and bind to 0.0.0.0
|
2026-07-18 17:29:47 +02:00 |
|
Leopoldadmin
|
1a4444e1e8
|
fix: add missing email-validator dependency
|
2026-07-18 17:22:27 +02:00 |
|
Leopoldadmin
|
579049395d
|
fix: use expose instead of ports to avoid host port conflicts
|
2026-07-18 17:18:30 +02:00 |
|
Leopoldadmin
|
265f4c35cb
|
fix: add missing frontend/public directory for standalone build
|
2026-07-18 17:13:19 +02:00 |
|
Leopoldadmin
|
531ae4cf0b
|
fix: correct libgdk-pixbuf-2.0-0 package name for Debian Trixie
|
2026-07-18 17:08:20 +02:00 |
|
Leopoldadmin
|
71a2b37c16
|
fix: use Python 3.12-slim for compatible Debian package names
|
2026-07-18 17:03:44 +02:00 |
|
Leopoldadmin
|
56a6eb7be5
|
feat(Phase 7): final audit, handoff documentation, project state update
|
2026-07-18 16:15:22 +02:00 |
|
Leopoldadmin
|
1620a35d71
|
feat(T06): deployment config - Dockerfiles, docker-compose, Coolify guide, env example
|
2026-07-18 15:47:26 +02:00 |
|
Leopoldadmin
|
fbb1b39b57
|
fix: ruff lint + format fixes in tests, ESLint fixes in frontend
|
2026-07-17 21:28:58 +02:00 |
|
Leopoldadmin
|
341d0c6f38
|
fix: resolve all ruff and ESLint lint errors
Backend (ruff):
- F821: Add TYPE_CHECKING imports for Vehicle, Contact, File in models
(file.py, retouch.py, sale.py, vehicle.py)
- E741: Rename ambiguous variable to /
(copilot_service.py, price_compare_service.py, openrouter.py)
- F841: Remove unused variable in sale_service.py
Frontend (ESLint):
- react/no-unescaped-entities: Escape quotes in ContractPreview.tsx
- @next/next/no-img-element: Replace <img> with <Image> from next/image
(FileGallery.tsx, FileList.tsx, FilePreview.tsx, BeforeAfterSlider.tsx)
Tests: 392 backend passed, 112 frontend passed, next build successful
|
2026-07-17 21:16:38 +02:00 |
|
Leopoldadmin
|
f1d6de0e47
|
feat(T08): Bildretusche via Flux.1-Pro + Preisvergleich + Retouch UI with before/after slider
|
2026-07-17 09:31:28 +02:00 |
|
Leopoldadmin
|
5cc9f8e9a9
|
feat(T07): KI-Copilot with OpenRouter chat, voice input, action system, chat history
|
2026-07-17 02:28:41 +02:00 |
|
Leopoldadmin
|
cb89e3ff1e
|
chore: remove stray file
|
2026-07-17 01:58:54 +02:00 |
|
Leopoldadmin
|
6603e411e9
|
feat(T06): Verkaufsmodul + Rechtsdokumente + DATEV-Export + Sales UI
|
2026-07-17 01:58:34 +02:00 |
|
Leopoldadmin
|
a38d340ddc
|
feat(T05): Dateiablage pro Fahrzeug + File UI with thumbnails and gallery
|
2026-07-17 01:38:48 +02:00 |
|
Leopoldadmin
|
149ac04dc1
|
feat(T03): OCR-Erfassung via OpenRouter Qwen2.5-VL + OCR UI with drag-and-drop
|
2026-07-17 00:45:14 +02:00 |
|
Leopoldadmin
|
b128ea6b39
|
feat: T04 fixes - i18n, auth tests, contact/vehicle test cleanup, status updates
|
2026-07-14 20:16:15 +02:00 |
|
Leopoldadmin
|
2cf433a01c
|
feat(T04): contact management + USt-IdNr. validation + contact UI
- Contact model: company, role (kaeufer/verkaeufer/beide), soft-delete
- ContactPerson model: 1:N relation with CASCADE delete
- USt-IdNr. validation: DE + 10 EU countries
- Contact CRUD: 7 API endpoints with RBAC, search/filter/paginate
- Frontend: ContactList, ContactForm, ContactDetail with EU/Inland toggle
- 73 backend tests (91% coverage), 20 frontend tests
|
2026-07-14 12:14:21 +02:00 |
|
Leopoldadmin
|
74b5e6afb8
|
feat(T02): vehicle management + mobile.de push + vehicle UI
- Vehicle model: 25+ fields, 5 vehicle types, soft-delete
- Vehicle CRUD: 7 API endpoints with JWT auth, filter/sort/paginate
- mobile.de: push/update/delete listings, field mapping, retry logic
- MobileDeListing model for sync status tracking
- Frontend: VehicleList, VehicleForm, VehicleDetail, MobileDeStatus
- 73 backend tests (82% coverage), 16 frontend tests
|
2026-07-14 12:03:19 +02:00 |
|
Leopoldadmin
|
d89304845a
|
feat(T01): auth + user management + RBAC + base frontend + i18n
- Backend: FastAPI, JWT auth (HS256), bcrypt, RBAC middleware
- User CRUD (admin-only), soft-delete, pagination
- Pydantic BaseSettings config, async SQLAlchemy 2.0
- 50 backend tests, 88% coverage
- Frontend: Next.js 14 App Router, Tailwind, design tokens
- Login page, auth context, API client with auto-refresh
- i18n: next-intl, DE/EN (31 keys each)
- 6 base UI components (Button, Input, Card, Table, Modal, Toast)
- 12 frontend tests, npm build success
|
2026-07-14 11:51:32 +02:00 |
|
Leopoldadmin
|
5459a43e2b
|
chore: add .gitignore and .a0 project state files
|
2026-07-13 09:55:54 +02:00 |
|
Leopoldadmin
|
be5a339b32
|
feat: add UI prototype v8d source files (index.html, app.compiled.js, interactions.js, style.css)
|
2026-07-13 09:51:03 +02:00 |
|
Leopoldadmin
|
afe6d0a168
|
feat: initial architecture - requirements, architecture.md, task_graph, AGENTS.md, UI prototype v8d
|
2026-07-13 03:34:35 +02:00 |
|