Bugfix Intervall

This commit is contained in:
2025-09-26 19:10:03 +00:00
parent 84a24c811b
commit 2f50633eff
2 changed files with 39 additions and 25 deletions

View File

@@ -105,26 +105,40 @@ def index():
return render_template("index.html", devices=devices, status=status_dict) return render_template("index.html", devices=devices, status=status_dict)
@app.route('/settings', methods=['GET', 'POST']) @app.route("/settings", methods=["GET", "POST"])
@login_required @login_required
def settings(): def settings():
if not current_user.is_admin: if not current_user.is_admin:
flash("Zugriff verweigert!") flash("Nur Admins dürfen die Einstellungen ändern!")
return redirect(url_for('index')) return redirect(url_for("index"))
conn = get_db_connection()
interval_row = conn.execute("SELECT value FROM settings WHERE key='check_interval'").fetchone()
interval_min = int(interval_row['value']) // 60 if interval_row else 5 # Standard 5 Minuten
if request.method == 'POST':
new_interval_min = int(request.form['interval'])
conn.execute("INSERT OR REPLACE INTO settings (key, value) VALUES ('check_interval', ?)", (new_interval_min*60,))
conn.commit()
flash(f"Intervall auf {new_interval_min} Minuten gesetzt.")
interval_min = new_interval_min
# Aktuellen Prüfintervall laden
conn = sqlite3.connect("sqlite.db")
c = conn.cursor()
c.execute("SELECT value FROM settings WHERE key='interval'")
row = c.fetchone()
interval = int(row[0]) if row else 5 # Default 5 Minuten
conn.close() conn.close()
return render_template('settings.html', interval=interval_min)
if request.method == "POST":
new_interval = int(request.form["interval"])
conn = sqlite3.connect("sqlite.db")
c = conn.cursor()
# upsert
c.execute("INSERT INTO settings (key, value) VALUES (?, ?) "
"ON CONFLICT(key) DO UPDATE SET value=excluded.value",
("interval", new_interval))
conn.commit()
conn.close()
# rpi-check.service neu starten
import subprocess
subprocess.run(["systemctl", "restart", "rpi-check.service"])
flash(f"Intervall auf {new_interval} Minuten gesetzt und Service neu gestartet!")
return redirect(url_for("settings"))
return render_template("settings.html", interval=interval)
@app.route('/devices', methods=['GET', 'POST']) @app.route('/devices', methods=['GET', 'POST'])
@login_required @login_required

View File

@@ -3,6 +3,16 @@
<h2>Settings</h2> <h2>Settings</h2>
<form method="post" class="row g-2">
<div class="col-auto">
<label for="interval" class="form-label">Prüfintervall (Minuten):</label>
<input type="number" name="interval" id="interval" class="form-control" value="{{ interval }}" min="1" required>
</div>
<div class="col-auto align-self-end">
<button type="submit" class="btn btn-success">Speichern & Service neustarten</button>
</div>
</form>
{% with messages = get_flashed_messages() %} {% with messages = get_flashed_messages() %}
{% if messages %} {% if messages %}
<div class="mt-2 alert alert-info"> <div class="mt-2 alert alert-info">
@@ -11,14 +21,4 @@
{% endif %} {% endif %}
{% endwith %} {% endwith %}
<form method="post" class="row g-3">
<div class="col-md-4">
<label for="interval" class="form-label">Prüfintervall (Minuten)</label>
<input type="number" class="form-control" id="interval" name="interval" value="{{ interval }}" min="1" required>
</div>
<div class="col-12">
<button class="btn btn-primary">Speichern</button>
</div>
</form>
{% endblock %} {% endblock %}