Refactoring - Fix1
Dieser Commit ist enthalten in:
111
v2_adminpanel/FEHLERSUCHE.md
Normale Datei
111
v2_adminpanel/FEHLERSUCHE.md
Normale Datei
@@ -0,0 +1,111 @@
|
||||
# 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.
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren