srv/poe_manager/app.py aktualisiert
This commit is contained in:
@@ -221,10 +221,9 @@ def devices():
|
|||||||
switch_hostname = request.form.get('switch_hostname') or None
|
switch_hostname = request.form.get('switch_hostname') or None
|
||||||
is_active = 1 if 'is_active' in request.form else 0
|
is_active = 1 if 'is_active' in request.form else 0
|
||||||
|
|
||||||
# --- Prüfen, ob nur der Switch geändert wurde ---
|
# --- Nur Switch ändern ---
|
||||||
if mac is None and rpi_ip is None and port is None and name is None and switch_hostname:
|
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()
|
device = conn.execute("SELECT name, switch_hostname FROM devices WHERE mac=?", (old_mac,)).fetchone()
|
||||||
|
|
||||||
if not device:
|
if not device:
|
||||||
flash("Gerät nicht gefunden!")
|
flash("Gerät nicht gefunden!")
|
||||||
return redirect(url_for('devices'))
|
return redirect(url_for('devices'))
|
||||||
@@ -244,18 +243,18 @@ def devices():
|
|||||||
flash("Fehler beim Ändern des Switch!")
|
flash("Fehler beim Ändern des Switch!")
|
||||||
return redirect(url_for('devices'))
|
return redirect(url_for('devices'))
|
||||||
|
|
||||||
# --- Nur Pflichtfelder prüfen ---
|
# --- Normales Gerät bearbeiten ---
|
||||||
if not all([old_mac, mac, rpi_ip, name]):
|
if not all([old_mac, mac, rpi_ip, name]):
|
||||||
flash("Felder 'MAC', 'IP' und 'Name' müssen ausgefüllt sein!")
|
flash("Felder 'MAC', 'IP' und 'Name' müssen ausgefüllt sein!")
|
||||||
return redirect(url_for('devices'))
|
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()
|
ip_device = conn.execute("SELECT name FROM devices WHERE rpi_ip=? AND mac<>?", (rpi_ip, old_mac)).fetchone()
|
||||||
if ip_device:
|
if ip_device:
|
||||||
flash(f"IP-Adresse existiert bereits für Gerät '{ip_device['name']}'!")
|
flash(f"IP-Adresse existiert bereits für Gerät '{ip_device['name']}'!")
|
||||||
return redirect(url_for('devices'))
|
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()
|
mac_device = conn.execute("SELECT name FROM devices WHERE mac=? AND mac<>?", (mac, old_mac)).fetchone()
|
||||||
if mac_device:
|
if mac_device:
|
||||||
flash(f"MAC-Adresse existiert bereits für Gerät '{mac_device['name']}'!")
|
flash(f"MAC-Adresse existiert bereits für Gerät '{mac_device['name']}'!")
|
||||||
@@ -264,16 +263,14 @@ def devices():
|
|||||||
try:
|
try:
|
||||||
conn.execute("""
|
conn.execute("""
|
||||||
UPDATE devices
|
UPDATE devices
|
||||||
SET mac=?, rpi_ip=?, port=?, name=?, switch_hostname=?, is_active=?
|
SET mac=?, rpi_ip=?, port=?, name=?, is_active=?
|
||||||
WHERE mac=?
|
WHERE mac=?
|
||||||
""", (mac, rpi_ip, port, name, switch_hostname, is_active, old_mac))
|
""", (mac, rpi_ip, port, name, is_active, old_mac))
|
||||||
conn.commit()
|
conn.commit()
|
||||||
flash(f"Gerät {name} aktualisiert.")
|
flash(f"Gerät {name} aktualisiert.")
|
||||||
except sqlite3.IntegrityError:
|
except sqlite3.IntegrityError:
|
||||||
flash("Fehler beim Aktualisieren des Geräts!")
|
flash("Fehler beim Aktualisieren des Geräts!")
|
||||||
|
|
||||||
return redirect(url_for('devices'))
|
|
||||||
|
|
||||||
# -----------------------
|
# -----------------------
|
||||||
# Gerät löschen
|
# Gerät löschen
|
||||||
# -----------------------
|
# -----------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user