Export Button geht jetzt
Dieser Commit ist enthalten in:
120
JOURNAL.md
120
JOURNAL.md
@@ -1,5 +1,125 @@
|
||||
# v2-Docker Projekt Journal
|
||||
|
||||
## Letzte Änderungen (22.06.2025 - 16:49 Uhr)
|
||||
|
||||
### Export-Funktionen Analyse und Lösungsplan ✅
|
||||
|
||||
**Problem:**
|
||||
- CSV Export Buttons vorhanden, aber Backend liefert immer Excel-Dateien
|
||||
- Monitoring Export zeigt nur Platzhalter-Alerts ("Export-Funktion wird implementiert")
|
||||
- Leads/CRM Module hat keine Export-Funktionalität
|
||||
- Format-Parameter wird in Export-Routes ignoriert
|
||||
|
||||
**Analyse-Ergebnisse:**
|
||||
1. Excel-Exporte funktionieren für: Lizenzen, Kunden, Sessions, Audit Logs, Ressourcen
|
||||
2. Export-Routes in `export_routes.py` prüfen nie den `format=csv` Parameter
|
||||
3. Nur `create_excel_export()` existiert, keine CSV-Generierung implementiert
|
||||
4. Monitoring-Exporte haben nur JavaScript-Platzhalter ohne Backend
|
||||
5. Lead Management hat keine Export-Funktionalität
|
||||
|
||||
**Lösungsplan (YAGNI & Strukturiert):**
|
||||
|
||||
1. **CSV Export Fix (Priorität 1)**
|
||||
- Format-Parameter in bestehenden Export-Routes prüfen
|
||||
- CSV als Alternative zu Excel hinzufügen (Excel bleibt Default)
|
||||
- Python's eingebautes csv-Modul nutzen, keine neuen Dependencies
|
||||
- Minimale Änderung: ~10 Zeilen pro Route
|
||||
|
||||
2. **Monitoring Export (Priorität 2)**
|
||||
- Neue Route `/export/monitoring` nach bestehendem Muster
|
||||
- Daten von existierenden Monitoring-Endpoints nutzen
|
||||
- Excel und CSV Format unterstützen
|
||||
|
||||
3. **Lead Export (Priorität 3)**
|
||||
- Route `/leads/export` zum Lead Blueprint hinzufügen
|
||||
- Institutionen mit Kontakt-Anzahl exportieren
|
||||
- Gleiches Muster wie andere Exporte verwenden
|
||||
|
||||
**Vorteile dieser Lösung:**
|
||||
- Keine Refaktorierung nötig
|
||||
- Bestehende Excel-Exporte bleiben unverändert
|
||||
- Konsistentes URL-Muster mit format-Parameter
|
||||
- Rückwärtskompatibel (Excel als Standard)
|
||||
- Einfach erweiterbar für zukünftige Formate
|
||||
|
||||
**Implementierung abgeschlossen:**
|
||||
|
||||
1. **CSV Export Support hinzugefügt:**
|
||||
- Neue Funktion `create_csv_export()` in `utils/export.py`
|
||||
- Alle Export-Routes prüfen jetzt den `format` Parameter
|
||||
- CSV-Dateien mit UTF-8 BOM für Excel-Kompatibilität
|
||||
|
||||
2. **Monitoring Export implementiert:**
|
||||
- Neue Route `/export/monitoring` in `export_routes.py`
|
||||
- Exportiert Heartbeats und optional Anomalien
|
||||
- JavaScript-Funktionen in Templates aktualisiert
|
||||
|
||||
3. **Lead Export hinzugefügt:**
|
||||
- Neue Route `/leads/export` in `leads/routes.py`
|
||||
- Exportiert Institutionen mit Kontakt-Statistiken
|
||||
- Export-Buttons zu Institutions-Template hinzugefügt
|
||||
|
||||
**Geänderte Dateien:**
|
||||
- `utils/export.py` - CSV-Export-Funktion hinzugefügt
|
||||
- `routes/export_routes.py` - Format-Parameter-Prüfung für alle Routes
|
||||
- `routes/export_routes.py` - Monitoring-Export hinzugefügt
|
||||
- `leads/routes.py` - Lead-Export-Route hinzugefügt
|
||||
- `templates/monitoring/analytics.html` - Export-Funktionen aktualisiert
|
||||
- `templates/monitoring/live_dashboard.html` - Export-Funktionen aktualisiert
|
||||
- `leads/templates/leads/institutions.html` - Export-Buttons hinzugefügt
|
||||
|
||||
**Testing abgeschlossen:**
|
||||
- Alle Export-Routes sind verfügbar und funktionieren
|
||||
- CSV-Export generiert korrekte CSV-Dateien mit UTF-8 BOM
|
||||
- Excel bleibt der Standard wenn kein format-Parameter angegeben
|
||||
- Container wurde neu gebaut und deployed
|
||||
- Alle 7 Export-Endpoints unterstützen beide Formate:
|
||||
- `/export/licenses`
|
||||
- `/export/customers`
|
||||
- `/export/sessions`
|
||||
- `/export/audit`
|
||||
- `/export/resources`
|
||||
- `/export/monitoring`
|
||||
- `/leads/export`
|
||||
|
||||
---
|
||||
|
||||
## Letzte Änderungen (22.06.2025 - 16:35 Uhr)
|
||||
|
||||
### Lizenzfilter System komplett überarbeitet ✅
|
||||
|
||||
**Problem:**
|
||||
- Checkbox-basiertes Filtersystem war unübersichtlich und fummelig
|
||||
- "Fake-Daten anzeigen" Checkbox funktionierte nicht richtig
|
||||
- "Läuft bald ab" Status machte keinen Sinn (inaktive Lizenzen können nicht ablaufen)
|
||||
|
||||
**Lösung 1 - Neues Dropdown-System:**
|
||||
- Checkbox-Filter ersetzt durch 3 klare Dropdowns:
|
||||
- Datenquelle: Echte Lizenzen / 🧪 Fake-Daten / Alle Daten
|
||||
- Lizenztyp: Alle Typen / Vollversion / Testversion
|
||||
- Status: Alle Status / ✅ Aktiv / ⚠️ Abgelaufen / ❌ Deaktiviert
|
||||
- Auto-Submit bei Änderung
|
||||
- Übersichtlicher "Filter zurücksetzen" Button
|
||||
|
||||
**Lösung 2 - API Bug Fix:**
|
||||
- SQLAlchemy Fehler behoben: `text()` Wrapper für Raw SQL Queries hinzugefügt
|
||||
- License Server API funktioniert jetzt korrekt
|
||||
|
||||
**Lösung 3 - Status-Logik korrigiert:**
|
||||
- "Läuft bald ab" komplett entfernt (gehört nur ins Dashboard als Hinweis)
|
||||
- Klare Trennung der 3 Status:
|
||||
- Aktiv = `is_active=true` (egal ob abgelaufen)
|
||||
- Abgelaufen = `valid_until <= heute` (läuft aber weiter bis manuell deaktiviert)
|
||||
- Deaktiviert = `is_active=false` (manuell gestoppt)
|
||||
- Lizenzen laufen nach Ablauf weiter bis zur manuellen Deaktivierung
|
||||
|
||||
**Geänderte Dateien:**
|
||||
- `templates/licenses.html` - Komplettes Filter-UI überarbeitet
|
||||
- `routes/license_routes.py` - Filter-Logik angepasst
|
||||
- `v2_lizenzserver/app/core/api_key_auth.py` - SQL Bug behoben
|
||||
|
||||
---
|
||||
|
||||
## Letzte Änderungen (22.06.2025 - 13:27 Uhr)
|
||||
|
||||
### Bug Fix: API Key Anzeige in Administration
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren