Dashboard angepasst

Dieser Commit ist enthalten in:
2025-06-22 23:27:33 +02:00
Ursprung 4a139464d1
Commit cdf81e2de5

Datei anzeigen

@@ -181,17 +181,16 @@ def dashboard():
recent_activities = cur.fetchall() if cur.rowcount > 0 else [] recent_activities = cur.fetchall() if cur.rowcount > 0 else []
# Lizenztypen zählen (nur echte Lizenzen) # Lizenztypen zählen (nur echte Lizenzen)
# Note: This assumes you have a license_type field or similar to distinguish between full and test versions
# For now, counting all non-test licenses as full licenses
cur.execute(""" cur.execute("""
SELECT COUNT(*) as full_licenses SELECT
COUNT(CASE WHEN license_type = 'full' THEN 1 END) as full_licenses,
COUNT(CASE WHEN license_type = 'test' THEN 1 END) as test_licenses
FROM licenses FROM licenses
WHERE is_fake = false WHERE is_fake = false
""") """)
license_count = cur.fetchone() license_types = cur.fetchone()
full_licenses = license_count[0] if license_count and license_count[0] else 0 full_licenses = license_types[0] if license_types and license_types[0] is not None else 0
# For now, we don't distinguish between full and test versions test_version_licenses = license_types[1] if license_types and license_types[1] is not None else 0
test_version_licenses = 0
# Lizenzstatus zählen (nur echte Lizenzen) # Lizenzstatus zählen (nur echte Lizenzen)
cur.execute(""" cur.execute("""
@@ -257,9 +256,9 @@ def dashboard():
'active_sessions': active_sessions, # Admin-Panel Sessions 'active_sessions': active_sessions, # Admin-Panel Sessions
'active_usage': active_usage, # Aktive Kunden-Nutzung 'active_usage': active_usage, # Aktive Kunden-Nutzung
'active_licenses': active_licenses_count, 'active_licenses': active_licenses_count,
'full_licenses': full_licenses, 'full_licenses': full_licenses or 0,
'test_licenses': test_version_licenses, # Test versions, not test data 'fake_licenses': test_version_licenses or 0, # Test versions (license_type='test'), not fake data
'fake_data_count': test_licenses_count, # Actual test data count 'fake_data_count': test_licenses_count, # Actual test data count (is_fake=true)
'fake_customers_count': fake_customers_count, 'fake_customers_count': fake_customers_count,
'fake_resources_count': 0, 'fake_resources_count': 0,
'expired_licenses': expired_licenses, 'expired_licenses': expired_licenses,
@@ -286,8 +285,8 @@ def dashboard():
COUNT(CASE WHEN status = 'allocated' THEN 1 END) as allocated, COUNT(CASE WHEN status = 'allocated' THEN 1 END) as allocated,
COUNT(CASE WHEN status = 'quarantine' THEN 1 END) as quarantine, COUNT(CASE WHEN status = 'quarantine' THEN 1 END) as quarantine,
COUNT(*) as total COUNT(*) as total
FROM resource_pool FROM resource_pools
WHERE type = %s AND is_fake = false WHERE resource_type = %s AND is_fake = false
""", (resource_type,)) """, (resource_type,))
result = cur.fetchone() result = cur.fetchone()
@@ -323,10 +322,12 @@ def dashboard():
'total': 0, 'total': 0,
'available_percent': 0 'available_percent': 0
} }
# Reset the connection after error
conn.rollback()
# Count test resources separately # Count test resources separately
try: try:
cur.execute("SELECT COUNT(*) FROM resource_pool WHERE is_fake = true") cur.execute("SELECT COUNT(*) FROM resource_pools WHERE is_fake = true")
fake_resources_count = cur.fetchone()[0] if cur.rowcount > 0 else 0 fake_resources_count = cur.fetchone()[0] if cur.rowcount > 0 else 0
stats['fake_resources_count'] = fake_resources_count stats['fake_resources_count'] = fake_resources_count
except: except:
@@ -1370,3 +1371,49 @@ def test_api_key():
cur.close() cur.close()
if 'conn' in locals(): if 'conn' in locals():
conn.close() conn.close()
@admin_bp.route("/test-license-types")
@login_required
def test_license_types():
"""Test route to check license type counts"""
try:
conn = get_connection()
cur = conn.cursor()
# Count license types
cur.execute("""
SELECT
COUNT(CASE WHEN license_type = 'full' THEN 1 END) as full_licenses,
COUNT(CASE WHEN license_type = 'test' THEN 1 END) as test_licenses,
COUNT(*) as total_licenses
FROM licenses
WHERE is_fake = false
""")
result = cur.fetchone()
# Count all licenses by type
cur.execute("""
SELECT license_type, COUNT(*) as count
FROM licenses
GROUP BY license_type
ORDER BY license_type
""")
all_types = cur.fetchall()
return jsonify({
'full_licenses': result[0] if result and result[0] is not None else 0,
'test_licenses': result[1] if result and result[1] is not None else 0,
'total_non_fake': result[2] if result and result[2] is not None else 0,
'all_license_types': [{'type': row[0], 'count': row[1]} for row in all_types] if all_types else []
})
except Exception as e:
return jsonify({
'error': str(e)
})
finally:
if 'cur' in locals():
cur.close()
if 'conn' in locals():
conn.close()