3.7 KiB
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
- 9 Blueprint-Module in
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:
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
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
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
- Gehe zu https://admin-panel-undso.z5m7q9dk3ah2v1plx6ju.com/
- Logge dich mit den Admin-Credentials ein
- 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_activestattactivefür licenses Tabelleis_activestattactivefür sessions Tabelleis_teststattis_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')statturl_for('login')
Nächste Schritte
- Container neu bauen (siehe oben)
- Einloggen und testen ob /customers-licenses funktioniert
- Falls weiterhin Fehler: Docker Logs nach "CUSTOMERS-LICENSES ROUTE CALLED" durchsuchen
- Alternative: Temporär auf die große app.py.backup zurückwechseln:
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.