diff --git a/v2_adminpanel/app.py b/v2_adminpanel/app.py index b1abb26..b2d5804 100644 --- a/v2_adminpanel/app.py +++ b/v2_adminpanel/app.py @@ -4469,26 +4469,60 @@ def allocate_resources_api(): @login_required def check_resource_availability(): """Prüft verfügbare Ressourcen""" + resource_type = request.args.get('type', '') + count = request.args.get('count', 10, type=int) + show_test = request.args.get('show_test', 'false').lower() == 'true' + conn = get_connection() cur = conn.cursor() - cur.execute(""" - SELECT - resource_type, - COUNT(*) as available - FROM resource_pools - WHERE status = 'available' - GROUP BY resource_type - """) - - availability = {} - for row in cur.fetchall(): - availability[row[0]] = row[1] - - cur.close() - conn.close() - - return jsonify(availability) + if resource_type: + # Spezifische Ressourcen für einen Typ + cur.execute(""" + SELECT id, resource_value + FROM resource_pools + WHERE status = 'available' + AND resource_type = %s + AND is_test = %s + ORDER BY resource_value + LIMIT %s + """, (resource_type, show_test, count)) + + resources = [] + for row in cur.fetchall(): + resources.append({ + 'id': row[0], + 'value': row[1] + }) + + cur.close() + conn.close() + + return jsonify({ + 'available': resources, + 'type': resource_type, + 'count': len(resources) + }) + else: + # Zusammenfassung aller Typen + cur.execute(""" + SELECT + resource_type, + COUNT(*) as available + FROM resource_pools + WHERE status = 'available' + AND is_test = %s + GROUP BY resource_type + """, (show_test,)) + + availability = {} + for row in cur.fetchall(): + availability[row[0]] = row[1] + + cur.close() + conn.close() + + return jsonify(availability) @app.route('/api/global-search', methods=['GET']) @login_required diff --git a/v2_adminpanel/templates/customers_licenses.html b/v2_adminpanel/templates/customers_licenses.html index f7c8a6f..ff92edd 100644 --- a/v2_adminpanel/templates/customers_licenses.html +++ b/v2_adminpanel/templates/customers_licenses.html @@ -234,7 +234,7 @@