From bcb8f80415374e9edf1bb015cec3d391798492bf Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Thu, 12 Jun 2025 21:14:08 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Update:=20Enhanced=20API=20for?= =?UTF-8?q?=20printer=20list=20retrieval=20with=20additional=20query=20par?= =?UTF-8?q?ameters=20for=20filtering=20active=20and=20inactive=20printers.?= =?UTF-8?q?=20Improved=20response=20structure=20to=20include=20printer=20r?= =?UTF-8?q?eachability=20and=20display=20status=20for=20better=20UI=20inte?= =?UTF-8?q?gration.=20Added=20granular=20permissions=20management=20in=20u?= =?UTF-8?q?ser=20creation=20process.=20=F0=9F=93=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app.py | 43 +- backend/backend/database/myp.db | Bin 102400 -> 102400 bytes backend/backend/database/myp.db-shm | Bin 32768 -> 32768 bytes backend/backend/database/myp.db-wal | Bin 12392 -> 32992 bytes .../__pycache__/admin_unified.cpython-311.pyc | Bin 94034 -> 94690 bytes backend/blueprints/admin_unified.py | 18 + ...c72fcf4a64d4c87e56ae5cf9647e6_activity.pkl | Bin 0 -> 60 bytes ...8a7e15a4f83ffb74768edabf9da08_activity.pkl | Bin 0 -> 60 bytes ...432e0989322122162d7e19ec82d68_activity.pkl | Bin 0 -> 60 bytes ...0fe40f3035e69450854f45f3d1fb3_activity.pkl | Bin 0 -> 60 bytes ...3e56abc1b50c062445c2dd7d5927c_activity.pkl | Bin 0 -> 60 bytes ...bd0ad822c08dcd48f5ac1b90ee443_activity.pkl | Bin 0 -> 60 bytes ...a67132a820bd962335e984e6cc8c5_activity.pkl | Bin 0 -> 60 bytes ...0fe8993ef7a2e81cbc5206b02b5fe_activity.pkl | Bin 0 -> 60 bytes ...b6dccf079e02eb07ca3be21d33d7c_activity.pkl | Bin 0 -> 60 bytes ...4d4cc751d33166af713a08e663eac_activity.pkl | Bin 0 -> 60 bytes ...d278f59035bd5c2692b5a076e198c_activity.pkl | Bin 0 -> 60 bytes ...b586b556b4ce1c9ef0ed2c18945e5_activity.pkl | Bin 0 -> 60 bytes ...880a4652a4924e0d97a3b497a29c4_activity.pkl | Bin 0 -> 60 bytes ...2aaf754e03c0c8d59993e9b7cec2d_activity.pkl | Bin 0 -> 60 bytes ...61b6b889c0082e67c26ad8c69c1d6_activity.pkl | Bin 0 -> 60 bytes ...6a95887d7d6db078ba7d58ef8183c_activity.pkl | Bin 0 -> 60 bytes ...ec8c4360c24f63e38d8828182c235_activity.pkl | Bin 0 -> 60 bytes ...7815cd0cb06e0fce4488c584e5e86_activity.pkl | Bin 0 -> 60 bytes ...a8d4463a287c73e584d8c4d3d6998_activity.pkl | Bin 0 -> 60 bytes ...d3db5cbbbbf5786e9211ecfafa1ab_activity.pkl | Bin 0 -> 60 bytes ...91cee2fd493225e94b32ffd4bdc58_activity.pkl | Bin 0 -> 60 bytes ...ff854f6eeff7299ac528b76ed0d64_activity.pkl | Bin 0 -> 60 bytes ...ce8db9d008bb8eba104e8fe6a78ac_activity.pkl | Bin 0 -> 60 bytes ...3716637903ba1eb8e2ade7e8d9b11_activity.pkl | Bin 0 -> 60 bytes ...e730dc885b301bf1cfe18b7cd1403_activity.pkl | Bin 0 -> 60 bytes ...915c3d9841639aae395c8df7c8a1c_activity.pkl | Bin 0 -> 60 bytes ...a1608bd080c740db6e396332cbae3_activity.pkl | Bin 0 -> 60 bytes ...abfc653a01e3bf236edff1a64ba7b_activity.pkl | Bin 0 -> 60 bytes ...f4b214a3d40f946d5dd91fd2cfb17_activity.pkl | Bin 0 -> 60 bytes ...624014b90d421a2789d9d7264a218_activity.pkl | Bin 0 -> 60 bytes ...62a8432cd419461d7721ce2ba7da5_activity.pkl | Bin 0 -> 60 bytes ...8383a9c188c467fd7b7909fa5dad2_activity.pkl | Bin 0 -> 60 bytes ...3bd852d8181dcd16df7bca5301256_activity.pkl | Bin 0 -> 60 bytes ...78f202a473e7ccb159367e2edb592_activity.pkl | Bin 0 -> 60 bytes ...775bba30bc38197aac449a3ce2298_activity.pkl | Bin 0 -> 60 bytes ...12aa8c3f8b4eb85da25500c31de8a_activity.pkl | Bin 0 -> 60 bytes ...706cbd345cca76fde7eb30b41ece3_activity.pkl | Bin 0 -> 60 bytes ...ade5c788c00f152f4bdf11329bb4a_activity.pkl | Bin 0 -> 60 bytes ...58e4e2843b15141e87c4bb66c022a_activity.pkl | Bin 0 -> 60 bytes ...eaba1268770d53522c13bc499dda9_activity.pkl | Bin 0 -> 60 bytes ...e7e736f8251b0e83b42ca242cb07d_activity.pkl | Bin 0 -> 60 bytes ...8d597a0c61f8d6cb0fe715d7de015_activity.pkl | Bin 0 -> 60 bytes ...30bc45289494a27d56a95a0d18312_activity.pkl | Bin 0 -> 60 bytes ...782eb69edf6815b5f1592671c06c9_activity.pkl | Bin 0 -> 60 bytes ...b3dbe51339d3ce22c31e662faa368_activity.pkl | Bin 0 -> 60 bytes ...5683be8985d7ce84472b5d63d24a8_activity.pkl | Bin 0 -> 60 bytes ...b286220f0d7bf7920492cccd2fb80_activity.pkl | Bin 0 -> 60 bytes ...e9a28129e940669bafa1b64e05257_activity.pkl | Bin 0 -> 60 bytes ...bdb6a95542085550bd9b9aee92c71_activity.pkl | Bin 0 -> 60 bytes ...d7ce6c4ea654d448a68cd5fcf890b_activity.pkl | Bin 0 -> 60 bytes ...a87ba503fd0b4c28d8cb3d5236b17_activity.pkl | Bin 0 -> 60 bytes ...da854d1ab7c7afea5ff7529c0511a_activity.pkl | Bin 0 -> 60 bytes ...c721cfeecebf9d8b05257101caeb4_activity.pkl | Bin 0 -> 60 bytes ...4b80cc491da1a0abcc82e2b095a33_activity.pkl | Bin 0 -> 60 bytes ...463891301a82a657987a3ce73fdde_activity.pkl | Bin 0 -> 60 bytes ...34d55a1dd483fb1fd58f37921baf1_activity.pkl | Bin 0 -> 60 bytes ...af98590b8152a5ac77668e42a294b_activity.pkl | Bin 0 -> 60 bytes ...50ce24ac9cb97855c53f9fff40ade_activity.pkl | Bin 0 -> 60 bytes ...8691789709d6ff983f917c6ec7144_activity.pkl | Bin 0 -> 60 bytes ...cbbc20baae3ceaf6f0f4690754ad2_activity.pkl | Bin 0 -> 60 bytes ...1e32b08dc2c16d8fba2fd77752c48_activity.pkl | Bin 0 -> 60 bytes ...8c3f13874066ee4502eb592d401a5_activity.pkl | Bin 0 -> 60 bytes ...6e340e34762c62075e83d417f82a2_activity.pkl | Bin 0 -> 60 bytes ...565c03c934c201c37f0aaee0f0993_activity.pkl | Bin 0 -> 60 bytes ...f77ab9551d7579525d3fe623c824d_activity.pkl | Bin 0 -> 60 bytes ...95b44be0a3c2e9b80f99581d61a7f_activity.pkl | Bin 0 -> 60 bytes ...c347c7529a39315450babffdaab59_activity.pkl | Bin 0 -> 60 bytes ...e0431750a1f0b4e5f6dca3861f10b_activity.pkl | Bin 0 -> 60 bytes ...77056c2dbd89c3a177c56cf318847_activity.pkl | Bin 0 -> 60 bytes ...a6641f57097aafd4abafa1f043ae6_activity.pkl | Bin 0 -> 60 bytes ...278c87fc6d632c0f97590b469c68d_activity.pkl | Bin 0 -> 60 bytes ...08844beb374f0cfaf9e159879703f_activity.pkl | Bin 0 -> 60 bytes ...192b1eec234cb9cc9e4fee6c39ca0_activity.pkl | Bin 0 -> 60 bytes ...d60297da415a9f884ee031875a252_activity.pkl | Bin 0 -> 60 bytes ...0e9f8a5a545de124f92050bd090b6_activity.pkl | Bin 0 -> 60 bytes ...34a5c513e5aa5816fc6b8f42889fe_activity.pkl | Bin 0 -> 60 bytes ...1ffdaf33469d39d7149a22e1344ef_activity.pkl | Bin 0 -> 60 bytes ...9b05f54925dba056507040b1808f9_activity.pkl | Bin 0 -> 60 bytes ...435d93b92ea40c57e3f413648ece8_activity.pkl | Bin 0 -> 60 bytes ...ba4ec8400f94ad0ed8e94814320dc_activity.pkl | Bin 0 -> 60 bytes ...d8c18d9fae074f9d55b3d20abaa96_activity.pkl | Bin 0 -> 60 bytes ...6b40921360f398494512ea1f9f9b3_activity.pkl | Bin 0 -> 60 bytes ...3be6664d9d1871735e98346ef741c_activity.pkl | Bin 0 -> 60 bytes ...eb533d143c0b242f6b1c7e8a0fbac_activity.pkl | Bin 0 -> 60 bytes ...42b940026c5944efb9ff1ad69ea74_activity.pkl | Bin 0 -> 60 bytes ...036c99e0323403abcde3a30e04ed2_activity.pkl | Bin 0 -> 60 bytes ...d368fe6e4e32be68d39528b6198e1_activity.pkl | Bin 0 -> 60 bytes ...39cc09ac3695e4bb98ac064ef47f4_activity.pkl | Bin 0 -> 60 bytes ...0b5f0588dfabd4e02d13bdbd34a1f_activity.pkl | Bin 0 -> 60 bytes ...6e05650e2aecff40972e617e5efd6_activity.pkl | Bin 0 -> 60 bytes ...4858f11128d9769cbe94ee2624710_activity.pkl | Bin 0 -> 60 bytes ...6885502dfc635a629c972f6510ffa_activity.pkl | Bin 0 -> 60 bytes ...c99965640836afee57b7063b19d49_activity.pkl | Bin 0 -> 60 bytes ...02eab9cdbea413c005423b9f39a2b_activity.pkl | Bin 0 -> 60 bytes ...f35936df40fe30d9a6675f085ac4c_activity.pkl | Bin 0 -> 60 bytes ...589a81122fd8788fb7e222d43bb97_activity.pkl | Bin 0 -> 60 bytes ...303d4dbb1b80063cf98276ad75163_activity.pkl | Bin 0 -> 60 bytes ...e37efce75786b38953d8deea8c3ff_activity.pkl | Bin 0 -> 60 bytes ...275bc4ec122d27fa8d03b0073f066_activity.pkl | Bin 0 -> 60 bytes ...4d0626f0af5fe1c18f7a8b6322c8b_activity.pkl | Bin 0 -> 60 bytes ...ebfa7e0ecfff93566e35a3d4477a5_activity.pkl | Bin 0 -> 60 bytes ...2ad7fd4466628286c35f2150dd8f9_activity.pkl | Bin 0 -> 60 bytes ...73f953b8d0a4035486d2db61c1c45_activity.pkl | Bin 0 -> 60 bytes ...d518387bfaf14184f9a624a876f82_activity.pkl | Bin 0 -> 60 bytes ...96e53a331293b0b2744cdf7d2d253_activity.pkl | Bin 0 -> 60 bytes backend/logs/admin/admin.log | 11 + backend/logs/app/app.log | 401 ++++++++++++++++++ backend/logs/auth/auth.log | 1 + .../logs/data_management/data_management.log | 8 + .../energy_monitoring/energy_monitoring.log | 4 + .../hardware_integration.log | 16 + .../job_queue_system/job_queue_system.log | 16 + backend/logs/jobs/jobs.log | 2 + .../monitoring_analytics.log | 8 + backend/logs/scheduler/scheduler.log | 12 + .../logs/security_suite/security_suite.log | 12 + backend/logs/startup/startup.log | 28 ++ backend/logs/tapo_control/tapo_control.log | 8 + .../logs/tapo_controller/tapo_controller.log | 4 + .../tapo_status_manager.log | 4 + .../utilities_collection.log | 8 + backend/templates/admin_add_user.html | 75 ++++ backend/templates/new_job.html | 23 +- 129 files changed, 694 insertions(+), 8 deletions(-) create mode 100644 backend/instance/sessions/001c72fcf4a64d4c87e56ae5cf9647e6_activity.pkl create mode 100644 backend/instance/sessions/0188a7e15a4f83ffb74768edabf9da08_activity.pkl create mode 100644 backend/instance/sessions/01c432e0989322122162d7e19ec82d68_activity.pkl create mode 100644 backend/instance/sessions/01d0fe40f3035e69450854f45f3d1fb3_activity.pkl create mode 100644 backend/instance/sessions/0223e56abc1b50c062445c2dd7d5927c_activity.pkl create mode 100644 backend/instance/sessions/04cbd0ad822c08dcd48f5ac1b90ee443_activity.pkl create mode 100644 backend/instance/sessions/04da67132a820bd962335e984e6cc8c5_activity.pkl create mode 100644 backend/instance/sessions/05a0fe8993ef7a2e81cbc5206b02b5fe_activity.pkl create mode 100644 backend/instance/sessions/082b6dccf079e02eb07ca3be21d33d7c_activity.pkl create mode 100644 backend/instance/sessions/0974d4cc751d33166af713a08e663eac_activity.pkl create mode 100644 backend/instance/sessions/0c0d278f59035bd5c2692b5a076e198c_activity.pkl create mode 100644 backend/instance/sessions/0c5b586b556b4ce1c9ef0ed2c18945e5_activity.pkl create mode 100644 backend/instance/sessions/0d4880a4652a4924e0d97a3b497a29c4_activity.pkl create mode 100644 backend/instance/sessions/1112aaf754e03c0c8d59993e9b7cec2d_activity.pkl create mode 100644 backend/instance/sessions/11561b6b889c0082e67c26ad8c69c1d6_activity.pkl create mode 100644 backend/instance/sessions/1586a95887d7d6db078ba7d58ef8183c_activity.pkl create mode 100644 backend/instance/sessions/17bec8c4360c24f63e38d8828182c235_activity.pkl create mode 100644 backend/instance/sessions/1877815cd0cb06e0fce4488c584e5e86_activity.pkl create mode 100644 backend/instance/sessions/1a0a8d4463a287c73e584d8c4d3d6998_activity.pkl create mode 100644 backend/instance/sessions/1c5d3db5cbbbbf5786e9211ecfafa1ab_activity.pkl create mode 100644 backend/instance/sessions/1da91cee2fd493225e94b32ffd4bdc58_activity.pkl create mode 100644 backend/instance/sessions/235ff854f6eeff7299ac528b76ed0d64_activity.pkl create mode 100644 backend/instance/sessions/247ce8db9d008bb8eba104e8fe6a78ac_activity.pkl create mode 100644 backend/instance/sessions/24e3716637903ba1eb8e2ade7e8d9b11_activity.pkl create mode 100644 backend/instance/sessions/251e730dc885b301bf1cfe18b7cd1403_activity.pkl create mode 100644 backend/instance/sessions/273915c3d9841639aae395c8df7c8a1c_activity.pkl create mode 100644 backend/instance/sessions/27da1608bd080c740db6e396332cbae3_activity.pkl create mode 100644 backend/instance/sessions/2b3abfc653a01e3bf236edff1a64ba7b_activity.pkl create mode 100644 backend/instance/sessions/2c3f4b214a3d40f946d5dd91fd2cfb17_activity.pkl create mode 100644 backend/instance/sessions/372624014b90d421a2789d9d7264a218_activity.pkl create mode 100644 backend/instance/sessions/38062a8432cd419461d7721ce2ba7da5_activity.pkl create mode 100644 backend/instance/sessions/3918383a9c188c467fd7b7909fa5dad2_activity.pkl create mode 100644 backend/instance/sessions/3cd3bd852d8181dcd16df7bca5301256_activity.pkl create mode 100644 backend/instance/sessions/3d378f202a473e7ccb159367e2edb592_activity.pkl create mode 100644 backend/instance/sessions/3f0775bba30bc38197aac449a3ce2298_activity.pkl create mode 100644 backend/instance/sessions/3f812aa8c3f8b4eb85da25500c31de8a_activity.pkl create mode 100644 backend/instance/sessions/421706cbd345cca76fde7eb30b41ece3_activity.pkl create mode 100644 backend/instance/sessions/451ade5c788c00f152f4bdf11329bb4a_activity.pkl create mode 100644 backend/instance/sessions/45f58e4e2843b15141e87c4bb66c022a_activity.pkl create mode 100644 backend/instance/sessions/4a3eaba1268770d53522c13bc499dda9_activity.pkl create mode 100644 backend/instance/sessions/4a8e7e736f8251b0e83b42ca242cb07d_activity.pkl create mode 100644 backend/instance/sessions/4ae8d597a0c61f8d6cb0fe715d7de015_activity.pkl create mode 100644 backend/instance/sessions/4c430bc45289494a27d56a95a0d18312_activity.pkl create mode 100644 backend/instance/sessions/4cb782eb69edf6815b5f1592671c06c9_activity.pkl create mode 100644 backend/instance/sessions/51fb3dbe51339d3ce22c31e662faa368_activity.pkl create mode 100644 backend/instance/sessions/5835683be8985d7ce84472b5d63d24a8_activity.pkl create mode 100644 backend/instance/sessions/58db286220f0d7bf7920492cccd2fb80_activity.pkl create mode 100644 backend/instance/sessions/598e9a28129e940669bafa1b64e05257_activity.pkl create mode 100644 backend/instance/sessions/5a1bdb6a95542085550bd9b9aee92c71_activity.pkl create mode 100644 backend/instance/sessions/5a1d7ce6c4ea654d448a68cd5fcf890b_activity.pkl create mode 100644 backend/instance/sessions/5f6a87ba503fd0b4c28d8cb3d5236b17_activity.pkl create mode 100644 backend/instance/sessions/5fdda854d1ab7c7afea5ff7529c0511a_activity.pkl create mode 100644 backend/instance/sessions/605c721cfeecebf9d8b05257101caeb4_activity.pkl create mode 100644 backend/instance/sessions/65b4b80cc491da1a0abcc82e2b095a33_activity.pkl create mode 100644 backend/instance/sessions/69c463891301a82a657987a3ce73fdde_activity.pkl create mode 100644 backend/instance/sessions/6e034d55a1dd483fb1fd58f37921baf1_activity.pkl create mode 100644 backend/instance/sessions/71eaf98590b8152a5ac77668e42a294b_activity.pkl create mode 100644 backend/instance/sessions/7bc50ce24ac9cb97855c53f9fff40ade_activity.pkl create mode 100644 backend/instance/sessions/7bf8691789709d6ff983f917c6ec7144_activity.pkl create mode 100644 backend/instance/sessions/7f0cbbc20baae3ceaf6f0f4690754ad2_activity.pkl create mode 100644 backend/instance/sessions/7fc1e32b08dc2c16d8fba2fd77752c48_activity.pkl create mode 100644 backend/instance/sessions/80a8c3f13874066ee4502eb592d401a5_activity.pkl create mode 100644 backend/instance/sessions/8136e340e34762c62075e83d417f82a2_activity.pkl create mode 100644 backend/instance/sessions/81d565c03c934c201c37f0aaee0f0993_activity.pkl create mode 100644 backend/instance/sessions/899f77ab9551d7579525d3fe623c824d_activity.pkl create mode 100644 backend/instance/sessions/8d595b44be0a3c2e9b80f99581d61a7f_activity.pkl create mode 100644 backend/instance/sessions/8e8c347c7529a39315450babffdaab59_activity.pkl create mode 100644 backend/instance/sessions/903e0431750a1f0b4e5f6dca3861f10b_activity.pkl create mode 100644 backend/instance/sessions/95d77056c2dbd89c3a177c56cf318847_activity.pkl create mode 100644 backend/instance/sessions/972a6641f57097aafd4abafa1f043ae6_activity.pkl create mode 100644 backend/instance/sessions/9a9278c87fc6d632c0f97590b469c68d_activity.pkl create mode 100644 backend/instance/sessions/9b608844beb374f0cfaf9e159879703f_activity.pkl create mode 100644 backend/instance/sessions/9b9192b1eec234cb9cc9e4fee6c39ca0_activity.pkl create mode 100644 backend/instance/sessions/9d0d60297da415a9f884ee031875a252_activity.pkl create mode 100644 backend/instance/sessions/a220e9f8a5a545de124f92050bd090b6_activity.pkl create mode 100644 backend/instance/sessions/a5734a5c513e5aa5816fc6b8f42889fe_activity.pkl create mode 100644 backend/instance/sessions/a8c1ffdaf33469d39d7149a22e1344ef_activity.pkl create mode 100644 backend/instance/sessions/a939b05f54925dba056507040b1808f9_activity.pkl create mode 100644 backend/instance/sessions/aa0435d93b92ea40c57e3f413648ece8_activity.pkl create mode 100644 backend/instance/sessions/aa2ba4ec8400f94ad0ed8e94814320dc_activity.pkl create mode 100644 backend/instance/sessions/ab0d8c18d9fae074f9d55b3d20abaa96_activity.pkl create mode 100644 backend/instance/sessions/ac96b40921360f398494512ea1f9f9b3_activity.pkl create mode 100644 backend/instance/sessions/ae53be6664d9d1871735e98346ef741c_activity.pkl create mode 100644 backend/instance/sessions/b07eb533d143c0b242f6b1c7e8a0fbac_activity.pkl create mode 100644 backend/instance/sessions/b1d42b940026c5944efb9ff1ad69ea74_activity.pkl create mode 100644 backend/instance/sessions/b35036c99e0323403abcde3a30e04ed2_activity.pkl create mode 100644 backend/instance/sessions/b3ad368fe6e4e32be68d39528b6198e1_activity.pkl create mode 100644 backend/instance/sessions/bda39cc09ac3695e4bb98ac064ef47f4_activity.pkl create mode 100644 backend/instance/sessions/c000b5f0588dfabd4e02d13bdbd34a1f_activity.pkl create mode 100644 backend/instance/sessions/c2b6e05650e2aecff40972e617e5efd6_activity.pkl create mode 100644 backend/instance/sessions/cbc4858f11128d9769cbe94ee2624710_activity.pkl create mode 100644 backend/instance/sessions/dc86885502dfc635a629c972f6510ffa_activity.pkl create mode 100644 backend/instance/sessions/ddbc99965640836afee57b7063b19d49_activity.pkl create mode 100644 backend/instance/sessions/e0202eab9cdbea413c005423b9f39a2b_activity.pkl create mode 100644 backend/instance/sessions/e2ff35936df40fe30d9a6675f085ac4c_activity.pkl create mode 100644 backend/instance/sessions/e76589a81122fd8788fb7e222d43bb97_activity.pkl create mode 100644 backend/instance/sessions/ebc303d4dbb1b80063cf98276ad75163_activity.pkl create mode 100644 backend/instance/sessions/edce37efce75786b38953d8deea8c3ff_activity.pkl create mode 100644 backend/instance/sessions/f45275bc4ec122d27fa8d03b0073f066_activity.pkl create mode 100644 backend/instance/sessions/f6d4d0626f0af5fe1c18f7a8b6322c8b_activity.pkl create mode 100644 backend/instance/sessions/f8febfa7e0ecfff93566e35a3d4477a5_activity.pkl create mode 100644 backend/instance/sessions/f902ad7fd4466628286c35f2150dd8f9_activity.pkl create mode 100644 backend/instance/sessions/f9d73f953b8d0a4035486d2db61c1c45_activity.pkl create mode 100644 backend/instance/sessions/fe6d518387bfaf14184f9a624a876f82_activity.pkl create mode 100644 backend/instance/sessions/fed96e53a331293b0b2744cdf7d2d253_activity.pkl 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 85d00bce373f9e35e6bd530870f300eb9e70a2a2..d63c4cd2ede807fc6f0d903157c05bcc35c86c64 100644 GIT binary patch delta 124 zcmZozz}B#UZG)4%X{l*Ysk3pKi+7Z#S!!{Ld$xf`P_~|9c2I=5r(3FHRCZptYf!OC zP*RX#Sw?17xL;+;*L%QLDwFd17cOJFnr0BJ-c{Qv*} delta 124 zcmZozz}B#UZG)4%sj*{uaB`G>cAjTOXhC^tl0~XVNV0!Wu4`VAzGFdRrJ<2$N@P%2 zv7d)?aax6CV1%JdVD98{c?%5#D^p7=6AL{fGh;JLVSlSPWu?I`Tmep y^+2P*0A%ieBmfnjST86FvJL}poEYxP$hfipA`3S&0}BHy0~-T71INaR>ZSnaSTH95 delta 156 zcmZo@U}|V!s+V}A%K!q*K+MR%AONBzf%t~d@zj0y&#;*ZnSP5t%J?=`eudw>WX3$FulIQFJCjlFHW zNs|kAo*>g!s{_vYW=yIu~;(7Mk6_A)YnMKtZhuk`COdwc+Dyu%FmvkpR1l6v(klE za&me(Z;Tb>(pW*M9hj`>Q)^3RVQqC;nLm-|tFwx3X*uV<)rPfLw9LhgyK&0ZB-N6P z#~95pJ;N!XT;Wu0y24q8@{G)hme$jn=DxyshRTFfjk9#q71!MuEiPGRSv<^qacRNY zw@*B*%NJOk`E+!u^4mImf$jUsnr)N*V^B~vGq%Fz`PlrNwX&bZE+ zy@Zawz<{9fcfG*rAN#-l;QRH*9bX_4c}d!x>%Y|ZSzq_A13Rzwe$nepVSoS#fB*=9 z00@8p2zV2)#}iR0GMGz65&qujKGBes3S<_^~h7i+kb#&k}Y zmL^PW_OQlk!!l|Ot7t7XlBJ4KIvbleDhp?fMyaw;JY&?ur(QUAYoFf2V3QLd&^hEcAQG(^c`qoZ?2>Ka3&!6@mBfwd&_4; zygF2K$yYkde=8vQPq)gy&r?3rNs229SDNX|o#ihFB>$;a`CZ=fQ$$r&ow8>6ytDj( z-u>|>{RbZL$z>{0QfbZo$@LL)(YP%@X!pGNlMjZxBSk5CwwFz`A@XU_X<2h zJ|mh4`-&^<`v^Rb1R{UqZ&i~o@apv&2Zu(!``qybdc*5&d;u|u0RkWZ0w4eaAOHdZ z6R@*GtxGJA<+;eLWkzIKrn-8U%X1dU5(~b7sA27x8^IT7@5;azpzsA8Z*U8i9((~G zfd{@oyTBvz9Z#urf&K+O1^##N<1_*!v2!H?xfWUv9fSny~O{_h( z?VQ9~CW@x>yWX}d1d~|97eKwhM%}~~a-%Hj1t{tTwwPFFQ7?dcfvvtf+p1oG{(SnO zZ?FCOvEvKu+R?v>FCZ>pfB*=900@AR}R z8omJaQO=8c0rU}Y^by?4CKU7$_z67dBWM?R&`02>f$87rBe)*_Y5#{;KS?;gKwr<% zO??4z2?GQ`00ck)1UeD0vm>pEwMVy|lUS#mvvsNF>eTenZKns6Si=|aQ_hQefp#7G zIA6d=IWPJM+LiO#S@aS32|UXIg?-cupk4s=0^~1OtNr0|=N2nSP5t%J}xQjHqV;>n2a25EBqf!o)q8K4!AV zUbNU8AmGGr>TFo#TNoMPuNRb@>Z70I?&IfJR;ia}=~NMH7F>~N6cA+U6Pg^Zryr6V znp7C+p5`8IWHfm_zlDZ@m8qqbiG`k#nX#Frv5|q1sjh*UuAz~Fk)f4=k(H69o~ePE ziG}IpgZvVc?G;2sQCyKA%XN7P*X%fmD?$^aa=eQ4+;a>HO+5?>!pzc4!`<~V%gXeU zGeg6J3&V0OOuP!r{W7D{(%dc5OHF;ULrRHpg|VTYiHU)Mg%NgFq#hT#!FJ~UKFVAX U!UOcLv5}scrJ;ej8Pq000PTHv-v9sr diff --git a/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc b/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc index 5165ee832c7ad77632a1bf68cd2bb729d14fc079..6766d9a38aa444e37ecced393da29b8a7511aea9 100644 GIT binary patch delta 4124 zcmZu!3wTu35#HI&K9XIM4J2U+3E9nqu)IkK5urdJgh!O3ycJxQy*Feb`{3+dNYWr` z{j3&5K6nOO#9`#^#K8`Vu1wFM%zMX?iv!Y_sjlwX3m^B zGjrz5xjFl(zT<*Ees8~iaTk-8*dfRI!X?@QQd z0F72tW2n)uvGTO#4qdX4!c&&#>IMondW(Yu+a9e(a{zzQ=jGHrG05XD`fN1f+{7ME z7`#^1WN4?x=<0tj~~*#OS0$OjLY!NVv- zCn)iYLL!?lGM_gT@&^1$yvOZ#g(NqVTx$ZWLJO66zbFbJmpd3_f%Wc+62(dyQC3uS zoH1+!8e`8B{DI&F0vm5}jo|-rJqBs~*DL3b*Oyg{P@H{SqUB{x+T#S#wgG!FMAEu9>Z*eUeaka z4{170Q+U|@5RBvBxz}fpi%sa%`~={LH? zGOF)id+M;AquXuv=gjRHSua#RTiG(~jzih48B^ObruLEKv}R0e%b3>g$k}V#WosEe z`H@k**J%;sO0Cqd(OZxTd! zL%_yIdGFP~iKEStN4-`jBkA%R*^jX0qk>Ue5!g;h0}!srOHT?lA8 zi~lhgm-Zq_uu?RN&L7yI#D#+bmXqLeOKcx+366&S{ASP&2e^IR2>n~AcPTP|-A)5E z@UJ$^fx|q%vIvgwaOFa%=gpPVU>`SEtu?%didJo;rs@M5oZvIJ??b$@eFp50d`J4bu~- zDKHXc;)l=duvw8*%$~3mC@XVOow5NmSj5GaQvC`fOCoQy%uX~YWb!Q6b>ybHNWnq8 zy6#G1)n>hl7k7+HuA`C71k(vfyLyP+Fbk_{cSmmjdK5a-qQ}Nb3cLBo9huCF#7b!lQh2r0p;$3`0)9#KOYBpA>S|Fz8>z;rO2G=Z*Uvm;o(iYL zsZ|VKzks@mMf8WlOmw+J9^H+qx~^QF$6p8@XO9k`5~43A8yBON<}ViZKl z?Zxk&dgOX4FnXp)N2Iv|fm(~voXJa4ARWGt!zmCltCgdc)IoWECS=OV17YyY-i7DV zDm~4C8eX)Z)$LPHcq3V-LQ+h4;9P>&BeCNoJ0XV$!gPHL(!-jL4umI7hC?JjD*w_B zZ^6@Yf&>&VR#lvj_X24RywNd~k0ssr*Ie^xc7C*K$bi_LwuT6Q_Xr#333AAUHBbUS+jVXVOO@_8rR z*Jt$sx1DQ6=W|ywL0&!_%FOB^Q`fjCpBfGm^S&<=_M; z)tj&y&o;e10WKtzUZBV*)OmRSs2kFVjAC#LKCeI2b3jSPBpNVcf2U*aH1uk-I5f!2 z@|6;p0kv}8EC^tc?V1IX9PMcS$405vTD1J9khyvU=U{G~pKO>xe4{*QHtxkydGc&X zkA`tkcFl%uqZ81)VxmueSKjz?W+m3BvV{WcPh4z;J0!Wv17XGn$mw&iV$xBZ*(A(? zXDsl({O?6D315Ya!H-{wdlo~XnL4uCgs{fGTnuBuArD#tZYjTVQ9b;eUUL8I8TG7wka_veew5zS0%1AMW z@I%Begw*w&`e;i&D*tmO2A0PX_rZGm7t5@8-fg64C{WkobG`f^GOmB z#2e+iJ~pKt4pWRS|1%kufjH%&>0gQEY>zz*TVFe{{f+edyA^CwQBysXb6x4dQ z+t;yLw<8^Us;jlf>SA3Vk;QZ9R$NIWT6gZmE>xFu_%d_n z&Yih;?%eq=UXo6nlX`55iZW{W-|^Ve+AmUe^mtgV{Z!A^^@jn$p%pngI=Np)T-+jQ zjscbM?*ol1UbWKLjq&vAthCq!S0W#c4UcIwu3pq)pBQKRxv$aKG-TppSxsRDFGHHn zqGr>(mcjJLS!PM=N^%3+nh3p;A{Wa`b48!&Rf9l-%()a&=_%)YTWVxeSj@%BMIU|SMxqp>(ycQF3N;zZq{7~t(giBfTLa8iw4FR#Ur z^`iDB8*Q2!4_oL;&QE9ovCzNGohEJL!@Gm=bun_E7T%nk9Z4qeU($>yL!=_M@CmiB zhPIHIF~VXZ!So@2;^4M3=t#dYWj#uC93h>@+YmAad@g=AF1te|8(3N{#L?EO_y_|T zhbnt?IwG1tEVPi4ur285RAV{UAGFVG1ntlZv=m$-6<7>1HpZ(4IoAFM9B#rdw)X$?5AX#pYQPMwkn9F#oO0GPkMd(GKisp9d?MOr*=Fv z#dCF%fH+A{?;HlFs5v+)>K}Z$>{Sa@#p!h^WDrisqqmRd zaR>W;H3|;Ximz_NkzmoWMo1QOVx4u0!xQk?Rd>DOR~_}fY#muc&wf4gl`gMS|F73w zzFxpB{0nglaUOApBP0{0-aB6r*FGeXdY79J5r> zy{Yq)k@V2DN=-qLlD0%0`8C)O{r#%IVuzY%w=bAZnkmzm;}e8On$5UzsGkxSdX2aKcrOiA!4V z&WNeRg}bkwb}ue#AGgq`ALR7UZ;Vit1?phl%GMLyRLJ1;dQ`=ul7G^Qdj-!QMOC9v z^3^%q9x@XRVzx}k)`n!a$HjF+X2s(V5XJ8BJKb(_h<<&~ktckxbyWhgj!zE$nd##P^FPt8o4bRF8D}0{j_t)F|YSD0~+|5zE;rE%>DMyxr7RqJwBd zLRac`%Nyn~!UbCgMwGvuPtGh2TiukcZUQ^3Wkbx6BY%jBqReNpx6Dv2 z{e`O@X?tLXH;e;z;I#2vBc%7?4zV(YB6tw&qKm=4z8MXC$u{vR-RuR! z`C2v${CywVjMzT-}6kH1b&mq zGLe2;+0rB!J*{giC0zG^B?2p7*p4__anC=&^)TN;5p~`gyUXoVNju6uMU?XC{umC{ zQ3{DHvp1wlhxtHaTXAn#9wF~UrN6T8(qRw0!q#NKJd<#DESERtVd1c_JR6Ko>p(@} zcJJ=x13d}5%~sf;SPpxFPNcKPHlWhCeBPWkmI)W7o_GN6dM@}gkTYm+16wu_UN&`0 z40dZE)Qc(>isFS-!I#|W4e+Er!#p`q(QO}bPnCd>uHLbL%wpGbpxP|1s9571&?V`K zY+f#;OBeZ~@3*bag@{Pl&OUqrc7vZ)4?v&!Kx zL>8sv2ECAHVJ*X9LX?QOYfxCBO}o#5u56jowI zBWZ{+2ysTqya*()^(7#|7WQ!oq(dt^R04g%Zk%PeN?_%nNNzq9F~?iww-0@;mKd>X z5Z!ziF=H>X&f!<>wcY?BQLLpD3Z-6L9Mg8U6y7uQg7oHe7{z}+pAH`A&4!gjz6mS1 zsAK%X2Ff81lG(@Q;D8hsQ32EV{wpisxAtsqM%;jBofv>a!ij`##aM)2+$tMJR(zbF z#igtW@iKQk^4C~&C5(W3thf?v+8;H{TM7A)%QjWQ5@{5-zo>1%3^*-YO}G~S=a1HW zFR?c2t!0jyaGlU99#YBDosch!kDxQm?t~;B#)VGkXZ##Dfw4RW0 fbZU@ybsBBVANt}?{z-VDQ!j>QL)-d#DAfNKW!T|R 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 0000000000000000000000000000000000000000..059a82f6063803a18c82cbd7b8f3497f6c422cc1 GIT binary patch literal 60 zcmZo*nQF)Y0kuY12Y LS{j&7Db@o3@nH}! literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/04da67132a820bd962335e984e6cc8c5_activity.pkl b/backend/instance/sessions/04da67132a820bd962335e984e6cc8c5_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..df231f089979bef5052e8aa8e7b8490b5bc8259c GIT binary patch literal 60 zcmZo*nQF)Y0kuls;C LSQuGODb@o3@s1ES literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/082b6dccf079e02eb07ca3be21d33d7c_activity.pkl b/backend/instance/sessions/082b6dccf079e02eb07ca3be21d33d7c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..e1197f99252689636363f02c6cab1785a15b6395 GIT binary patch literal 60 zcmZo*nQF)Y0ku L7@3$)Db@o3@y-x6 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/0974d4cc751d33166af713a08e663eac_activity.pkl b/backend/instance/sessions/0974d4cc751d33166af713a08e663eac_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..be5e18ae2c73f32ed804a0877f8f7c8f82c23adf GIT binary patch literal 60 zcmZo*nQF)Y0kud=~)<> L8e14oDb@o3@o*3? literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/0c0d278f59035bd5c2692b5a076e198c_activity.pkl b/backend/instance/sessions/0c0d278f59035bd5c2692b5a076e198c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..56e3313de7e36172770f7483af09336d967eee67 GIT binary patch literal 60 zcmZo*nQF)Y0ku6x0E Ln46hTDb@o3@v0Cv literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/0c5b586b556b4ce1c9ef0ed2c18945e5_activity.pkl b/backend/instance/sessions/0c5b586b556b4ce1c9ef0ed2c18945e5_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..189821f7c955376064ef47723559fdfb8d6c0e8a GIT binary patch literal 60 zcmZo*nQF)Y0ku3yNDb@o3@j(zK literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/1112aaf754e03c0c8d59993e9b7cec2d_activity.pkl b/backend/instance/sessions/1112aaf754e03c0c8d59993e9b7cec2d_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..26f066036ab2a30e42bc470f6912d4545ea44c24 GIT binary patch literal 60 zcmZo*nQF)Y0ku8K(Db@o3@l6mZ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/11561b6b889c0082e67c26ad8c69c1d6_activity.pkl b/backend/instance/sessions/11561b6b889c0082e67c26ad8c69c1d6_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..f6b4a1da634f51f0d636d97cf5143738fdeef50e GIT binary patch literal 60 zcmZo*nQF)Y0kuY12W LnweToDb@o3@n{e; literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/1586a95887d7d6db078ba7d58ef8183c_activity.pkl b/backend/instance/sessions/1586a95887d7d6db078ba7d58ef8183c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..620d44f99220164e2bdb5130b44d39ebeda3b548 GIT binary patch literal 60 zcmZo*nQF)Y0kuRDKr J0O6EkJpl2(5IO(= literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/1877815cd0cb06e0fce4488c584e5e86_activity.pkl b/backend/instance/sessions/1877815cd0cb06e0fce4488c584e5e86_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..79b83fc15811d07fc9890063db8277a3c4510eb5 GIT binary patch literal 60 zcmZo*nQF)Y0kuKRy? LnwpqSDb@o3@ih=C literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/1a0a8d4463a287c73e584d8c4d3d6998_activity.pkl b/backend/instance/sessions/1a0a8d4463a287c73e584d8c4d3d6998_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5395ed9b595f54922925f79caa5efcfb437002ec GIT binary patch literal 60 zcmZo*nQF)Y0kuY19G Lm>QW)Db@o3@s|)X literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/1c5d3db5cbbbbf5786e9211ecfafa1ab_activity.pkl b/backend/instance/sessions/1c5d3db5cbbbbf5786e9211ecfafa1ab_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..6cea37683ff8511471d515862b66362eb51d4181 GIT binary patch literal 60 zcmZo*nQF)Y0ku6u%a L8W~znDb@o3@zW4E literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/1da91cee2fd493225e94b32ffd4bdc58_activity.pkl b/backend/instance/sessions/1da91cee2fd493225e94b32ffd4bdc58_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..52d30ea68a1b18627187cd8909a1bc9512168b5a GIT binary patch literal 60 zcmZo*nQF)Y0kuzSEY Lnps*-Db@o3@vsm) literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/247ce8db9d008bb8eba104e8fe6a78ac_activity.pkl b/backend/instance/sessions/247ce8db9d008bb8eba104e8fe6a78ac_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..b33490038873243c63b2b5939a8d21e16ffdedb0 GIT binary patch literal 60 zcmZo*nQF)Y0kulquG L8km_*Db@o3@o*3< literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/27da1608bd080c740db6e396332cbae3_activity.pkl b/backend/instance/sessions/27da1608bd080c740db6e396332cbae3_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..2af078b376a92fdb25be6bf123349710ac1a877d GIT binary patch literal 60 zcmZo*nQF)Y0ku3&RDb@o3@uv_m literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/372624014b90d421a2789d9d7264a218_activity.pkl b/backend/instance/sessions/372624014b90d421a2789d9d7264a218_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..698298b023f6ee103c2c2f2557c2b0a50a1c63cd GIT binary patch literal 60 zcmZo*nQF)Y0kuls*> Lm>8H(Db@o3@nR4x literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/38062a8432cd419461d7721ce2ba7da5_activity.pkl b/backend/instance/sessions/38062a8432cd419461d7721ce2ba7da5_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..6bd80c5e7c52d3318a331d9be41d97fafeb7735d GIT binary patch literal 60 zcmZo*nQF)Y0kuKT|A Lnwc9-Db@o3@oW$* literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3918383a9c188c467fd7b7909fa5dad2_activity.pkl b/backend/instance/sessions/3918383a9c188c467fd7b7909fa5dad2_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..fcce280e607609587fd16af215b982f935302d85 GIT binary patch literal 60 zcmZo*nQF)Y0ku6x0C L8W>wlDb@o3@pKR_ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3cd3bd852d8181dcd16df7bca5301256_activity.pkl b/backend/instance/sessions/3cd3bd852d8181dcd16df7bca5301256_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..023e9460cff06cb8d6d5300d4f6cdde47b793081 GIT binary patch literal 60 zcmZo*nQF)Y0kud>6u#^ Lo0wZpDb@o3@v;y) literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3d378f202a473e7ccb159367e2edb592_activity.pkl b/backend/instance/sessions/3d378f202a473e7ccb159367e2edb592_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..85a9caf177b73e8fef35943f8fe4f8d6c4bde723 GIT binary patch literal 60 zcmZo*nQF)Y0ku6sdu LnwS_*Db@o3@jnnK literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/3f0775bba30bc38197aac449a3ce2298_activity.pkl b/backend/instance/sessions/3f0775bba30bc38197aac449a3ce2298_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..a81d370a83b7bfa8f3d8750db828616e670b69a8 GIT binary patch literal 60 zcmZo*nQF)Y0kuX}-Y L8=6>5Db@o3@vaay literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/421706cbd345cca76fde7eb30b41ece3_activity.pkl b/backend/instance/sessions/421706cbd345cca76fde7eb30b41ece3_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..aa2d737861fc41e777e2a99c15f7c67638ca7e04 GIT binary patch literal 60 zcmZo*nQF)Y0ku6u#^ Ln3$VQDb@o3@#GLX literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/451ade5c788c00f152f4bdf11329bb4a_activity.pkl b/backend/instance/sessions/451ade5c788c00f152f4bdf11329bb4a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..2a33744eb11245c2592cd5e9013c28ff7738a365 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPiE L7#o{SDb@o3@azyE literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/45f58e4e2843b15141e87c4bb66c022a_activity.pkl b/backend/instance/sessions/45f58e4e2843b15141e87c4bb66c022a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..805e8aa046d64523881368e834d0b3812e49c421 GIT binary patch literal 60 zcmZo*nQF)Y0kua=~)<9 LS{R#5Db@o3@o5k+ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/4a3eaba1268770d53522c13bc499dda9_activity.pkl b/backend/instance/sessions/4a3eaba1268770d53522c13bc499dda9_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..f022c46c1436d7da7eca9e2df60527e1ab72a8e5 GIT binary patch literal 60 zcmZo*nQF)Y0kuRB2X Lnp#*+Db@o3@puq2 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/4a8e7e736f8251b0e83b42ca242cb07d_activity.pkl b/backend/instance/sessions/4a8e7e736f8251b0e83b42ca242cb07d_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1c94c19948202a5b4c7ef97d332c1db061d5cb52 GIT binary patch literal 60 zcmZo*nQF)Y0kusgo> L8JQVRDb@o3@kkIU literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/4ae8d597a0c61f8d6cb0fe715d7de015_activity.pkl b/backend/instance/sessions/4ae8d597a0c61f8d6cb0fe715d7de015_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..babb760931c4323468087cc5b472adec1c4cc0d5 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPgv LnHpJ4Db@o3@m~-u literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/4c430bc45289494a27d56a95a0d18312_activity.pkl b/backend/instance/sessions/4c430bc45289494a27d56a95a0d18312_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..2a36e5003becabb019074b9f685bffa083517d3f GIT binary patch literal 60 zcmZo*nQF)Y0ku6u#^ LSQ?v8Db@o3@y-xA literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/4cb782eb69edf6815b5f1592671c06c9_activity.pkl b/backend/instance/sessions/4cb782eb69edf6815b5f1592671c06c9_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8e36e2cf8232a69f4d9d86dacedcaa2d21ab41e4 GIT binary patch literal 60 zcmZo*nQF)Y0ku LS{Rs5Db@o3@p2F^ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/51fb3dbe51339d3ce22c31e662faa368_activity.pkl b/backend/instance/sessions/51fb3dbe51339d3ce22c31e662faa368_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d00d54db4bb53a49489922ddbf4452eb54fe547b GIT binary patch literal 60 zcmZo*nQF)Y0kuY1CF L8Je3;Db@o3@sbcT literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/598e9a28129e940669bafa1b64e05257_activity.pkl b/backend/instance/sessions/598e9a28129e940669bafa1b64e05257_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d501e01ce97b859d11447a97bccf4a14981f1fae GIT binary patch literal 60 zcmZo*nQF)Y0ku6w_B LTNs;6Db@o3@u?6s literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/5a1bdb6a95542085550bd9b9aee92c71_activity.pkl b/backend/instance/sessions/5a1bdb6a95542085550bd9b9aee92c71_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..591a4ff8ae7698168c4f824cee532e1e5d52c211 GIT binary patch literal 60 zcmZo*nQF)Y0ku6w`t LnOa&*Db@o3@rn>N literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/5a1d7ce6c4ea654d448a68cd5fcf890b_activity.pkl b/backend/instance/sessions/5a1d7ce6c4ea654d448a68cd5fcf890b_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..8bedf1009346ee5789d60d6ee3ba768d95d2e250 GIT binary patch literal 60 zcmZo*nQF)Y0kuG literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/5f6a87ba503fd0b4c28d8cb3d5236b17_activity.pkl b/backend/instance/sessions/5f6a87ba503fd0b4c28d8cb3d5236b17_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..06124bf81e93afe9c805f459ac851ca041ff7fd8 GIT binary patch literal 60 zcmZo*nQF)Y0kuzP@a LTbLV9Db@o3@w5;* literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/5fdda854d1ab7c7afea5ff7529c0511a_activity.pkl b/backend/instance/sessions/5fdda854d1ab7c7afea5ff7529c0511a_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..3258925c2d41402a8f3457743cfd5daa0f3b7951 GIT binary patch literal 60 zcmZo*nQF)Y0kuX}lvCG L8W|Z)Db@o3@eB|k literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/6e034d55a1dd483fb1fd58f37921baf1_activity.pkl b/backend/instance/sessions/6e034d55a1dd483fb1fd58f37921baf1_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..a382a03de2ee4fbae6c1a5902878606742084873 GIT binary patch literal 60 zcmZo*nQF)Y0kuL*PDb@o3@sJQJ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7bc50ce24ac9cb97855c53f9fff40ade_activity.pkl b/backend/instance/sessions/7bc50ce24ac9cb97855c53f9fff40ade_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..607d612bb7ac2099997de94d7d555775335fd3c3 GIT binary patch literal 60 zcmZo*nQF)Y0kuKR&E L7@M0+Db@o3@l+5l literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7bf8691789709d6ff983f917c6ec7144_activity.pkl b/backend/instance/sessions/7bf8691789709d6ff983f917c6ec7144_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..3e7606aa0fe45763d43607bac76cb6b133bb39a0 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{lE Lm>L>SDb@o3@fHvv literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7f0cbbc20baae3ceaf6f0f4690754ad2_activity.pkl b/backend/instance/sessions/7f0cbbc20baae3ceaf6f0f4690754ad2_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..039b71ce641b98de604ccdbcef34ec69e669af87 GIT binary patch literal 60 zcmZo*nQF)Y0ku6u#^ LnVT3+Db@o3@$V2g literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/7fc1e32b08dc2c16d8fba2fd77752c48_activity.pkl b/backend/instance/sessions/7fc1e32b08dc2c16d8fba2fd77752c48_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..ae6ee0f4609f64144e46f81599f0d575f52c58c7 GIT binary patch literal 60 zcmZo*nQF)Y0ku6u#^ LSXvlPDb@o3@#_#e literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/8136e340e34762c62075e83d417f82a2_activity.pkl b/backend/instance/sessions/8136e340e34762c62075e83d417f82a2_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..25dcaeb6052815fe722d03b61f4f9daffac03007 GIT binary patch literal 60 zcmZo*nQF)Y0kusgu_ L8yXo*Db@o3@j4JB literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/81d565c03c934c201c37f0aaee0f0993_activity.pkl b/backend/instance/sessions/81d565c03c934c201c37f0aaee0f0993_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..59e42ce6c2ae9831c8381c30336fb6fd3d3c640c GIT binary patch literal 60 zcmZo*nQF)Y0ku6u#^ LSeTkjDb@o3@!SwO literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/899f77ab9551d7579525d3fe623c824d_activity.pkl b/backend/instance/sessions/899f77ab9551d7579525d3fe623c824d_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..c2f48bcefdd3023ac98fbcb5300a2b674ff76677 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{lF L85zNr_ L7@1j4Db@o3@p=$5 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/95d77056c2dbd89c3a177c56cf318847_activity.pkl b/backend/instance/sessions/95d77056c2dbd89c3a177c56cf318847_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1cff6ff15937daccea202a2e80d74954d2b16f23 GIT binary patch literal 60 zcmZo*nQF)Y0kuKR%X LSehG7Db@o3@thDc literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/9a9278c87fc6d632c0f97590b469c68d_activity.pkl b/backend/instance/sessions/9a9278c87fc6d632c0f97590b469c68d_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..b5e958461a2ac944251163e9039a493f30371fbd GIT binary patch literal 60 zcmZo*nQF)Y0kuX}(s LT9_M7Db@o3@yHN5 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/a5734a5c513e5aa5816fc6b8f42889fe_activity.pkl b/backend/instance/sessions/a5734a5c513e5aa5816fc6b8f42889fe_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..058bc5ec9ccd18f7bcb182a9b88eeb81e4349039 GIT binary patch literal 60 zcmZo*nQF)Y0kuY1CG LS(=(oDb@o3@vsm$ literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/a8c1ffdaf33469d39d7149a22e1344ef_activity.pkl b/backend/instance/sessions/a8c1ffdaf33469d39d7149a22e1344ef_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d6b6bbfbd3aa9f6d7976286ef07798f377ae1d83 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPcA LnHrf*Db@o3@a_;H literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/a939b05f54925dba056507040b1808f9_activity.pkl b/backend/instance/sessions/a939b05f54925dba056507040b1808f9_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1f3b6b3d667ed939d4d30367e2ec82dadbc7dc38 GIT binary patch literal 60 zcmZo*nQF)Y0kuY13C L7@HVPDb@o3@stoR literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/aa0435d93b92ea40c57e3f413648ece8_activity.pkl b/backend/instance/sessions/aa0435d93b92ea40c57e3f413648ece8_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..0aae2b0ffa2ffce8301a3b6be53ed9ec0a702328 GIT binary patch literal 60 zcmZo*nQF)Y0kua>6u#^ LT3DD)Db@o3@r@8R literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ab0d8c18d9fae074f9d55b3d20abaa96_activity.pkl b/backend/instance/sessions/ab0d8c18d9fae074f9d55b3d20abaa96_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..2081b974bb9cb47a9822fe19bee2a6865334f6a6 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPdr Lm{=N4Db@o3@Zk_1 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ac96b40921360f398494512ea1f9f9b3_activity.pkl b/backend/instance/sessions/ac96b40921360f398494512ea1f9f9b3_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..45bb97de635594fb1c9eda4f66fe240f17dc212a GIT binary patch literal 60 zcmZo*nQF)Y0kuX{gr L7+M-kDb@o3@b?fP literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ae53be6664d9d1871735e98346ef741c_activity.pkl b/backend/instance/sessions/ae53be6664d9d1871735e98346ef741c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..354b55cf9874db189649c358df2e62cfacc7a42a GIT binary patch literal 60 zcmZo*nQF)Y0kuRDJC L8kiYPDb@o3@pBL? literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/b07eb533d143c0b242f6b1c7e8a0fbac_activity.pkl b/backend/instance/sessions/b07eb533d143c0b242f6b1c7e8a0fbac_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..e8029c3d0bf9dcb8e1c9a833bd0b0d306b2827e7 GIT binary patch literal 60 zcmZo*nQF)Y0kuX{lC L8<`kRDb@o3@fZ*x literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/b1d42b940026c5944efb9ff1ad69ea74_activity.pkl b/backend/instance/sessions/b1d42b940026c5944efb9ff1ad69ea74_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..f55b7af57cee36d5e2259c632ea19b01631b2019 GIT binary patch literal 60 zcmZo*nQF)Y0kusgvw Ln46hSDb@o3@u?6v literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/b35036c99e0323403abcde3a30e04ed2_activity.pkl b/backend/instance/sessions/b35036c99e0323403abcde3a30e04ed2_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..b30aaa7284c0c07c34e2fb86baaac3db1ef95b24 GIT binary patch literal 60 zcmZo*nQF)Y0kuKPgv LSQwg5Db@o3@mdfo literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/b3ad368fe6e4e32be68d39528b6198e1_activity.pkl b/backend/instance/sessions/b3ad368fe6e4e32be68d39528b6198e1_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..5728ebffd4257e457fe706c80dabdc5e88f7110c GIT binary patch literal 60 zcmZo*nQF)Y0ku6sZD Ln46kTDb@o3@j?(P literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/c000b5f0588dfabd4e02d13bdbd34a1f_activity.pkl b/backend/instance/sessions/c000b5f0588dfabd4e02d13bdbd34a1f_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..9bb37a8978159817c962487a4e975eef7a897a14 GIT binary patch literal 60 zcmZo*nQF)Y0kuscCG Lni!i*Db@o3@p}+3 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/c2b6e05650e2aecff40972e617e5efd6_activity.pkl b/backend/instance/sessions/c2b6e05650e2aecff40972e617e5efd6_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..153accff6001da49743a82670d1166f820f8132c GIT binary patch literal 60 zcmZo*nQF)Y0kuls-Z LTAG+nDb@o3@nsM% literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/cbc4858f11128d9769cbe94ee2624710_activity.pkl b/backend/instance/sessions/cbc4858f11128d9769cbe94ee2624710_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..eb5ac43f2c2e1fa36c31a6ec50c928e44de486ba GIT binary patch literal 60 zcmZo*nQF)Y0kuKU3F LTN+wUDb@o3@v9Iv literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/ddbc99965640836afee57b7063b19d49_activity.pkl b/backend/instance/sessions/ddbc99965640836afee57b7063b19d49_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..e0aead11583804996e9b753fcbdaf2f207917eed GIT binary patch literal 60 zcmZo*nQF)Y0kuKPbY LnwpqSDb@o3@r4jE literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/e2ff35936df40fe30d9a6675f085ac4c_activity.pkl b/backend/instance/sessions/e2ff35936df40fe30d9a6675f085ac4c_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..1e378fff93c52a1983856ec5eb04a2e2fa0bbf57 GIT binary patch literal 60 zcmZo*nQF)Y0kuY13C LnHrl-Db@o3@ktOY literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/e76589a81122fd8788fb7e222d43bb97_activity.pkl b/backend/instance/sessions/e76589a81122fd8788fb7e222d43bb97_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..6ccb82bdb1253bf7097707d3d949c5a595e23ed1 GIT binary patch literal 60 zcmZo*nQF)Y0ku6sc@ Lm>3#PDb@o3@jVbG literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/f8febfa7e0ecfff93566e35a3d4477a5_activity.pkl b/backend/instance/sessions/f8febfa7e0ecfff93566e35a3d4477a5_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..7358d2132a1e2be8aa4136eb079d6139ea09ec5b GIT binary patch literal 60 zcmZo*nQF)Y0kuY13C L8=D$TDb@o3@tP1Y literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/f902ad7fd4466628286c35f2150dd8f9_activity.pkl b/backend/instance/sessions/f902ad7fd4466628286c35f2150dd8f9_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..f6bcbd81cffa824d1917ee2f7b203b51b32f5391 GIT binary patch literal 60 zcmZo*nQF)Y0kuZc)Db@o3@qrL7 literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/f9d73f953b8d0a4035486d2db61c1c45_activity.pkl b/backend/instance/sessions/f9d73f953b8d0a4035486d2db61c1c45_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..6ca91101cd67eaa656d84f74360a13b1a583697e GIT binary patch literal 60 zcmZo*nQF)Y0kuKRxX L8k(3)Db@o3@cj@W literal 0 HcmV?d00001 diff --git a/backend/instance/sessions/fed96e53a331293b0b2744cdf7d2d253_activity.pkl b/backend/instance/sessions/fed96e53a331293b0b2744cdf7d2d253_activity.pkl new file mode 100644 index 0000000000000000000000000000000000000000..f890c5d60854906feb656f842bebfc23e72aa8a0 GIT binary patch literal 60 zcmZo*nQF)Y0ku6u#^ L8<-kQDb@o3@!JqH literal 0 HcmV?d00001 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); });