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

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

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

  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:
    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.