diff --git a/backend/app.py b/backend/app.py index 3614e2bc9..249b28212 100644 --- a/backend/app.py +++ b/backend/app.py @@ -892,40 +892,69 @@ def api_finish_job(job_id): @app.route("/api/printers", methods=["GET"]) @login_required def api_get_printers(): - """API-Endpunkt für Drucker-Liste mit konsistenter Response-Struktur""" + """API-Endpunkt für Drucker-Liste mit konsistenter Response-Struktur + + Query-Parameter: + - include_inactive: 'true' um auch inaktive Drucker anzuzeigen (default: 'true') + - show_all: 'true' um ALLE Drucker anzuzeigen, unabhängig vom Status + """ try: from models import get_db_session, Printer + # Query-Parameter auslesen + include_inactive = request.args.get('include_inactive', 'true').lower() == 'true' + show_all = request.args.get('show_all', 'true').lower() == 'true' + db_session = get_db_session() - # Alle Drucker für API-Abfragen anzeigen (unabhängig von active-Status) - printers = db_session.query(Printer).all() + + # Basis-Query - standardmäßig ALLE Drucker zeigen für Dropdown-Auswahl + query = db_session.query(Printer) + + # Optional: Nur aktive Drucker filtern (wenn explizit angefordert) + if not include_inactive and not show_all: + query = query.filter(Printer.active == True) + + printers = query.all() printer_list = [] for printer in printers: + # Status-Bestimmung: Wenn nicht erreichbar, dann "offline" + status = printer.status or "offline" + + # Zusätzliche Status-Informationen + is_reachable = status not in ["offline", "unreachable", "error"] + printer_dict = { "id": printer.id, "name": printer.name, "model": printer.model or "Unbekanntes Modell", "location": printer.location or "Unbekannter Standort", - "status": printer.status or "offline", + "status": status, "ip_address": printer.ip_address, "plug_ip": printer.plug_ip, "active": getattr(printer, 'active', True), + "is_reachable": is_reachable, # Zusätzliches Feld für UI + "is_selectable": True, # WICHTIG: Alle Drucker sind auswählbar! "created_at": printer.created_at.isoformat() if printer.created_at else datetime.now().isoformat(), - "last_checked": printer.last_checked.isoformat() if printer.last_checked else None + "last_checked": printer.last_checked.isoformat() if printer.last_checked else None, + "display_status": f"{printer.name} - {status.title()}" # Für Dropdown-Anzeige } printer_list.append(printer_dict) db_session.close() - app_logger.info(f"✅ API: {len(printer_list)} Drucker abgerufen") + app_logger.info(f"✅ API: {len(printer_list)} Drucker abgerufen (include_inactive={include_inactive})") # Konsistente Response-Struktur wie erwartet return jsonify({ "success": True, "printers": printer_list, "count": len(printer_list), - "message": "Drucker erfolgreich geladen" + "message": "Drucker erfolgreich geladen", + "filters": { + "include_inactive": include_inactive, + "show_all": show_all + } }) except Exception as e: diff --git a/backend/backend/database/myp.db b/backend/backend/database/myp.db index 85d00bce3..d63c4cd2e 100644 Binary files a/backend/backend/database/myp.db and b/backend/backend/database/myp.db differ diff --git a/backend/backend/database/myp.db-shm b/backend/backend/database/myp.db-shm index 399f5962d..e6b31007c 100644 Binary files a/backend/backend/database/myp.db-shm and b/backend/backend/database/myp.db-shm differ diff --git a/backend/backend/database/myp.db-wal b/backend/backend/database/myp.db-wal index 75eafb30f..c1a914fab 100644 Binary files a/backend/backend/database/myp.db-wal and b/backend/backend/database/myp.db-wal differ diff --git a/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc b/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc index 5165ee832..6766d9a38 100644 Binary files a/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc and b/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc differ diff --git a/backend/blueprints/admin_unified.py b/backend/blueprints/admin_unified.py index fa5fde750..a126ccdcc 100644 --- a/backend/blueprints/admin_unified.py +++ b/backend/blueprints/admin_unified.py @@ -423,6 +423,24 @@ def create_user_api(): new_user.set_password(data['password']) db_session.add(new_user) + db_session.flush() # ID generieren für UserPermission + + # Granulare Berechtigungen erstellen + from models import UserPermission + permissions = UserPermission( + user_id=new_user.id, + can_start_jobs=data.get('can_start_jobs', True), # Standard: kann Jobs starten + needs_approval=data.get('needs_approval', False), # Standard: keine Genehmigung nötig + can_approve_jobs=data.get('can_approve_jobs', False) # Standard: kann nicht genehmigen + ) + + # Administratoren bekommen automatisch Genehmigungsrechte + if new_user.role == 'admin': + permissions.can_approve_jobs = True + permissions.can_start_jobs = True + permissions.needs_approval = False + + db_session.add(permissions) db_session.commit() admin_logger.info(f"Neuer Benutzer erstellt: {new_user.username} von Admin {current_user.username}") diff --git a/backend/instance/sessions/001c72fcf4a64d4c87e56ae5cf9647e6_activity.pkl b/backend/instance/sessions/001c72fcf4a64d4c87e56ae5cf9647e6_activity.pkl new file mode 100644 index 000000000..059a82f60 Binary files /dev/null and b/backend/instance/sessions/001c72fcf4a64d4c87e56ae5cf9647e6_activity.pkl differ diff --git a/backend/instance/sessions/0188a7e15a4f83ffb74768edabf9da08_activity.pkl b/backend/instance/sessions/0188a7e15a4f83ffb74768edabf9da08_activity.pkl new file mode 100644 index 000000000..8071d943f Binary files /dev/null and b/backend/instance/sessions/0188a7e15a4f83ffb74768edabf9da08_activity.pkl differ diff --git a/backend/instance/sessions/01c432e0989322122162d7e19ec82d68_activity.pkl b/backend/instance/sessions/01c432e0989322122162d7e19ec82d68_activity.pkl new file mode 100644 index 000000000..b8b4f830b Binary files /dev/null and b/backend/instance/sessions/01c432e0989322122162d7e19ec82d68_activity.pkl differ diff --git a/backend/instance/sessions/01d0fe40f3035e69450854f45f3d1fb3_activity.pkl b/backend/instance/sessions/01d0fe40f3035e69450854f45f3d1fb3_activity.pkl new file mode 100644 index 000000000..d236cbac0 Binary files /dev/null and b/backend/instance/sessions/01d0fe40f3035e69450854f45f3d1fb3_activity.pkl differ diff --git a/backend/instance/sessions/0223e56abc1b50c062445c2dd7d5927c_activity.pkl b/backend/instance/sessions/0223e56abc1b50c062445c2dd7d5927c_activity.pkl new file mode 100644 index 000000000..e3c2dc688 Binary files /dev/null and b/backend/instance/sessions/0223e56abc1b50c062445c2dd7d5927c_activity.pkl differ diff --git a/backend/instance/sessions/04cbd0ad822c08dcd48f5ac1b90ee443_activity.pkl b/backend/instance/sessions/04cbd0ad822c08dcd48f5ac1b90ee443_activity.pkl new file mode 100644 index 000000000..9a3e98889 Binary files /dev/null and b/backend/instance/sessions/04cbd0ad822c08dcd48f5ac1b90ee443_activity.pkl differ diff --git a/backend/instance/sessions/04da67132a820bd962335e984e6cc8c5_activity.pkl b/backend/instance/sessions/04da67132a820bd962335e984e6cc8c5_activity.pkl new file mode 100644 index 000000000..df231f089 Binary files /dev/null and b/backend/instance/sessions/04da67132a820bd962335e984e6cc8c5_activity.pkl differ diff --git a/backend/instance/sessions/05a0fe8993ef7a2e81cbc5206b02b5fe_activity.pkl b/backend/instance/sessions/05a0fe8993ef7a2e81cbc5206b02b5fe_activity.pkl new file mode 100644 index 000000000..834c56a03 Binary files /dev/null and b/backend/instance/sessions/05a0fe8993ef7a2e81cbc5206b02b5fe_activity.pkl differ diff --git a/backend/instance/sessions/082b6dccf079e02eb07ca3be21d33d7c_activity.pkl b/backend/instance/sessions/082b6dccf079e02eb07ca3be21d33d7c_activity.pkl new file mode 100644 index 000000000..e1197f992 Binary files /dev/null and b/backend/instance/sessions/082b6dccf079e02eb07ca3be21d33d7c_activity.pkl differ diff --git a/backend/instance/sessions/0974d4cc751d33166af713a08e663eac_activity.pkl b/backend/instance/sessions/0974d4cc751d33166af713a08e663eac_activity.pkl new file mode 100644 index 000000000..be5e18ae2 Binary files /dev/null and b/backend/instance/sessions/0974d4cc751d33166af713a08e663eac_activity.pkl differ diff --git a/backend/instance/sessions/0c0d278f59035bd5c2692b5a076e198c_activity.pkl b/backend/instance/sessions/0c0d278f59035bd5c2692b5a076e198c_activity.pkl new file mode 100644 index 000000000..56e3313de Binary files /dev/null and b/backend/instance/sessions/0c0d278f59035bd5c2692b5a076e198c_activity.pkl differ diff --git a/backend/instance/sessions/0c5b586b556b4ce1c9ef0ed2c18945e5_activity.pkl b/backend/instance/sessions/0c5b586b556b4ce1c9ef0ed2c18945e5_activity.pkl new file mode 100644 index 000000000..189821f7c Binary files /dev/null and b/backend/instance/sessions/0c5b586b556b4ce1c9ef0ed2c18945e5_activity.pkl differ diff --git a/backend/instance/sessions/0d4880a4652a4924e0d97a3b497a29c4_activity.pkl b/backend/instance/sessions/0d4880a4652a4924e0d97a3b497a29c4_activity.pkl new file mode 100644 index 000000000..cb89a532c Binary files /dev/null and b/backend/instance/sessions/0d4880a4652a4924e0d97a3b497a29c4_activity.pkl differ diff --git a/backend/instance/sessions/1112aaf754e03c0c8d59993e9b7cec2d_activity.pkl b/backend/instance/sessions/1112aaf754e03c0c8d59993e9b7cec2d_activity.pkl new file mode 100644 index 000000000..26f066036 Binary files /dev/null and b/backend/instance/sessions/1112aaf754e03c0c8d59993e9b7cec2d_activity.pkl differ diff --git a/backend/instance/sessions/11561b6b889c0082e67c26ad8c69c1d6_activity.pkl b/backend/instance/sessions/11561b6b889c0082e67c26ad8c69c1d6_activity.pkl new file mode 100644 index 000000000..f6b4a1da6 Binary files /dev/null and b/backend/instance/sessions/11561b6b889c0082e67c26ad8c69c1d6_activity.pkl differ diff --git a/backend/instance/sessions/1586a95887d7d6db078ba7d58ef8183c_activity.pkl b/backend/instance/sessions/1586a95887d7d6db078ba7d58ef8183c_activity.pkl new file mode 100644 index 000000000..620d44f99 Binary files /dev/null and b/backend/instance/sessions/1586a95887d7d6db078ba7d58ef8183c_activity.pkl differ diff --git a/backend/instance/sessions/17bec8c4360c24f63e38d8828182c235_activity.pkl b/backend/instance/sessions/17bec8c4360c24f63e38d8828182c235_activity.pkl new file mode 100644 index 000000000..415b6e068 Binary files /dev/null and b/backend/instance/sessions/17bec8c4360c24f63e38d8828182c235_activity.pkl differ diff --git a/backend/instance/sessions/1877815cd0cb06e0fce4488c584e5e86_activity.pkl b/backend/instance/sessions/1877815cd0cb06e0fce4488c584e5e86_activity.pkl new file mode 100644 index 000000000..79b83fc15 Binary files /dev/null and b/backend/instance/sessions/1877815cd0cb06e0fce4488c584e5e86_activity.pkl differ diff --git a/backend/instance/sessions/1a0a8d4463a287c73e584d8c4d3d6998_activity.pkl b/backend/instance/sessions/1a0a8d4463a287c73e584d8c4d3d6998_activity.pkl new file mode 100644 index 000000000..5395ed9b5 Binary files /dev/null and b/backend/instance/sessions/1a0a8d4463a287c73e584d8c4d3d6998_activity.pkl differ diff --git a/backend/instance/sessions/1c5d3db5cbbbbf5786e9211ecfafa1ab_activity.pkl b/backend/instance/sessions/1c5d3db5cbbbbf5786e9211ecfafa1ab_activity.pkl new file mode 100644 index 000000000..6cea37683 Binary files /dev/null and b/backend/instance/sessions/1c5d3db5cbbbbf5786e9211ecfafa1ab_activity.pkl differ diff --git a/backend/instance/sessions/1da91cee2fd493225e94b32ffd4bdc58_activity.pkl b/backend/instance/sessions/1da91cee2fd493225e94b32ffd4bdc58_activity.pkl new file mode 100644 index 000000000..52d30ea68 Binary files /dev/null and b/backend/instance/sessions/1da91cee2fd493225e94b32ffd4bdc58_activity.pkl differ diff --git a/backend/instance/sessions/235ff854f6eeff7299ac528b76ed0d64_activity.pkl b/backend/instance/sessions/235ff854f6eeff7299ac528b76ed0d64_activity.pkl new file mode 100644 index 000000000..fea109df3 Binary files /dev/null and b/backend/instance/sessions/235ff854f6eeff7299ac528b76ed0d64_activity.pkl differ diff --git a/backend/instance/sessions/247ce8db9d008bb8eba104e8fe6a78ac_activity.pkl b/backend/instance/sessions/247ce8db9d008bb8eba104e8fe6a78ac_activity.pkl new file mode 100644 index 000000000..b33490038 Binary files /dev/null and b/backend/instance/sessions/247ce8db9d008bb8eba104e8fe6a78ac_activity.pkl differ diff --git a/backend/instance/sessions/24e3716637903ba1eb8e2ade7e8d9b11_activity.pkl b/backend/instance/sessions/24e3716637903ba1eb8e2ade7e8d9b11_activity.pkl new file mode 100644 index 000000000..0b3763044 Binary files /dev/null and b/backend/instance/sessions/24e3716637903ba1eb8e2ade7e8d9b11_activity.pkl differ diff --git a/backend/instance/sessions/251e730dc885b301bf1cfe18b7cd1403_activity.pkl b/backend/instance/sessions/251e730dc885b301bf1cfe18b7cd1403_activity.pkl new file mode 100644 index 000000000..9911a76b0 Binary files /dev/null and b/backend/instance/sessions/251e730dc885b301bf1cfe18b7cd1403_activity.pkl differ diff --git a/backend/instance/sessions/273915c3d9841639aae395c8df7c8a1c_activity.pkl b/backend/instance/sessions/273915c3d9841639aae395c8df7c8a1c_activity.pkl new file mode 100644 index 000000000..66b8da98f Binary files /dev/null and b/backend/instance/sessions/273915c3d9841639aae395c8df7c8a1c_activity.pkl differ diff --git a/backend/instance/sessions/27da1608bd080c740db6e396332cbae3_activity.pkl b/backend/instance/sessions/27da1608bd080c740db6e396332cbae3_activity.pkl new file mode 100644 index 000000000..2af078b37 Binary files /dev/null and b/backend/instance/sessions/27da1608bd080c740db6e396332cbae3_activity.pkl differ diff --git a/backend/instance/sessions/2b3abfc653a01e3bf236edff1a64ba7b_activity.pkl b/backend/instance/sessions/2b3abfc653a01e3bf236edff1a64ba7b_activity.pkl new file mode 100644 index 000000000..4b48fa909 Binary files /dev/null and b/backend/instance/sessions/2b3abfc653a01e3bf236edff1a64ba7b_activity.pkl differ diff --git a/backend/instance/sessions/2c3f4b214a3d40f946d5dd91fd2cfb17_activity.pkl b/backend/instance/sessions/2c3f4b214a3d40f946d5dd91fd2cfb17_activity.pkl new file mode 100644 index 000000000..4c216ba7f Binary files /dev/null and b/backend/instance/sessions/2c3f4b214a3d40f946d5dd91fd2cfb17_activity.pkl differ diff --git a/backend/instance/sessions/372624014b90d421a2789d9d7264a218_activity.pkl b/backend/instance/sessions/372624014b90d421a2789d9d7264a218_activity.pkl new file mode 100644 index 000000000..698298b02 Binary files /dev/null and b/backend/instance/sessions/372624014b90d421a2789d9d7264a218_activity.pkl differ diff --git a/backend/instance/sessions/38062a8432cd419461d7721ce2ba7da5_activity.pkl b/backend/instance/sessions/38062a8432cd419461d7721ce2ba7da5_activity.pkl new file mode 100644 index 000000000..6bd80c5e7 Binary files /dev/null and b/backend/instance/sessions/38062a8432cd419461d7721ce2ba7da5_activity.pkl differ diff --git a/backend/instance/sessions/3918383a9c188c467fd7b7909fa5dad2_activity.pkl b/backend/instance/sessions/3918383a9c188c467fd7b7909fa5dad2_activity.pkl new file mode 100644 index 000000000..fcce280e6 Binary files /dev/null and b/backend/instance/sessions/3918383a9c188c467fd7b7909fa5dad2_activity.pkl differ diff --git a/backend/instance/sessions/3cd3bd852d8181dcd16df7bca5301256_activity.pkl b/backend/instance/sessions/3cd3bd852d8181dcd16df7bca5301256_activity.pkl new file mode 100644 index 000000000..023e9460c Binary files /dev/null and b/backend/instance/sessions/3cd3bd852d8181dcd16df7bca5301256_activity.pkl differ diff --git a/backend/instance/sessions/3d378f202a473e7ccb159367e2edb592_activity.pkl b/backend/instance/sessions/3d378f202a473e7ccb159367e2edb592_activity.pkl new file mode 100644 index 000000000..85a9caf17 Binary files /dev/null and b/backend/instance/sessions/3d378f202a473e7ccb159367e2edb592_activity.pkl differ diff --git a/backend/instance/sessions/3f0775bba30bc38197aac449a3ce2298_activity.pkl b/backend/instance/sessions/3f0775bba30bc38197aac449a3ce2298_activity.pkl new file mode 100644 index 000000000..a81d370a8 Binary files /dev/null and b/backend/instance/sessions/3f0775bba30bc38197aac449a3ce2298_activity.pkl differ diff --git a/backend/instance/sessions/3f812aa8c3f8b4eb85da25500c31de8a_activity.pkl b/backend/instance/sessions/3f812aa8c3f8b4eb85da25500c31de8a_activity.pkl new file mode 100644 index 000000000..2059c057a Binary files /dev/null and b/backend/instance/sessions/3f812aa8c3f8b4eb85da25500c31de8a_activity.pkl differ diff --git a/backend/instance/sessions/421706cbd345cca76fde7eb30b41ece3_activity.pkl b/backend/instance/sessions/421706cbd345cca76fde7eb30b41ece3_activity.pkl new file mode 100644 index 000000000..aa2d73786 Binary files /dev/null and b/backend/instance/sessions/421706cbd345cca76fde7eb30b41ece3_activity.pkl differ diff --git a/backend/instance/sessions/451ade5c788c00f152f4bdf11329bb4a_activity.pkl b/backend/instance/sessions/451ade5c788c00f152f4bdf11329bb4a_activity.pkl new file mode 100644 index 000000000..2a33744eb Binary files /dev/null and b/backend/instance/sessions/451ade5c788c00f152f4bdf11329bb4a_activity.pkl differ diff --git a/backend/instance/sessions/45f58e4e2843b15141e87c4bb66c022a_activity.pkl b/backend/instance/sessions/45f58e4e2843b15141e87c4bb66c022a_activity.pkl new file mode 100644 index 000000000..805e8aa04 Binary files /dev/null and b/backend/instance/sessions/45f58e4e2843b15141e87c4bb66c022a_activity.pkl differ diff --git a/backend/instance/sessions/4a3eaba1268770d53522c13bc499dda9_activity.pkl b/backend/instance/sessions/4a3eaba1268770d53522c13bc499dda9_activity.pkl new file mode 100644 index 000000000..f022c46c1 Binary files /dev/null and b/backend/instance/sessions/4a3eaba1268770d53522c13bc499dda9_activity.pkl differ diff --git a/backend/instance/sessions/4a8e7e736f8251b0e83b42ca242cb07d_activity.pkl b/backend/instance/sessions/4a8e7e736f8251b0e83b42ca242cb07d_activity.pkl new file mode 100644 index 000000000..1c94c1994 Binary files /dev/null and b/backend/instance/sessions/4a8e7e736f8251b0e83b42ca242cb07d_activity.pkl differ diff --git a/backend/instance/sessions/4ae8d597a0c61f8d6cb0fe715d7de015_activity.pkl b/backend/instance/sessions/4ae8d597a0c61f8d6cb0fe715d7de015_activity.pkl new file mode 100644 index 000000000..babb76093 Binary files /dev/null and b/backend/instance/sessions/4ae8d597a0c61f8d6cb0fe715d7de015_activity.pkl differ diff --git a/backend/instance/sessions/4c430bc45289494a27d56a95a0d18312_activity.pkl b/backend/instance/sessions/4c430bc45289494a27d56a95a0d18312_activity.pkl new file mode 100644 index 000000000..2a36e5003 Binary files /dev/null and b/backend/instance/sessions/4c430bc45289494a27d56a95a0d18312_activity.pkl differ diff --git a/backend/instance/sessions/4cb782eb69edf6815b5f1592671c06c9_activity.pkl b/backend/instance/sessions/4cb782eb69edf6815b5f1592671c06c9_activity.pkl new file mode 100644 index 000000000..8e36e2cf8 Binary files /dev/null and b/backend/instance/sessions/4cb782eb69edf6815b5f1592671c06c9_activity.pkl differ diff --git a/backend/instance/sessions/51fb3dbe51339d3ce22c31e662faa368_activity.pkl b/backend/instance/sessions/51fb3dbe51339d3ce22c31e662faa368_activity.pkl new file mode 100644 index 000000000..d00d54db4 Binary files /dev/null and b/backend/instance/sessions/51fb3dbe51339d3ce22c31e662faa368_activity.pkl differ diff --git a/backend/instance/sessions/5835683be8985d7ce84472b5d63d24a8_activity.pkl b/backend/instance/sessions/5835683be8985d7ce84472b5d63d24a8_activity.pkl new file mode 100644 index 000000000..ac031de64 Binary files /dev/null and b/backend/instance/sessions/5835683be8985d7ce84472b5d63d24a8_activity.pkl differ diff --git a/backend/instance/sessions/58db286220f0d7bf7920492cccd2fb80_activity.pkl b/backend/instance/sessions/58db286220f0d7bf7920492cccd2fb80_activity.pkl new file mode 100644 index 000000000..dda9e4192 Binary files /dev/null and b/backend/instance/sessions/58db286220f0d7bf7920492cccd2fb80_activity.pkl differ diff --git a/backend/instance/sessions/598e9a28129e940669bafa1b64e05257_activity.pkl b/backend/instance/sessions/598e9a28129e940669bafa1b64e05257_activity.pkl new file mode 100644 index 000000000..d501e01ce Binary files /dev/null and b/backend/instance/sessions/598e9a28129e940669bafa1b64e05257_activity.pkl differ diff --git a/backend/instance/sessions/5a1bdb6a95542085550bd9b9aee92c71_activity.pkl b/backend/instance/sessions/5a1bdb6a95542085550bd9b9aee92c71_activity.pkl new file mode 100644 index 000000000..591a4ff8a Binary files /dev/null and b/backend/instance/sessions/5a1bdb6a95542085550bd9b9aee92c71_activity.pkl differ diff --git a/backend/instance/sessions/5a1d7ce6c4ea654d448a68cd5fcf890b_activity.pkl b/backend/instance/sessions/5a1d7ce6c4ea654d448a68cd5fcf890b_activity.pkl new file mode 100644 index 000000000..8bedf1009 Binary files /dev/null and b/backend/instance/sessions/5a1d7ce6c4ea654d448a68cd5fcf890b_activity.pkl differ diff --git a/backend/instance/sessions/5f6a87ba503fd0b4c28d8cb3d5236b17_activity.pkl b/backend/instance/sessions/5f6a87ba503fd0b4c28d8cb3d5236b17_activity.pkl new file mode 100644 index 000000000..06124bf81 Binary files /dev/null and b/backend/instance/sessions/5f6a87ba503fd0b4c28d8cb3d5236b17_activity.pkl differ diff --git a/backend/instance/sessions/5fdda854d1ab7c7afea5ff7529c0511a_activity.pkl b/backend/instance/sessions/5fdda854d1ab7c7afea5ff7529c0511a_activity.pkl new file mode 100644 index 000000000..3258925c2 Binary files /dev/null and b/backend/instance/sessions/5fdda854d1ab7c7afea5ff7529c0511a_activity.pkl differ diff --git a/backend/instance/sessions/605c721cfeecebf9d8b05257101caeb4_activity.pkl b/backend/instance/sessions/605c721cfeecebf9d8b05257101caeb4_activity.pkl new file mode 100644 index 000000000..0daa2fe37 Binary files /dev/null and b/backend/instance/sessions/605c721cfeecebf9d8b05257101caeb4_activity.pkl differ diff --git a/backend/instance/sessions/65b4b80cc491da1a0abcc82e2b095a33_activity.pkl b/backend/instance/sessions/65b4b80cc491da1a0abcc82e2b095a33_activity.pkl new file mode 100644 index 000000000..e82b9e6e0 Binary files /dev/null and b/backend/instance/sessions/65b4b80cc491da1a0abcc82e2b095a33_activity.pkl differ diff --git a/backend/instance/sessions/69c463891301a82a657987a3ce73fdde_activity.pkl b/backend/instance/sessions/69c463891301a82a657987a3ce73fdde_activity.pkl new file mode 100644 index 000000000..16dc656dd Binary files /dev/null and b/backend/instance/sessions/69c463891301a82a657987a3ce73fdde_activity.pkl differ diff --git a/backend/instance/sessions/6e034d55a1dd483fb1fd58f37921baf1_activity.pkl b/backend/instance/sessions/6e034d55a1dd483fb1fd58f37921baf1_activity.pkl new file mode 100644 index 000000000..a382a03de Binary files /dev/null and b/backend/instance/sessions/6e034d55a1dd483fb1fd58f37921baf1_activity.pkl differ diff --git a/backend/instance/sessions/71eaf98590b8152a5ac77668e42a294b_activity.pkl b/backend/instance/sessions/71eaf98590b8152a5ac77668e42a294b_activity.pkl new file mode 100644 index 000000000..252000999 Binary files /dev/null and b/backend/instance/sessions/71eaf98590b8152a5ac77668e42a294b_activity.pkl differ diff --git a/backend/instance/sessions/7bc50ce24ac9cb97855c53f9fff40ade_activity.pkl b/backend/instance/sessions/7bc50ce24ac9cb97855c53f9fff40ade_activity.pkl new file mode 100644 index 000000000..607d612bb Binary files /dev/null and b/backend/instance/sessions/7bc50ce24ac9cb97855c53f9fff40ade_activity.pkl differ diff --git a/backend/instance/sessions/7bf8691789709d6ff983f917c6ec7144_activity.pkl b/backend/instance/sessions/7bf8691789709d6ff983f917c6ec7144_activity.pkl new file mode 100644 index 000000000..3e7606aa0 Binary files /dev/null and b/backend/instance/sessions/7bf8691789709d6ff983f917c6ec7144_activity.pkl differ diff --git a/backend/instance/sessions/7f0cbbc20baae3ceaf6f0f4690754ad2_activity.pkl b/backend/instance/sessions/7f0cbbc20baae3ceaf6f0f4690754ad2_activity.pkl new file mode 100644 index 000000000..039b71ce6 Binary files /dev/null and b/backend/instance/sessions/7f0cbbc20baae3ceaf6f0f4690754ad2_activity.pkl differ diff --git a/backend/instance/sessions/7fc1e32b08dc2c16d8fba2fd77752c48_activity.pkl b/backend/instance/sessions/7fc1e32b08dc2c16d8fba2fd77752c48_activity.pkl new file mode 100644 index 000000000..ae6ee0f46 Binary files /dev/null and b/backend/instance/sessions/7fc1e32b08dc2c16d8fba2fd77752c48_activity.pkl differ diff --git a/backend/instance/sessions/80a8c3f13874066ee4502eb592d401a5_activity.pkl b/backend/instance/sessions/80a8c3f13874066ee4502eb592d401a5_activity.pkl new file mode 100644 index 000000000..cb98fb548 Binary files /dev/null and b/backend/instance/sessions/80a8c3f13874066ee4502eb592d401a5_activity.pkl differ diff --git a/backend/instance/sessions/8136e340e34762c62075e83d417f82a2_activity.pkl b/backend/instance/sessions/8136e340e34762c62075e83d417f82a2_activity.pkl new file mode 100644 index 000000000..25dcaeb60 Binary files /dev/null and b/backend/instance/sessions/8136e340e34762c62075e83d417f82a2_activity.pkl differ diff --git a/backend/instance/sessions/81d565c03c934c201c37f0aaee0f0993_activity.pkl b/backend/instance/sessions/81d565c03c934c201c37f0aaee0f0993_activity.pkl new file mode 100644 index 000000000..59e42ce6c Binary files /dev/null and b/backend/instance/sessions/81d565c03c934c201c37f0aaee0f0993_activity.pkl differ diff --git a/backend/instance/sessions/899f77ab9551d7579525d3fe623c824d_activity.pkl b/backend/instance/sessions/899f77ab9551d7579525d3fe623c824d_activity.pkl new file mode 100644 index 000000000..c2f48bcef Binary files /dev/null and b/backend/instance/sessions/899f77ab9551d7579525d3fe623c824d_activity.pkl differ diff --git a/backend/instance/sessions/8d595b44be0a3c2e9b80f99581d61a7f_activity.pkl b/backend/instance/sessions/8d595b44be0a3c2e9b80f99581d61a7f_activity.pkl new file mode 100644 index 000000000..7522886b3 Binary files /dev/null and b/backend/instance/sessions/8d595b44be0a3c2e9b80f99581d61a7f_activity.pkl differ diff --git a/backend/instance/sessions/8e8c347c7529a39315450babffdaab59_activity.pkl b/backend/instance/sessions/8e8c347c7529a39315450babffdaab59_activity.pkl new file mode 100644 index 000000000..09e026aad Binary files /dev/null and b/backend/instance/sessions/8e8c347c7529a39315450babffdaab59_activity.pkl differ diff --git a/backend/instance/sessions/903e0431750a1f0b4e5f6dca3861f10b_activity.pkl b/backend/instance/sessions/903e0431750a1f0b4e5f6dca3861f10b_activity.pkl new file mode 100644 index 000000000..51ecc005a Binary files /dev/null and b/backend/instance/sessions/903e0431750a1f0b4e5f6dca3861f10b_activity.pkl differ diff --git a/backend/instance/sessions/95d77056c2dbd89c3a177c56cf318847_activity.pkl b/backend/instance/sessions/95d77056c2dbd89c3a177c56cf318847_activity.pkl new file mode 100644 index 000000000..1cff6ff15 Binary files /dev/null and b/backend/instance/sessions/95d77056c2dbd89c3a177c56cf318847_activity.pkl differ diff --git a/backend/instance/sessions/972a6641f57097aafd4abafa1f043ae6_activity.pkl b/backend/instance/sessions/972a6641f57097aafd4abafa1f043ae6_activity.pkl new file mode 100644 index 000000000..95d06caa8 Binary files /dev/null and b/backend/instance/sessions/972a6641f57097aafd4abafa1f043ae6_activity.pkl differ diff --git a/backend/instance/sessions/9a9278c87fc6d632c0f97590b469c68d_activity.pkl b/backend/instance/sessions/9a9278c87fc6d632c0f97590b469c68d_activity.pkl new file mode 100644 index 000000000..b5e958461 Binary files /dev/null and b/backend/instance/sessions/9a9278c87fc6d632c0f97590b469c68d_activity.pkl differ diff --git a/backend/instance/sessions/9b608844beb374f0cfaf9e159879703f_activity.pkl b/backend/instance/sessions/9b608844beb374f0cfaf9e159879703f_activity.pkl new file mode 100644 index 000000000..949468de6 Binary files /dev/null and b/backend/instance/sessions/9b608844beb374f0cfaf9e159879703f_activity.pkl differ diff --git a/backend/instance/sessions/9b9192b1eec234cb9cc9e4fee6c39ca0_activity.pkl b/backend/instance/sessions/9b9192b1eec234cb9cc9e4fee6c39ca0_activity.pkl new file mode 100644 index 000000000..cde0f5c89 Binary files /dev/null and b/backend/instance/sessions/9b9192b1eec234cb9cc9e4fee6c39ca0_activity.pkl differ diff --git a/backend/instance/sessions/9d0d60297da415a9f884ee031875a252_activity.pkl b/backend/instance/sessions/9d0d60297da415a9f884ee031875a252_activity.pkl new file mode 100644 index 000000000..f4867577e Binary files /dev/null and b/backend/instance/sessions/9d0d60297da415a9f884ee031875a252_activity.pkl differ diff --git a/backend/instance/sessions/a220e9f8a5a545de124f92050bd090b6_activity.pkl b/backend/instance/sessions/a220e9f8a5a545de124f92050bd090b6_activity.pkl new file mode 100644 index 000000000..a7e966398 Binary files /dev/null and b/backend/instance/sessions/a220e9f8a5a545de124f92050bd090b6_activity.pkl differ diff --git a/backend/instance/sessions/a5734a5c513e5aa5816fc6b8f42889fe_activity.pkl b/backend/instance/sessions/a5734a5c513e5aa5816fc6b8f42889fe_activity.pkl new file mode 100644 index 000000000..058bc5ec9 Binary files /dev/null and b/backend/instance/sessions/a5734a5c513e5aa5816fc6b8f42889fe_activity.pkl differ diff --git a/backend/instance/sessions/a8c1ffdaf33469d39d7149a22e1344ef_activity.pkl b/backend/instance/sessions/a8c1ffdaf33469d39d7149a22e1344ef_activity.pkl new file mode 100644 index 000000000..d6b6bbfbd Binary files /dev/null and b/backend/instance/sessions/a8c1ffdaf33469d39d7149a22e1344ef_activity.pkl differ diff --git a/backend/instance/sessions/a939b05f54925dba056507040b1808f9_activity.pkl b/backend/instance/sessions/a939b05f54925dba056507040b1808f9_activity.pkl new file mode 100644 index 000000000..1f3b6b3d6 Binary files /dev/null and b/backend/instance/sessions/a939b05f54925dba056507040b1808f9_activity.pkl differ diff --git a/backend/instance/sessions/aa0435d93b92ea40c57e3f413648ece8_activity.pkl b/backend/instance/sessions/aa0435d93b92ea40c57e3f413648ece8_activity.pkl new file mode 100644 index 000000000..0aae2b0ff Binary files /dev/null and b/backend/instance/sessions/aa0435d93b92ea40c57e3f413648ece8_activity.pkl differ diff --git a/backend/instance/sessions/aa2ba4ec8400f94ad0ed8e94814320dc_activity.pkl b/backend/instance/sessions/aa2ba4ec8400f94ad0ed8e94814320dc_activity.pkl new file mode 100644 index 000000000..b2ea06225 Binary files /dev/null and b/backend/instance/sessions/aa2ba4ec8400f94ad0ed8e94814320dc_activity.pkl differ diff --git a/backend/instance/sessions/ab0d8c18d9fae074f9d55b3d20abaa96_activity.pkl b/backend/instance/sessions/ab0d8c18d9fae074f9d55b3d20abaa96_activity.pkl new file mode 100644 index 000000000..2081b974b Binary files /dev/null and b/backend/instance/sessions/ab0d8c18d9fae074f9d55b3d20abaa96_activity.pkl differ diff --git a/backend/instance/sessions/ac96b40921360f398494512ea1f9f9b3_activity.pkl b/backend/instance/sessions/ac96b40921360f398494512ea1f9f9b3_activity.pkl new file mode 100644 index 000000000..45bb97de6 Binary files /dev/null and b/backend/instance/sessions/ac96b40921360f398494512ea1f9f9b3_activity.pkl differ diff --git a/backend/instance/sessions/ae53be6664d9d1871735e98346ef741c_activity.pkl b/backend/instance/sessions/ae53be6664d9d1871735e98346ef741c_activity.pkl new file mode 100644 index 000000000..354b55cf9 Binary files /dev/null and b/backend/instance/sessions/ae53be6664d9d1871735e98346ef741c_activity.pkl differ diff --git a/backend/instance/sessions/b07eb533d143c0b242f6b1c7e8a0fbac_activity.pkl b/backend/instance/sessions/b07eb533d143c0b242f6b1c7e8a0fbac_activity.pkl new file mode 100644 index 000000000..e8029c3d0 Binary files /dev/null and b/backend/instance/sessions/b07eb533d143c0b242f6b1c7e8a0fbac_activity.pkl differ diff --git a/backend/instance/sessions/b1d42b940026c5944efb9ff1ad69ea74_activity.pkl b/backend/instance/sessions/b1d42b940026c5944efb9ff1ad69ea74_activity.pkl new file mode 100644 index 000000000..f55b7af57 Binary files /dev/null and b/backend/instance/sessions/b1d42b940026c5944efb9ff1ad69ea74_activity.pkl differ diff --git a/backend/instance/sessions/b35036c99e0323403abcde3a30e04ed2_activity.pkl b/backend/instance/sessions/b35036c99e0323403abcde3a30e04ed2_activity.pkl new file mode 100644 index 000000000..b30aaa728 Binary files /dev/null and b/backend/instance/sessions/b35036c99e0323403abcde3a30e04ed2_activity.pkl differ diff --git a/backend/instance/sessions/b3ad368fe6e4e32be68d39528b6198e1_activity.pkl b/backend/instance/sessions/b3ad368fe6e4e32be68d39528b6198e1_activity.pkl new file mode 100644 index 000000000..5728ebffd Binary files /dev/null and b/backend/instance/sessions/b3ad368fe6e4e32be68d39528b6198e1_activity.pkl differ diff --git a/backend/instance/sessions/bda39cc09ac3695e4bb98ac064ef47f4_activity.pkl b/backend/instance/sessions/bda39cc09ac3695e4bb98ac064ef47f4_activity.pkl new file mode 100644 index 000000000..85497f6af Binary files /dev/null and b/backend/instance/sessions/bda39cc09ac3695e4bb98ac064ef47f4_activity.pkl differ diff --git a/backend/instance/sessions/c000b5f0588dfabd4e02d13bdbd34a1f_activity.pkl b/backend/instance/sessions/c000b5f0588dfabd4e02d13bdbd34a1f_activity.pkl new file mode 100644 index 000000000..9bb37a897 Binary files /dev/null and b/backend/instance/sessions/c000b5f0588dfabd4e02d13bdbd34a1f_activity.pkl differ diff --git a/backend/instance/sessions/c2b6e05650e2aecff40972e617e5efd6_activity.pkl b/backend/instance/sessions/c2b6e05650e2aecff40972e617e5efd6_activity.pkl new file mode 100644 index 000000000..153accff6 Binary files /dev/null and b/backend/instance/sessions/c2b6e05650e2aecff40972e617e5efd6_activity.pkl differ diff --git a/backend/instance/sessions/cbc4858f11128d9769cbe94ee2624710_activity.pkl b/backend/instance/sessions/cbc4858f11128d9769cbe94ee2624710_activity.pkl new file mode 100644 index 000000000..eb5ac43f2 Binary files /dev/null and b/backend/instance/sessions/cbc4858f11128d9769cbe94ee2624710_activity.pkl differ diff --git a/backend/instance/sessions/dc86885502dfc635a629c972f6510ffa_activity.pkl b/backend/instance/sessions/dc86885502dfc635a629c972f6510ffa_activity.pkl new file mode 100644 index 000000000..95e3b2384 Binary files /dev/null and b/backend/instance/sessions/dc86885502dfc635a629c972f6510ffa_activity.pkl differ diff --git a/backend/instance/sessions/ddbc99965640836afee57b7063b19d49_activity.pkl b/backend/instance/sessions/ddbc99965640836afee57b7063b19d49_activity.pkl new file mode 100644 index 000000000..e0aead115 Binary files /dev/null and b/backend/instance/sessions/ddbc99965640836afee57b7063b19d49_activity.pkl differ diff --git a/backend/instance/sessions/e0202eab9cdbea413c005423b9f39a2b_activity.pkl b/backend/instance/sessions/e0202eab9cdbea413c005423b9f39a2b_activity.pkl new file mode 100644 index 000000000..c86332e32 Binary files /dev/null and b/backend/instance/sessions/e0202eab9cdbea413c005423b9f39a2b_activity.pkl differ diff --git a/backend/instance/sessions/e2ff35936df40fe30d9a6675f085ac4c_activity.pkl b/backend/instance/sessions/e2ff35936df40fe30d9a6675f085ac4c_activity.pkl new file mode 100644 index 000000000..1e378fff9 Binary files /dev/null and b/backend/instance/sessions/e2ff35936df40fe30d9a6675f085ac4c_activity.pkl differ diff --git a/backend/instance/sessions/e76589a81122fd8788fb7e222d43bb97_activity.pkl b/backend/instance/sessions/e76589a81122fd8788fb7e222d43bb97_activity.pkl new file mode 100644 index 000000000..6ccb82bdb Binary files /dev/null and b/backend/instance/sessions/e76589a81122fd8788fb7e222d43bb97_activity.pkl differ diff --git a/backend/instance/sessions/ebc303d4dbb1b80063cf98276ad75163_activity.pkl b/backend/instance/sessions/ebc303d4dbb1b80063cf98276ad75163_activity.pkl new file mode 100644 index 000000000..019b4abec Binary files /dev/null and b/backend/instance/sessions/ebc303d4dbb1b80063cf98276ad75163_activity.pkl differ diff --git a/backend/instance/sessions/edce37efce75786b38953d8deea8c3ff_activity.pkl b/backend/instance/sessions/edce37efce75786b38953d8deea8c3ff_activity.pkl new file mode 100644 index 000000000..f732acc2e Binary files /dev/null and b/backend/instance/sessions/edce37efce75786b38953d8deea8c3ff_activity.pkl differ diff --git a/backend/instance/sessions/f45275bc4ec122d27fa8d03b0073f066_activity.pkl b/backend/instance/sessions/f45275bc4ec122d27fa8d03b0073f066_activity.pkl new file mode 100644 index 000000000..328dfa87d Binary files /dev/null and b/backend/instance/sessions/f45275bc4ec122d27fa8d03b0073f066_activity.pkl differ diff --git a/backend/instance/sessions/f6d4d0626f0af5fe1c18f7a8b6322c8b_activity.pkl b/backend/instance/sessions/f6d4d0626f0af5fe1c18f7a8b6322c8b_activity.pkl new file mode 100644 index 000000000..6e5114828 Binary files /dev/null and b/backend/instance/sessions/f6d4d0626f0af5fe1c18f7a8b6322c8b_activity.pkl differ diff --git a/backend/instance/sessions/f8febfa7e0ecfff93566e35a3d4477a5_activity.pkl b/backend/instance/sessions/f8febfa7e0ecfff93566e35a3d4477a5_activity.pkl new file mode 100644 index 000000000..7358d2132 Binary files /dev/null and b/backend/instance/sessions/f8febfa7e0ecfff93566e35a3d4477a5_activity.pkl differ diff --git a/backend/instance/sessions/f902ad7fd4466628286c35f2150dd8f9_activity.pkl b/backend/instance/sessions/f902ad7fd4466628286c35f2150dd8f9_activity.pkl new file mode 100644 index 000000000..f6bcbd81c Binary files /dev/null and b/backend/instance/sessions/f902ad7fd4466628286c35f2150dd8f9_activity.pkl differ diff --git a/backend/instance/sessions/f9d73f953b8d0a4035486d2db61c1c45_activity.pkl b/backend/instance/sessions/f9d73f953b8d0a4035486d2db61c1c45_activity.pkl new file mode 100644 index 000000000..6ca91101c Binary files /dev/null and b/backend/instance/sessions/f9d73f953b8d0a4035486d2db61c1c45_activity.pkl differ diff --git a/backend/instance/sessions/fe6d518387bfaf14184f9a624a876f82_activity.pkl b/backend/instance/sessions/fe6d518387bfaf14184f9a624a876f82_activity.pkl new file mode 100644 index 000000000..bb3dbe938 Binary files /dev/null and b/backend/instance/sessions/fe6d518387bfaf14184f9a624a876f82_activity.pkl differ diff --git a/backend/instance/sessions/fed96e53a331293b0b2744cdf7d2d253_activity.pkl b/backend/instance/sessions/fed96e53a331293b0b2744cdf7d2d253_activity.pkl new file mode 100644 index 000000000..f890c5d60 Binary files /dev/null and b/backend/instance/sessions/fed96e53a331293b0b2744cdf7d2d253_activity.pkl differ diff --git a/backend/logs/admin/admin.log b/backend/logs/admin/admin.log index 7ad0159c6..2aae4b6ee 100644 --- a/backend/logs/admin/admin.log +++ b/backend/logs/admin/admin.log @@ -24,3 +24,14 @@ 2025-06-12 15:09:16 - [admin] admin - [INFO] INFO - Admin-Check für Funktion admin_dashboard: User authenticated: True, User ID: 1, Is Admin: True 2025-06-12 15:09:16 - [admin] admin - [INFO] INFO - Admin-Dashboard geladen von admin 2025-06-12 15:09:16 - [admin] admin - [ERROR] ERROR - Fehler beim Laden des Admin-Dashboards: 'dict object' has no attribute 'online_printers' +2025-06-12 21:12:58 - [admin] admin - [INFO] INFO - Admin-Check für Funktion admin_dashboard: User authenticated: True, User ID: 1, Is Admin: True +2025-06-12 21:12:58 - [admin] admin - [INFO] INFO - Admin-Dashboard geladen von admin +2025-06-12 21:12:58 - [admin] admin - [ERROR] ERROR - Fehler beim Laden des Admin-Dashboards: 'dict object' has no attribute 'online_printers' +2025-06-12 21:13:01 - [admin] admin - [INFO] INFO - Admin-Check für Funktion advanced_settings: User authenticated: True, User ID: 1, Is Admin: True +2025-06-12 21:13:03 - [admin] admin - [INFO] INFO - Admin-Check für Funktion guest_requests: User authenticated: True, User ID: 1, Is Admin: True +2025-06-12 21:13:14 - [admin] admin - [INFO] INFO - Admin-Check für Funktion users_overview: User authenticated: True, User ID: 1, Is Admin: True +2025-06-12 21:13:14 - [admin] admin - [INFO] INFO - Benutzerübersicht geladen von admin +2025-06-12 21:13:14 - [admin] admin - [ERROR] ERROR - Fehler beim Laden der Benutzerübersicht: 'dict object' has no attribute 'online_printers' +2025-06-12 21:13:41 - [admin] admin - [INFO] INFO - Admin-Check für Funktion admin_dashboard: User authenticated: True, User ID: 1, Is Admin: True +2025-06-12 21:13:41 - [admin] admin - [INFO] INFO - Admin-Dashboard geladen von admin +2025-06-12 21:13:41 - [admin] admin - [ERROR] ERROR - Fehler beim Laden des Admin-Dashboards: 'dict object' has no attribute 'online_printers' diff --git a/backend/logs/app/app.log b/backend/logs/app/app.log index cb4787810..27caa62fa 100644 --- a/backend/logs/app/app.log +++ b/backend/logs/app/app.log @@ -21147,3 +21147,404 @@ werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'tapo_c 2025-06-12 21:06:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers 2025-06-12 21:06:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen 2025-06-12 21:06:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:06:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:06:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:06:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:06:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:06:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:06:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:07:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:07:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:07:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:07:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:07:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:07:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:07:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:07:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:07:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:07:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:07:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:07:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:08:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:08:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:08:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:08:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:08:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:08:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:08:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:08:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:08:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:08:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:08:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:08:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:09:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:09:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:09:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:09:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:09:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:09:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:09:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:09:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:09:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:09:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:09:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen +2025-06-12 21:09:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:09:37 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-12 21:09:37 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-12 21:09:37 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: 'BackgroundTaskScheduler' object has no attribute 'shutdown' +2025-06-12 21:09:38 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-12 21:09:39 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-12 21:09:39 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-12 21:09:39 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-12 21:09:39 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-12 21:10:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:10:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:10:29 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-12 21:10:29 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-12 21:10:29 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: 'BackgroundTaskScheduler' object has no attribute 'shutdown' +2025-06-12 21:10:30 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-12 21:10:31 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-12 21:10:31 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-12 21:10:31 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-12 21:10:31 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-12 21:10:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:10:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:11:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:11:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:12:01 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-12 21:12:02 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-12 21:12:02 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-12 21:12:02 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-12 21:12:03 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-12 21:12:03 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-12 21:12:03 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-12 21:12:03 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-12 21:12:03 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-12 21:12:03 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-12 21:12:03 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-12 21:12:03 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-12 21:12:04 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-12 21:12:04 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-12 21:12:04 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-12 21:12:05 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-12 21:12:05 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-12 21:12:05 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-12 21:12:05 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-12 21:12:05 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-12 21:12:05 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-12 21:12:05 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-12 21:12:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:12:06 - [app] app - [INFO] INFO - Locating template 'dashboard.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/dashboard.html') +2025-06-12 21:12:06 - [app] app - [INFO] INFO - Locating template 'base.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/base.html') +2025-06-12 21:12:06 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:12:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:11 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-12 21:12:11 - [app] app - [INFO] INFO - Locating template 'printers.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/printers.html') +2025-06-12 21:12:11 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:11 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:12:11 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:12:11 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:11 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:12:11 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:12:11 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:23 - [app] app - [DEBUG] DEBUG - Request: GET /jobs +2025-06-12 21:12:23 - [app] app - [INFO] INFO - Locating template 'jobs.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/jobs.html') +2025-06-12 21:12:23 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:23 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-12 21:12:23 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:23 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:12:23 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:12:23 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:25 - [app] app - [DEBUG] DEBUG - Request: GET /stats +2025-06-12 21:12:25 - [app] app - [INFO] INFO - Locating template 'stats.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/stats.html') +2025-06-12 21:12:25 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:27 - [app] app - [DEBUG] DEBUG - Request: GET /tapo/ +2025-06-12 21:12:29 - [app] app - [DEBUG] DEBUG - Request: GET /request +2025-06-12 21:12:29 - [app] app - [INFO] INFO - Locating template 'guest_request.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/guest_request.html') +2025-06-12 21:12:29 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:34 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:12:34 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:12:34 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:34 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:12:34 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:12:34 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:39 - [app] app - [INFO] INFO - Locating template 'tapo_control.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/tapo_control.html') +2025-06-12 21:12:39 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:42 - [app] app - [DEBUG] DEBUG - Request: GET /system-info +2025-06-12 21:12:42 - [app] app - [INFO] INFO - Locating template 'system_info.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/system_info.html') +2025-06-12 21:12:42 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:58 - [app] app - [DEBUG] DEBUG - Request: GET /admin/ +2025-06-12 21:12:58 - [app] app - [INFO] INFO - Locating template 'admin.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/admin.html') +2025-06-12 21:12:58 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:12:58 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-12 21:12:58 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/stats +2025-06-12 21:12:58 - [app] app - [INFO] INFO - Locating template 'errors/404.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/errors/404.html') +2025-06-12 21:12:58 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-12 21:12:58 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/admin/system-health +2025-06-12 21:13:01 - [app] app - [DEBUG] DEBUG - Request: GET /admin/advanced-settings +2025-06-12 21:13:01 - [app] app - [INFO] INFO - Locating template 'admin_advanced_settings.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/admin_advanced_settings.html') +2025-06-12 21:13:01 - [app] app - [ERROR] ERROR - Unhandled Exception - ID: 20250612_211301 +2025-06-12 21:13:01 - [app] app - [ERROR] ERROR - URL: http://127.0.0.1:5000/admin/advanced-settings +2025-06-12 21:13:01 - [app] app - [ERROR] ERROR - Method: GET +2025-06-12 21:13:01 - [app] app - [ERROR] ERROR - User: admin +2025-06-12 21:13:01 - [app] app - [ERROR] ERROR - Exception Type: UndefinedError +2025-06-12 21:13:01 - [app] app - [ERROR] ERROR - Exception: 'stats' is undefined +2025-06-12 21:13:01 - [app] app - [ERROR] ERROR - Traceback: Traceback (most recent call last): + File "/home/core/.local/lib/python3.11/site-packages/flask/app.py", line 867, in full_dispatch_request + rv = self.dispatch_request() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/flask/app.py", line 852, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/flask_login/utils.py", line 290, in decorated_view + return current_app.ensure_sync(func)(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/blueprints/admin_unified.py", line 87, in decorated_function + return f(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^ + File "/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/blueprints/admin_unified.py", line 287, in advanced_settings + return render_template('admin_advanced_settings.html') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/flask/templating.py", line 152, in render_template + return _render(app, template, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/flask/templating.py", line 133, in _render + rv = template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/jinja2/environment.py", line 1301, in render + self.environment.handle_exception() + File "/home/core/.local/lib/python3.11/site-packages/jinja2/environment.py", line 936, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/admin_advanced_settings.html", line 1, in top-level template code + {% extends "base.html" %} + File "/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/base.html", line 433, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/admin_advanced_settings.html", line 388, in block 'content' +

{{ stats.total_users }}

+ ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/jinja2/environment.py", line 485, in getattr + return getattr(obj, attribute) + ^^^^^^^^^^^^^^^^^^^^^^^ +jinja2.exceptions.UndefinedError: 'stats' is undefined + +2025-06-12 21:13:01 - [app] app - [INFO] INFO - Locating template 'errors/500.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/errors/500.html') +2025-06-12 21:13:01 - [app] app - [DEBUG] DEBUG - Response: 500 +2025-06-12 21:13:03 - [app] app - [DEBUG] DEBUG - Request: GET /admin/guest-requests +2025-06-12 21:13:03 - [app] app - [INFO] INFO - Locating template 'admin_guest_requests.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/admin_guest_requests.html') +2025-06-12 21:13:03 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:04 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/requests +2025-06-12 21:13:04 - [app] app - [WARNING] WARNING - Forbidden (403): http://127.0.0.1:5000/api/admin/requests - User: admin +2025-06-12 21:13:04 - [app] app - [DEBUG] DEBUG - Response: 403 +2025-06-12 21:13:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:13:05 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:13:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:13:05 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:13:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:13 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-12 21:13:13 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/stats +2025-06-12 21:13:14 - [app] app - [DEBUG] DEBUG - Request: GET /admin/users +2025-06-12 21:13:14 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:14 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-12 21:13:14 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/stats +2025-06-12 21:13:14 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-12 21:13:14 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/admin/system-health +2025-06-12 21:13:19 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-12 21:13:19 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/stats +2025-06-12 21:13:24 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-12 21:13:24 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/stats +2025-06-12 21:13:26 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-12 21:13:26 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:29 - [app] app - [DEBUG] DEBUG - Request: GET /request +2025-06-12 21:13:29 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:35 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:13:35 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:13:35 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:35 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:13:35 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=True) +2025-06-12 21:13:35 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:41 - [app] app - [DEBUG] DEBUG - Request: GET /admin/ +2025-06-12 21:13:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:13:42 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-12 21:13:42 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/stats +2025-06-12 21:13:42 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-12 21:13:42 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/admin/system-health +2025-06-12 21:13:47 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-12 21:13:47 - [app] app - [INFO] INFO - Not Found (404): http://127.0.0.1:5000/api/stats +2025-06-12 21:13:48 - [app] app - [DEBUG] DEBUG - Request: POST /auth/logout +2025-06-12 21:13:48 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-12 21:13:48 - [app] app - [DEBUG] DEBUG - Request: GET /auth/login +2025-06-12 21:13:48 - [app] app - [INFO] INFO - Locating template 'login.html': + 1: trying loader of application '__main__' + class: jinja2.loaders.FileSystemLoader + encoding: 'utf-8' + followlinks: False + searchpath: + - /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates + -> found ('/cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend/templates/login.html') +2025-06-12 21:13:48 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:14:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:14:05 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-12 21:14:05 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-12 21:14:05 - [app] app - [DEBUG] DEBUG - Response: 302 +2025-06-12 21:14:05 - [app] app - [DEBUG] DEBUG - Request: GET /auth/login +2025-06-12 21:14:05 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-12 21:14:05 - [app] app - [DEBUG] DEBUG - Request: GET /auth/login +2025-06-12 21:14:05 - [app] app - [DEBUG] DEBUG - Response: 200 diff --git a/backend/logs/auth/auth.log b/backend/logs/auth/auth.log index b5392ae6a..fb16bc7de 100644 --- a/backend/logs/auth/auth.log +++ b/backend/logs/auth/auth.log @@ -51,3 +51,4 @@ WHERE users.username = ? OR users.email = ? 2025-06-12 21:01:39 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich abgemeldet 2025-06-12 21:02:32 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0) 2025-06-12 21:02:32 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet +2025-06-12 21:13:48 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich abgemeldet diff --git a/backend/logs/data_management/data_management.log b/backend/logs/data_management/data_management.log index cafd4d9dc..8532ec025 100644 --- a/backend/logs/data_management/data_management.log +++ b/backend/logs/data_management/data_management.log @@ -180,3 +180,11 @@ 2025-06-12 21:02:28 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-12 21:02:30 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert 2025-06-12 21:02:30 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:09:38 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-12 21:09:38 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:10:30 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-12 21:10:30 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:12:01 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-12 21:12:01 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:12:03 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-12 21:12:03 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) diff --git a/backend/logs/energy_monitoring/energy_monitoring.log b/backend/logs/energy_monitoring/energy_monitoring.log index 7bffafdd4..4ef5dc052 100644 --- a/backend/logs/energy_monitoring/energy_monitoring.log +++ b/backend/logs/energy_monitoring/energy_monitoring.log @@ -23,3 +23,7 @@ 2025-06-12 21:01:15 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Live-Energiedaten 'api_live_energy_data' erfolgreich in 22.30ms 2025-06-12 21:02:29 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert 2025-06-12 21:02:31 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-12 21:09:39 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-12 21:10:31 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-12 21:12:02 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-12 21:12:04 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert diff --git a/backend/logs/hardware_integration/hardware_integration.log b/backend/logs/hardware_integration/hardware_integration.log index 2d23de5d9..b6980ed5d 100644 --- a/backend/logs/hardware_integration/hardware_integration.log +++ b/backend/logs/hardware_integration/hardware_integration.log @@ -442,3 +442,19 @@ 2025-06-12 21:02:30 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert 2025-06-12 21:02:30 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert 2025-06-12 21:02:30 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-12 21:09:38 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-12 21:09:38 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-12 21:09:38 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-12 21:09:38 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-12 21:10:30 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-12 21:10:30 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-12 21:10:30 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-12 21:10:30 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-12 21:12:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-12 21:12:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-12 21:12:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-12 21:12:01 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-12 21:12:03 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-12 21:12:03 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-12 21:12:03 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-12 21:12:03 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) diff --git a/backend/logs/job_queue_system/job_queue_system.log b/backend/logs/job_queue_system/job_queue_system.log index 4a1905ade..92b4c0a56 100644 --- a/backend/logs/job_queue_system/job_queue_system.log +++ b/backend/logs/job_queue_system/job_queue_system.log @@ -340,3 +340,19 @@ 2025-06-12 21:02:30 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert 2025-06-12 21:02:30 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) 2025-06-12 21:02:31 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-12 21:09:37 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-12 21:09:38 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-12 21:09:38 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-12 21:09:39 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-12 21:10:29 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-12 21:10:30 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-12 21:10:30 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-12 21:10:31 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-12 21:11:59 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-12 21:11:59 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-12 21:12:01 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-12 21:12:01 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-12 21:12:03 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-12 21:12:03 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-12 21:12:03 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-12 21:12:05 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) diff --git a/backend/logs/jobs/jobs.log b/backend/logs/jobs/jobs.log index 28b82c758..cac9853c5 100644 --- a/backend/logs/jobs/jobs.log +++ b/backend/logs/jobs/jobs.log @@ -563,3 +563,5 @@ IndexError: tuple index out of range 2025-06-12 20:59:52 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) 2025-06-12 21:00:27 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) 2025-06-12 21:00:27 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) +2025-06-12 21:12:23 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-12 21:12:23 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) diff --git a/backend/logs/monitoring_analytics/monitoring_analytics.log b/backend/logs/monitoring_analytics/monitoring_analytics.log index 4edd9d958..8e4185ebf 100644 --- a/backend/logs/monitoring_analytics/monitoring_analytics.log +++ b/backend/logs/monitoring_analytics/monitoring_analytics.log @@ -180,3 +180,11 @@ 2025-06-12 21:02:29 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-12 21:02:31 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert 2025-06-12 21:02:31 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:09:39 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-12 21:09:39 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:10:31 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-12 21:10:31 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:12:02 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-12 21:12:02 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:12:04 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-12 21:12:04 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) diff --git a/backend/logs/scheduler/scheduler.log b/backend/logs/scheduler/scheduler.log index ea57521b9..0b9218104 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -251,3 +251,15 @@ 2025-06-12 21:02:30 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-12 21:02:31 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet 2025-06-12 21:02:31 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-12 21:09:38 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-12 21:09:39 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-12 21:09:39 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-12 21:10:30 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-12 21:10:31 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-12 21:10:31 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-12 21:12:01 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-12 21:12:03 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-12 21:12:03 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-12 21:12:03 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-12 21:12:05 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-12 21:12:05 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet diff --git a/backend/logs/security_suite/security_suite.log b/backend/logs/security_suite/security_suite.log index d628d4796..a8dcadd0d 100644 --- a/backend/logs/security_suite/security_suite.log +++ b/backend/logs/security_suite/security_suite.log @@ -272,3 +272,15 @@ 2025-06-12 21:02:30 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert 2025-06-12 21:02:30 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-12 21:02:31 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-12 21:09:38 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-12 21:09:38 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:09:39 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-12 21:10:30 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-12 21:10:30 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:10:31 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-12 21:12:01 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-12 21:12:01 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:12:02 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-12 21:12:03 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-12 21:12:03 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-12 21:12:04 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index 290caeda6..1cd9b9c21 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -801,3 +801,31 @@ 2025-06-12 21:02:31 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend 2025-06-12 21:02:31 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-12T21:02:31.094601 2025-06-12 21:02:31 - [startup] startup - [INFO] INFO - ================================================== +2025-06-12 21:09:39 - [startup] startup - [INFO] INFO - ================================================== +2025-06-12 21:09:39 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-12 21:09:39 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-12 21:09:39 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-12 21:09:39 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend +2025-06-12 21:09:39 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-12T21:09:39.462575 +2025-06-12 21:09:39 - [startup] startup - [INFO] INFO - ================================================== +2025-06-12 21:10:31 - [startup] startup - [INFO] INFO - ================================================== +2025-06-12 21:10:31 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-12 21:10:31 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-12 21:10:31 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-12 21:10:31 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend +2025-06-12 21:10:31 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-12T21:10:31.461247 +2025-06-12 21:10:31 - [startup] startup - [INFO] INFO - ================================================== +2025-06-12 21:12:02 - [startup] startup - [INFO] INFO - ================================================== +2025-06-12 21:12:02 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-12 21:12:02 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-12 21:12:02 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-12 21:12:02 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend +2025-06-12 21:12:02 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-12T21:12:02.860498 +2025-06-12 21:12:02 - [startup] startup - [INFO] INFO - ================================================== +2025-06-12 21:12:04 - [startup] startup - [INFO] INFO - ================================================== +2025-06-12 21:12:04 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-12 21:12:04 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-12 21:12:04 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-12 21:12:04 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /cbin/C0S1-cernel/C02L2/Dateiverwaltung/nextcloud/core/files/3_Beruf_Ausbildung_und_Schule/IHK-Abschlussprüfung/Projektarbeit-MYP/backend +2025-06-12 21:12:04 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-12T21:12:04.861493 +2025-06-12 21:12:04 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/tapo_control/tapo_control.log b/backend/logs/tapo_control/tapo_control.log index 1ae9c7a8c..d83a6e4df 100644 --- a/backend/logs/tapo_control/tapo_control.log +++ b/backend/logs/tapo_control/tapo_control.log @@ -61,3 +61,11 @@ 2025-06-12 21:01:24 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 5 (192.168.1.205) nicht erreichbar 2025-06-12 21:01:26 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 6 (192.168.1.206) nicht erreichbar 2025-06-12 21:01:26 - [tapo_control] tapo_control - [INFO] INFO - Dashboard geladen: 6 Steckdosen konfiguriert, 0 online +2025-06-12 21:12:27 - [tapo_control] tapo_control - [INFO] INFO - Tapo Dashboard aufgerufen von Benutzer: Administrator +2025-06-12 21:12:29 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 1 (192.168.1.201) nicht erreichbar +2025-06-12 21:12:31 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 2 (192.168.1.202) nicht erreichbar +2025-06-12 21:12:33 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 3 (192.168.1.203) nicht erreichbar +2025-06-12 21:12:35 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 4 (192.168.1.204) nicht erreichbar +2025-06-12 21:12:37 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 5 (192.168.1.205) nicht erreichbar +2025-06-12 21:12:39 - [tapo_control] tapo_control - [WARNING] WARNING - ⚠️ Steckdose 6 (192.168.1.206) nicht erreichbar +2025-06-12 21:12:39 - [tapo_control] tapo_control - [INFO] INFO - Dashboard geladen: 6 Steckdosen konfiguriert, 0 online diff --git a/backend/logs/tapo_controller/tapo_controller.log b/backend/logs/tapo_controller/tapo_controller.log index 7cb7d9b27..991d85d43 100644 --- a/backend/logs/tapo_controller/tapo_controller.log +++ b/backend/logs/tapo_controller/tapo_controller.log @@ -91,3 +91,7 @@ 2025-06-12 20:59:20 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-12 21:02:28 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-12 21:02:30 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-12 21:09:38 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-12 21:10:30 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-12 21:12:01 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-12 21:12:03 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert diff --git a/backend/logs/tapo_status_manager/tapo_status_manager.log b/backend/logs/tapo_status_manager/tapo_status_manager.log index 9b65b8602..bd8f65f02 100644 --- a/backend/logs/tapo_status_manager/tapo_status_manager.log +++ b/backend/logs/tapo_status_manager/tapo_status_manager.log @@ -48,3 +48,7 @@ 2025-06-12 20:59:20 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert 2025-06-12 21:02:28 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert 2025-06-12 21:02:30 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert +2025-06-12 21:09:38 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert +2025-06-12 21:10:30 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert +2025-06-12 21:12:01 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert +2025-06-12 21:12:03 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager initialisiert diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log index 68b059844..baf84547d 100644 --- a/backend/logs/utilities_collection/utilities_collection.log +++ b/backend/logs/utilities_collection/utilities_collection.log @@ -190,3 +190,11 @@ 2025-06-12 21:02:28 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) 2025-06-12 21:02:29 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert 2025-06-12 21:02:29 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-12 21:09:38 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-12 21:09:38 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-12 21:10:30 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-12 21:10:30 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-12 21:12:01 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-12 21:12:01 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-12 21:12:03 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-12 21:12:03 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) diff --git a/backend/templates/admin_add_user.html b/backend/templates/admin_add_user.html index a2d2b0f04..3998e049d 100644 --- a/backend/templates/admin_add_user.html +++ b/backend/templates/admin_add_user.html @@ -284,6 +284,55 @@ + +
+ +
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+
+ +
@@ -392,6 +441,32 @@ document.addEventListener('DOMContentLoaded', function() { roleSelect.addEventListener('change', function() { const roleDescription = document.getElementById('roleDescription'); roleDescription.textContent = roleDescriptions[this.value] || roleDescriptions['user']; + + // Bei Admin-Rolle automatisch die Berechtigung zum Genehmigen aktivieren + const canApproveCheckbox = document.getElementById('can_approve_jobs'); + const permissionsSection = document.getElementById('permissionsSection'); + + if (this.value === 'admin') { + canApproveCheckbox.checked = true; + canApproveCheckbox.disabled = true; + canApproveCheckbox.parentElement.title = 'Administratoren haben automatisch diese Berechtigung'; + // Zeige Info, dass Admins alle Berechtigungen haben + permissionsSection.querySelector('label').innerHTML = ` + + Granulare Berechtigungen (Administratoren haben automatisch alle Berechtigungen) + `; + } else { + canApproveCheckbox.disabled = false; + canApproveCheckbox.parentElement.title = ''; + permissionsSection.querySelector('label').innerHTML = ` + + Granulare Berechtigungen + `; + } }); // E-Mail-Validierung diff --git a/backend/templates/new_job.html b/backend/templates/new_job.html index 63f887682..16c508cb5 100644 --- a/backend/templates/new_job.html +++ b/backend/templates/new_job.html @@ -686,7 +686,28 @@ printers.forEach(printer => { const option = document.createElement('option'); option.value = printer.id; - option.textContent = `${printer.name} (${printer.model || 'Unbekannt'})`; + + // Status-Anzeige im Dropdown + let statusText = ''; + if (printer.status === 'offline' || !printer.is_reachable) { + statusText = ' [Offline]'; + } else if (printer.status === 'busy' || printer.status === 'printing') { + statusText = ' [Beschäftigt]'; + } else if (printer.status === 'online' || printer.status === 'available') { + statusText = ' [Verfügbar]'; + } + + // Drucker-Anzeige mit Modell, Standort und Status + const location = printer.location ? ` - ${printer.location}` : ''; + option.textContent = `${printer.name} (${printer.model || 'Unbekannt'})${location}${statusText}`; + + // Visueller Hinweis für Offline-Drucker (aber trotzdem auswählbar!) + if (printer.status === 'offline' || !printer.is_reachable) { + option.style.color = '#666'; + option.style.fontStyle = 'italic'; + } + + // WICHTIG: Kein disabled-Attribut setzen - alle Drucker bleiben auswählbar! select.appendChild(option); });