diff --git a/v2_adminpanel/FEHLERSUCHE.md b/v2_adminpanel/FEHLERSUCHE.md index 6e2ab6a..4f4a5b3 100644 --- a/v2_adminpanel/FEHLERSUCHE.md +++ b/v2_adminpanel/FEHLERSUCHE.md @@ -6,7 +6,19 @@ - Customers-Licenses Route funktioniert jetzt korrekt - Container startet ohne Fehler -### Finale Fixes (18.06.2025 - 02:35 Uhr) +### Finale Fixes (18.06.2025 - 02:45 Uhr) + +#### Customers-Licenses Testdaten-Filter +- Problem: `/customers-licenses?show_test=false` zeigte trotzdem alle Kunden (auch Testdaten) +- Ursache: Die SQL-Query in `customers_licenses()` berücksichtigte den `show_test` Parameter nicht +- Lösung: + - `show_test` Parameter aus der URL auslesen + - WHERE-Klausel hinzugefügt: `WHERE (%s OR c.is_test = false)` + - `c.is_test` in SELECT und GROUP BY hinzugefügt + - `show_test` Parameter an Template weitergeben + - Standardverhalten: Nur Produktivdaten werden angezeigt (wenn show_test=false oder nicht gesetzt) + +### Bereits gelöste Probleme (18.06.2025 - 02:35 Uhr) #### Backups Route Fix - Problem 1: 500 Error bei `/backups` - `url_for('admin.create_backup')` existiert nicht diff --git a/v2_adminpanel/routes/customer_routes.py b/v2_adminpanel/routes/customer_routes.py index f394351..3f1c69f 100644 --- a/v2_adminpanel/routes/customer_routes.py +++ b/v2_adminpanel/routes/customer_routes.py @@ -195,6 +195,10 @@ def customers_licenses(): import psycopg2 logging.info("=== CUSTOMERS-LICENSES ROUTE CALLED ===") + # Get show_test parameter from URL + show_test = request.args.get('show_test', 'false').lower() == 'true' + logging.info(f"show_test parameter: {show_test}") + try: # Direkte Verbindung ohne Helper-Funktionen conn = psycopg2.connect( @@ -209,7 +213,8 @@ def customers_licenses(): try: # Hole alle Kunden mit ihren Lizenzen - cur.execute(""" + # Wenn show_test=false, zeige nur Nicht-Test-Kunden + query = """ SELECT c.id, c.name, @@ -218,12 +223,16 @@ def customers_licenses(): COUNT(l.id), COUNT(CASE WHEN l.is_active = true THEN 1 END), COUNT(CASE WHEN l.is_test = true THEN 1 END), - MAX(l.created_at) + MAX(l.created_at), + c.is_test FROM customers c LEFT JOIN licenses l ON c.id = l.customer_id - GROUP BY c.id, c.name, c.email, c.created_at + WHERE (%s OR c.is_test = false) + GROUP BY c.id, c.name, c.email, c.created_at, c.is_test ORDER BY c.name - """) + """ + + cur.execute(query, (show_test,)) customers = [] results = cur.fetchall() @@ -239,10 +248,13 @@ def customers_licenses(): 'license_count': row[4], 'active_licenses': row[5], 'test_licenses': row[6], - 'last_license_created': row[7] + 'last_license_created': row[7], + 'is_test': row[8] }) - return render_template("customers_licenses.html", customers=customers) + return render_template("customers_licenses.html", + customers=customers, + show_test=show_test) finally: cur.close()