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
|
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 |
|