111 Zeilen
3.7 KiB
Markdown
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. |