Dashboard angepasst
Dieser Commit ist enthalten in:
@@ -181,17 +181,16 @@ def dashboard():
|
||||
recent_activities = cur.fetchall() if cur.rowcount > 0 else []
|
||||
|
||||
# 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("""
|
||||
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
|
||||
WHERE is_fake = false
|
||||
""")
|
||||
license_count = cur.fetchone()
|
||||
full_licenses = license_count[0] if license_count and license_count[0] else 0
|
||||
# For now, we don't distinguish between full and test versions
|
||||
test_version_licenses = 0
|
||||
license_types = cur.fetchone()
|
||||
full_licenses = license_types[0] if license_types and license_types[0] is not None else 0
|
||||
test_version_licenses = license_types[1] if license_types and license_types[1] is not None else 0
|
||||
|
||||
# Lizenzstatus zählen (nur echte Lizenzen)
|
||||
cur.execute("""
|
||||
@@ -257,9 +256,9 @@ def dashboard():
|
||||
'active_sessions': active_sessions, # Admin-Panel Sessions
|
||||
'active_usage': active_usage, # Aktive Kunden-Nutzung
|
||||
'active_licenses': active_licenses_count,
|
||||
'full_licenses': full_licenses,
|
||||
'test_licenses': test_version_licenses, # Test versions, not test data
|
||||
'fake_data_count': test_licenses_count, # Actual test data count
|
||||
'full_licenses': full_licenses or 0,
|
||||
'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 (is_fake=true)
|
||||
'fake_customers_count': fake_customers_count,
|
||||
'fake_resources_count': 0,
|
||||
'expired_licenses': expired_licenses,
|
||||
@@ -286,8 +285,8 @@ def dashboard():
|
||||
COUNT(CASE WHEN status = 'allocated' THEN 1 END) as allocated,
|
||||
COUNT(CASE WHEN status = 'quarantine' THEN 1 END) as quarantine,
|
||||
COUNT(*) as total
|
||||
FROM resource_pool
|
||||
WHERE type = %s AND is_fake = false
|
||||
FROM resource_pools
|
||||
WHERE resource_type = %s AND is_fake = false
|
||||
""", (resource_type,))
|
||||
|
||||
result = cur.fetchone()
|
||||
@@ -323,10 +322,12 @@ def dashboard():
|
||||
'total': 0,
|
||||
'available_percent': 0
|
||||
}
|
||||
# Reset the connection after error
|
||||
conn.rollback()
|
||||
|
||||
# Count test resources separately
|
||||
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
|
||||
stats['fake_resources_count'] = fake_resources_count
|
||||
except:
|
||||
@@ -1370,3 +1371,49 @@ def test_api_key():
|
||||
cur.close()
|
||||
if 'conn' in locals():
|
||||
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()
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren