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>
853 B
853 B
Umsetzung 2026-07-23 (UI-Teil; Backend war bereits erledigt)
Ist-Zustand vorher
- Backend:
POST /api/nutrition/import-csvmitcheck_feature_access('nutrition_entries')und HTTP 403 — bereits implementiert - Frontend: FDDB-Import ohne Usage-Anzeige, Drop-Zone blieb bei Limit klickbar
Änderungen
Frontend (NutritionPage.jsx, ImportPanel):
getFeatureUsage()→nutrition_entriesUsageBadgeam Import-Titel- Drop-Zone und Paste-Import deaktiviert bei Limit
- Usage-Reload nach erfolgreichem Import
Analog zu Activity #37 (geschlossen 2026-07-23).
Playwright: tests/issue-audit.spec.js — Badge am FDDB-Panel
Hinweis
Universal-CSV (/api/csv-import/import) prüft zusätzlich data_import — Legacy FDDB-Pfad folgt dem Nutrition-Muster (nur nutrition_entries), konsistent mit Architektur §8.2.