Dateien
Hetzner-Backup/v2_adminpanel/FEHLERSUCHE.md
2025-06-17 22:59:34 +02:00

111 Zeilen
3.7 KiB
Markdown

# Fehlersuche - v2_adminpanel Refactoring
## Aktueller Stand (17.06.2025)
### Erfolgreiches Refactoring
- Die ursprüngliche 5000+ Zeilen große app.py wurde erfolgreich in Module aufgeteilt:
- 9 Blueprint-Module in `routes/`
- Separate Module für auth/, utils/, config.py, db.py, models.py
- Hauptdatei app.py nur noch 178 Zeilen
### Funktionierende Teile
- ✅ Routing-System funktioniert (alle Routen sind registriert)
- ✅ Login-System funktioniert
- ✅ Einfache Test-Routen funktionieren (/simple-test)
- ✅ Blueprint-Registrierung funktioniert korrekt
### Aktuelle Probleme
#### 1. **404 bei /test-db Route**
**Problem**: Die Route wird nicht gefunden, obwohl sie in app.py definiert ist
**Ursache**: Docker Container hat die Code-Änderungen noch nicht übernommen
**Lösung**:
```bash
docker-compose down
docker-compose build --no-cache admin-panel
docker-compose up -d
```
#### 2. **Redirect zu /login bei /customers-licenses**
**Problem**: Beim Aufruf von /customers-licenses wird man zum Login umgeleitet
**Ursache**: Die Route ist mit `@login_required` geschützt
**Status**: Das ist korrektes Verhalten - man muss eingeloggt sein
#### 3. **"dict object has no element 5" Fehler**
**Problem**: Nach erfolgreichem Login und Zugriff auf /customers-licenses kommt dieser Fehler
**Ursache**: Die Datenbankabfrage gibt ein Dictionary zurück, aber der Code erwartet ein Tuple
**Bereits implementierte Lösung**:
- customers_licenses() verwendet jetzt direkte psycopg2 Verbindung ohne Helper
- Expliziter normaler Cursor statt möglicherweise Dictionary-Cursor
#### 4. **Fehlende Templates**
**Problem**: 404.html und 500.html fehlten
**Status**: ✅ Bereits erstellt und hinzugefügt
## Debugging-Schritte
### 1. Container komplett neu bauen
```bash
cd C:\Users\Administrator\Documents\GitHub\v2-Docker\v2
docker-compose down
docker-compose build --no-cache
docker-compose up -d
```
### 2. Logs überprüfen
```bash
docker logs admin-panel --tail 100
```
### 3. Test-Routen
- `/simple-test` - Sollte "Simple test works!" zeigen
- `/debug-routes` - Zeigt alle registrierten Routen
- `/test-db` - Testet Datenbankverbindung
### 4. Login-Test
1. Gehe zu https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com/
2. Logge dich mit den Admin-Credentials ein
3. Versuche dann /customers-licenses aufzurufen
## Code-Fixes bereits implementiert
### 1. Datenbankverbindungen
- Alle kritischen Funktionen verwenden jetzt `conn = get_connection()` mit normalem Cursor
- Verhindert Dictionary/Tuple Konflikte
### 2. Spaltennamen korrigiert
- `is_active` statt `active` für licenses Tabelle
- `is_active` statt `active` für sessions Tabelle
- `is_test` statt `is_test_license`
- Entfernt: phone, address, notes aus customers (existieren nicht)
### 3. Blueprint-Referenzen
- Alle url_for() Aufrufe haben korrekte Blueprint-Präfixe
- z.B. `url_for('auth.login')` statt `url_for('login')`
## Nächste Schritte
1. **Container neu bauen** (siehe oben)
2. **Einloggen** und testen ob /customers-licenses funktioniert
3. **Falls weiterhin Fehler**: Docker Logs nach "CUSTOMERS-LICENSES ROUTE CALLED" durchsuchen
4. **Alternative**: Temporär auf die große app.py.backup zurückwechseln:
```bash
cp app.py.backup app.py
docker-compose restart admin-panel
```
## Bekannte funktionierende Routen (nach Login)
- `/` - Dashboard
- `/customers` - Kundenliste
- `/licenses` - Lizenzliste
- `/resources` - Ressourcen
- `/audit` - Audit Log
- `/sessions` - Sessions
## Debug-Informationen in customer_routes.py
Die customers_licenses Funktion hat erweiterte Logging-Ausgaben:
- "=== CUSTOMERS-LICENSES ROUTE CALLED ==="
- "=== QUERY RETURNED X ROWS ==="
- Details über Datentypen der Ergebnisse
Diese erscheinen in den Docker Logs und helfen bei der Fehlersuche.