Activity and nutrition legacy CSV imports enforce tier limits with UsageBadge UI; Universal CSV gets mapping validation on copy/import, format-check parity, and structured error_details. version: 0.9u module: activity 1.2.1, nutrition 1.0.3, csv_import 0.4.0 Co-authored-by: Cursor <cursoragent@cursor.com>
21 lines
1.2 KiB
Markdown
21 lines
1.2 KiB
Markdown
**Implementierung abgeschlossen (2026-07-24)**
|
|
|
|
### 1. Admin „Format prüfen“ inkl. `import_row_processing`
|
|
- `AdminCsvTemplateEditorPage`: `resolveEditorImportRowProcessing()` — dieselbe Spec wie beim Speichern
|
|
- Dry-Run/Format-Check nutzt konsistente Vorlage inkl. Aggregation (`group_by` / `aggregates`)
|
|
|
|
### 2. Profil-Mappings validieren
|
|
- `csv_import.py`: `_validate_mapping_config` / `_ensure_mapping_valid` bei **Copy** und **Import**
|
|
- Neuer Endpoint: `GET /api/csv/mappings/{id}/validate`
|
|
- `api.js`: `validateCsvMapping()`; `formatFastApiDetail` für verschachtelte Validierungsfehler
|
|
|
|
### 3. Nutzer-UI: strukturierte Fehler
|
|
- Neue Komponente `CsvImportErrorDetails.jsx` (Zeile, code, hint)
|
|
- `UniversalCsvImportPage` zeigt `error_details` statt JSON-Dump
|
|
|
|
### Tests & Doku
|
|
- `backend/tests/test_csv_mapping_validation.py` — pytest grün
|
|
- Agent-Guide: `.claude/docs/technical/UNIVERSAL_CSV_IMPORT_AGENT_GUIDE.md` §4 aktualisiert
|
|
|
|
**Betroffene Dateien:** `backend/routers/csv_import.py`, `frontend/src/pages/AdminCsvTemplateEditorPage.jsx`, `frontend/src/pages/UniversalCsvImportPage.jsx`, `frontend/src/components/CsvImportErrorDetails.jsx`, `frontend/src/utils/api.js`
|