mitai-jinkendo/.claude/docs/working/gitea-close-2026-07-23/comment-38.md
Lars 79ec249bc3
Some checks failed
Deploy Development / deploy (push) Successful in 1m9s
Build Test / pytest-backend (push) Failing after 5s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 24s
feat: feature enforcement imports (#37/#38) and Universal CSV validation (#71)
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>
2026-07-24 16:59:12 +02:00

853 B

Umsetzung 2026-07-23 (UI-Teil; Backend war bereits erledigt)

Ist-Zustand vorher

  • Backend: POST /api/nutrition/import-csv mit check_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_entries
  • UsageBadge am 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.