From 7a1e9d88e5bd3c991fb3066b3936711d8a3a48ca Mon Sep 17 00:00:00 2001 From: Tim Eertmoed Date: Sun, 12 Oct 2025 14:29:02 +0200 Subject: [PATCH] srv/poe_manager/app.py aktualisiert --- srv/poe_manager/app.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/srv/poe_manager/app.py b/srv/poe_manager/app.py index 1251012..1a199c4 100644 --- a/srv/poe_manager/app.py +++ b/srv/poe_manager/app.py @@ -222,7 +222,8 @@ def devices(): is_active = 1 if 'is_active' in request.form else 0 # --- Nur Switch ändern --- - if switch_hostname is not None and not any([mac, rpi_ip, name]): + # Prüfen, ob nur das Switch-Feld gesendet wurde und die anderen Felder leer sind + if 'switch_hostname' in request.form and all(not f for f in [mac, rpi_ip, name]): device = conn.execute("SELECT name, switch_hostname FROM devices WHERE mac=?", (old_mac,)).fetchone() if not device: flash("Gerät nicht gefunden!") @@ -244,22 +245,30 @@ def devices(): return redirect(url_for('devices')) # --- Normales Gerät bearbeiten --- + # Pflichtfelder prüfen if not all([old_mac, mac, rpi_ip, name]): flash("Felder 'MAC', 'IP' und 'Name' müssen ausgefüllt sein!") return redirect(url_for('devices')) # Prüfen auf doppelte IP außer das aktuelle Gerät - ip_device = conn.execute("SELECT name FROM devices WHERE rpi_ip=? AND mac<>?", (rpi_ip, old_mac)).fetchone() + ip_device = conn.execute( + "SELECT name FROM devices WHERE rpi_ip=? AND mac<>?", + (rpi_ip, old_mac) + ).fetchone() if ip_device: flash(f"IP-Adresse existiert bereits für Gerät '{ip_device['name']}'!") return redirect(url_for('devices')) # Prüfen auf doppelte MAC außer das aktuelle Gerät - mac_device = conn.execute("SELECT name FROM devices WHERE mac=? AND mac<>?", (mac, old_mac)).fetchone() + mac_device = conn.execute( + "SELECT name FROM devices WHERE mac=? AND mac<>?", + (mac, old_mac) + ).fetchone() if mac_device: flash(f"MAC-Adresse existiert bereits für Gerät '{mac_device['name']}'!") return redirect(url_for('devices')) + # Update durchführen try: conn.execute(""" UPDATE devices @@ -271,6 +280,7 @@ def devices(): except sqlite3.IntegrityError: flash("Fehler beim Aktualisieren des Geräts!") + # ----------------------- # Gerät löschen # -----------------------