Feature-Enforcement f�r Nutrition CSV-Import UI #38

Open
opened 2026-03-23 22:32:50 +01:00 by Lars · 0 comments
Owner

Priorit�t: Low
Aufwand: 1h

Beschreibung

Nutrition CSV-Import (FDDB) hat bereits Backend-Enforcement (check_feature_access() + increment_feature_usage()), aber die UI zeigt keine Badges und die Import-Zone wird nicht deaktiviert.

Problem

  • Endpoint: POST /api/nutrition/import-csv
  • Feature-ID: nutrition_entries (z�hlt, aber blockiert nicht proaktiv)
  • Status: Backend OK, Frontend fehlt
  • UI zeigt keine Usage-Badges
  • Import-Zone wird nicht deaktiviert bei Limit

L�sung

Frontend (NutritionPage.jsx)

  1. Usage-Badge auf Import-Panel hinzuf�gen:

    <div className="card-title">
      Import
      <UsageBadge featureId="nutrition_entries"/>
    </div>
    
  2. Import-Zone deaktivieren bei Limit:

    const usage = await api.getFeatureUsage("nutrition_entries")
    const disabled = !usage.allowed
    
    <div className={disabled ? "import-zone-disabled" : "import-zone"}>
      {disabled && <div className="overlay">Limit erreicht</div>}
      {/* Drag & Drop + Button */}
    </div>
    
  3. Alternativ: Nur Error-Message nach Versuch (aktuelles Verhalten, einfacher)

Betroffene Dateien

  • frontend/src/pages/NutritionPage.jsx (Import Panel)

Akzeptanzkriterien

  • Usage-Badge sichtbar
  • Import-Zone deaktiviert bei Limit (optional)
  • Error-Handling funktioniert

Quelle: .claude/docs/PENDING_FEATURES.md

**Priorit�t:** Low **Aufwand:** 1h ## Beschreibung Nutrition CSV-Import (FDDB) hat bereits Backend-Enforcement (`check_feature_access()` + `increment_feature_usage()`), aber die UI zeigt keine Badges und die Import-Zone wird nicht deaktiviert. ## Problem - **Endpoint:** `POST /api/nutrition/import-csv` - **Feature-ID:** `nutrition_entries` (z�hlt, aber blockiert nicht proaktiv) - **Status:** Backend OK, Frontend fehlt - UI zeigt keine Usage-Badges - Import-Zone wird nicht deaktiviert bei Limit ## L�sung ### Frontend (NutritionPage.jsx) 1. Usage-Badge auf Import-Panel hinzuf�gen: ```jsx <div className="card-title"> Import <UsageBadge featureId="nutrition_entries"/> </div> ``` 2. Import-Zone deaktivieren bei Limit: ```jsx const usage = await api.getFeatureUsage("nutrition_entries") const disabled = !usage.allowed <div className={disabled ? "import-zone-disabled" : "import-zone"}> {disabled && <div className="overlay">Limit erreicht</div>} {/* Drag & Drop + Button */} </div> ``` 3. Alternativ: Nur Error-Message nach Versuch (aktuelles Verhalten, einfacher) ## Betroffene Dateien - `frontend/src/pages/NutritionPage.jsx` (Import Panel) ## Akzeptanzkriterien - [ ] Usage-Badge sichtbar - [ ] Import-Zone deaktiviert bei Limit (optional) - [ ] Error-Handling funktioniert --- **Quelle:** `.claude/docs/PENDING_FEATURES.md`
Lars added the
feature
high
labels 2026-03-23 22:32:50 +01:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Lars/mitai-jinkendo#38
No description provided.