From 2f1c7b5653a283c6de15205bcf570b8f452f5424 Mon Sep 17 00:00:00 2001 From: Tim Eertmoed Date: Sun, 12 Oct 2025 14:10:10 +0200 Subject: [PATCH] srv/poe_manager/app.py aktualisiert --- srv/poe_manager/app.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/srv/poe_manager/app.py b/srv/poe_manager/app.py index 79d8e2a..1251012 100644 --- a/srv/poe_manager/app.py +++ b/srv/poe_manager/app.py @@ -221,10 +221,9 @@ def devices(): switch_hostname = request.form.get('switch_hostname') or None is_active = 1 if 'is_active' in request.form else 0 - # --- Prüfen, ob nur der Switch geändert wurde --- - if mac is None and rpi_ip is None and port is None and name is None and switch_hostname: + # --- Nur Switch ändern --- + if switch_hostname is not None and not any([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!") return redirect(url_for('devices')) @@ -244,18 +243,18 @@ def devices(): flash("Fehler beim Ändern des Switch!") return redirect(url_for('devices')) - # --- Nur Pflichtfelder prüfen --- + # --- Normales Gerät bearbeiten --- 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üfung auf doppelte IP --- + # 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() if ip_device: flash(f"IP-Adresse existiert bereits für Gerät '{ip_device['name']}'!") return redirect(url_for('devices')) - # --- Prüfung auf doppelte MAC --- + # 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() if mac_device: flash(f"MAC-Adresse existiert bereits für Gerät '{mac_device['name']}'!") @@ -264,16 +263,14 @@ def devices(): try: conn.execute(""" UPDATE devices - SET mac=?, rpi_ip=?, port=?, name=?, switch_hostname=?, is_active=? + SET mac=?, rpi_ip=?, port=?, name=?, is_active=? WHERE mac=? - """, (mac, rpi_ip, port, name, switch_hostname, is_active, old_mac)) + """, (mac, rpi_ip, port, name, is_active, old_mac)) conn.commit() flash(f"Gerät {name} aktualisiert.") except sqlite3.IntegrityError: flash("Fehler beim Aktualisieren des Geräts!") - return redirect(url_for('devices')) - # ----------------------- # Gerät löschen # -----------------------