From 3a0bd3b55418d100f857eefe5961ac0512c8bdac Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Mon, 2 Jun 2025 14:05:58 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20"Refactor=20authentication=20log?= =?UTF-8?q?ic=20in=20backend/app.py=20(=F0=9F=90=9B)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/backend/app.py b/backend/app.py index cf43d878..25b744e5 100644 --- a/backend/app.py +++ b/backend/app.py @@ -2049,6 +2049,39 @@ def locations_page(): """Multi-Location-System Verwaltungsseite.""" return render_template("locations.html", title="Standortverwaltung") +@app.route("/admin/steckdosen-monitoring") +@login_required +@admin_required +def admin_plug_monitoring(): + """ + Administrator-Übersicht für Steckdosen-Monitoring. + Zeigt detaillierte Historie aller Smart Plug Status-Änderungen. + """ + app_logger.info(f"Admin {current_user.name} (ID: {current_user.id}) öffnet Steckdosen-Monitoring") + + try: + # Statistiken für die letzten 24 Stunden abrufen + stats_24h = PlugStatusLog.get_status_statistics(hours=24) + + # Alle Drucker für Filter-Dropdown + db_session = get_db_session() + printers = db_session.query(Printer).filter(Printer.active == True).all() + db_session.close() + + return render_template('admin_plug_monitoring.html', + stats=stats_24h, + printers=printers, + page_title="Steckdosen-Monitoring", + breadcrumb=[ + {"name": "Admin-Dashboard", "url": url_for("admin_page")}, + {"name": "Steckdosen-Monitoring", "url": "#"} + ]) + + except Exception as e: + app_logger.error(f"Fehler beim Laden der Steckdosen-Monitoring-Seite: {str(e)}") + flash("Fehler beim Laden der Steckdosen-Monitoring-Daten.", "error") + return redirect(url_for("admin_page")) + @app.route("/validation-demo") @login_required def validation_demo():