Kunden & Lizenzen gehen wieder

Dieser Commit ist enthalten in:
2025-06-18 01:50:39 +02:00
Ursprung 231aa4caed
Commit 6e7df47d82
4 geänderte Dateien mit 84 neuen und 136 gelöschten Zeilen

Datei anzeigen

@@ -104,7 +104,15 @@ def resources():
count = row[3]
if res_type not in stats:
stats[res_type] = {'total': 0, 'available': 0, 'allocated': 0, 'quarantined': 0, 'test': 0, 'prod': 0}
stats[res_type] = {
'total': 0,
'available': 0,
'allocated': 0,
'quarantined': 0,
'test': 0,
'prod': 0,
'available_percent': 0
}
stats[res_type]['total'] += count
stats[res_type][status] = stats[res_type].get(status, 0) + count
@@ -113,13 +121,38 @@ def resources():
else:
stats[res_type]['prod'] += count
# Calculate percentages
for res_type in stats:
if stats[res_type]['total'] > 0:
stats[res_type]['available_percent'] = int((stats[res_type]['available'] / stats[res_type]['total']) * 100)
# Pagination parameters (simple defaults for now)
try:
page = int(request.args.get('page', '1') or '1')
except (ValueError, TypeError):
page = 1
per_page = 50
total = len(resources_list)
total_pages = (total + per_page - 1) // per_page if total > 0 else 1
# Sort parameters
sort_by = request.args.get('sort', 'id')
sort_order = request.args.get('order', 'asc')
return render_template('resources.html',
resources=resources_list,
stats=stats,
resource_type=resource_type,
status_filter=status_filter,
search_query=search_query,
show_test=show_test)
search=search_query, # Changed from search_query to search
show_test=show_test,
total=total,
page=page,
total_pages=total_pages,
sort_by=sort_by,
sort_order=sort_order,
recent_activities=[], # Empty for now
datetime=datetime) # For template datetime usage
except Exception as e:
logging.error(f"Fehler beim Laden der Ressourcen: {str(e)}")
@@ -135,7 +168,7 @@ def resources():
@resource_bp.route('/resources/quarantine/<int:resource_id>', methods=['POST'])
@login_required
def quarantine_resource(resource_id):
def quarantine(resource_id):
"""Ressource in Quarantäne versetzen"""
conn = get_connection()
cur = conn.cursor()
@@ -200,7 +233,7 @@ def quarantine_resource(resource_id):
@resource_bp.route('/resources/release', methods=['POST'])
@login_required
def release_resources():
def release():
"""Ressourcen aus Quarantäne freigeben oder von Lizenz entfernen"""
conn = get_connection()
cur = conn.cursor()
@@ -450,7 +483,7 @@ def resource_metrics():
@resource_bp.route('/resources/report', methods=['GET'])
@login_required
def resource_report():
def resources_report():
"""Generiert einen Ressourcen-Report"""
from io import BytesIO
import xlsxwriter