diff --git a/srv/poe_manager/app.py b/srv/poe_manager/app.py index c21c30d..31d0fe5 100644 --- a/srv/poe_manager/app.py +++ b/srv/poe_manager/app.py @@ -376,26 +376,21 @@ def switches(): conn.close() return render_template('switche.html', switches=switches) -@app.route('/switches/delete/', methods=['POST']) -def delete_switch(id): - switch = Switch.query.get_or_404(id) - # Prüfen, ob noch Geräte diesem Switch zugeordnet sind - assigned_devices = Device.query.filter_by(switch_hostname=switch.hostname).all() - - if assigned_devices: - # Liste der Gerätenamen - device_names = [d.hostname for d in assigned_devices] - flash(f"Folgende Geräte sind noch dem Switch '{switch.hostname}' zugewiesen: {', '.join(device_names)}", "danger") +@app.route('/switches/delete/', methods=['POST']) +@login_required +def delete_switch(hostname): + conn = get_db_connection() + devices = conn.execute("SELECT name FROM devices WHERE switch_hostname=?", (hostname,)).fetchall() + if devices: + device_names = [d['name'] for d in devices] + flash(f"Folgende Geräte sind noch dem Switch '{hostname}' zugewiesen: {', '.join(device_names)}", "danger") + conn.close() return redirect(url_for('switches')) - try: - db.session.delete(switch) - db.session.commit() - flash(f"Switch '{switch.hostname}' wurde gelöscht.", "success") - except Exception as e: - db.session.rollback() - flash(f"Fehler beim Löschen des Switches: {e}", "danger") - + conn.execute("DELETE FROM switches WHERE hostname=?", (hostname,)) + conn.commit() + conn.close() + flash(f"Switch '{hostname}' gelöscht.", "success") return redirect(url_for('switches')) @app.route("/get_log")