diff --git a/backend/__pycache__/models.cpython-311.pyc b/backend/__pycache__/models.cpython-311.pyc index 060151040..72ca255f2 100644 Binary files a/backend/__pycache__/models.cpython-311.pyc and b/backend/__pycache__/models.cpython-311.pyc differ diff --git a/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc b/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc index e669d7f9b..0ccfb31fc 100644 Binary files a/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc and b/backend/blueprints/__pycache__/admin_unified.cpython-311.pyc differ diff --git a/backend/blueprints/admin_unified.py b/backend/blueprints/admin_unified.py index 7010eda84..0238d3ce3 100644 --- a/backend/blueprints/admin_unified.py +++ b/backend/blueprints/admin_unified.py @@ -1317,7 +1317,7 @@ def get_guest_requests_api(): # OTP-Code für Admins sichtbar machen (nur wenn aktiv) if req.status == 'approved' and req.otp_code and req.otp_expires_at: if req.otp_expires_at > datetime.now() and not req.otp_used_at: - request_data['otp_code'] = req.otp_code # Klartext für Admin + request_data['otp_code'] = req.otp_code_plain # Klartext für Admin request_data['otp_expires_at'] = req.otp_expires_at.isoformat() request_data['otp_status'] = 'active' elif req.otp_used_at: @@ -1407,7 +1407,7 @@ def print_guest_credentials_api(request_id): "approved_by": guest_request.processed_by }, "access_data": { - "otp_code": guest_request.otp_code, + "otp_code": guest_request.otp_code_plain, # Klartext für Ausdruck "valid_until": guest_request.otp_expires_at.strftime("%d.%m.%Y %H:%M"), "login_url": "http://192.168.1.100:5000/auth/guest" }, @@ -1461,7 +1461,7 @@ def get_pending_guest_otps_api(): otps_data.append({ 'request_id': req.id, 'guest_name': req.name, - 'otp_code': req.otp_code, + 'otp_code': req.otp_code_plain, # Klartext für Admin 'expires_at': req.otp_expires_at.isoformat(), 'hours_remaining': hours_remaining, 'urgency': 'critical' if hours_remaining < 2 else 'warning' if hours_remaining < 24 else 'normal' diff --git a/backend/database/myp.db b/backend/database/myp.db index 5682e1735..d402c0603 100644 Binary files a/backend/database/myp.db and b/backend/database/myp.db differ diff --git a/backend/database/myp.db-shm b/backend/database/myp.db-shm deleted file mode 100644 index bdf6409a2..000000000 Binary files a/backend/database/myp.db-shm and /dev/null differ diff --git a/backend/database/myp.db-wal b/backend/database/myp.db-wal deleted file mode 100644 index cb4e5cd4e..000000000 Binary files a/backend/database/myp.db-wal and /dev/null differ diff --git a/backend/instance/sessions/01b0bcefccfe80673d1ffb961002566a_activity.pkl b/backend/instance/sessions/01b0bcefccfe80673d1ffb961002566a_activity.pkl new file mode 100644 index 000000000..be964cb07 Binary files /dev/null and b/backend/instance/sessions/01b0bcefccfe80673d1ffb961002566a_activity.pkl differ diff --git a/backend/instance/sessions/027207fd420b0226adf360b4af0b3248_activity.pkl b/backend/instance/sessions/027207fd420b0226adf360b4af0b3248_activity.pkl new file mode 100644 index 000000000..1d9cda99e Binary files /dev/null and b/backend/instance/sessions/027207fd420b0226adf360b4af0b3248_activity.pkl differ diff --git a/backend/instance/sessions/02de397140232d55e65aac792ecd6096_activity.pkl b/backend/instance/sessions/02de397140232d55e65aac792ecd6096_activity.pkl new file mode 100644 index 000000000..b9bbd2642 Binary files /dev/null and b/backend/instance/sessions/02de397140232d55e65aac792ecd6096_activity.pkl differ diff --git a/backend/instance/sessions/0b1f9e9b88a13fd31af82ff297e58fc2_activity.pkl b/backend/instance/sessions/0b1f9e9b88a13fd31af82ff297e58fc2_activity.pkl new file mode 100644 index 000000000..f0d2d89cf Binary files /dev/null and b/backend/instance/sessions/0b1f9e9b88a13fd31af82ff297e58fc2_activity.pkl differ diff --git a/backend/instance/sessions/0d534223081072884b41fc154693f73b_activity.pkl b/backend/instance/sessions/0d534223081072884b41fc154693f73b_activity.pkl new file mode 100644 index 000000000..b6f2249e2 Binary files /dev/null and b/backend/instance/sessions/0d534223081072884b41fc154693f73b_activity.pkl differ diff --git a/backend/instance/sessions/11d7d035d6206205e2eb573cdb011dde_activity.pkl b/backend/instance/sessions/11d7d035d6206205e2eb573cdb011dde_activity.pkl new file mode 100644 index 000000000..c34abadd5 Binary files /dev/null and b/backend/instance/sessions/11d7d035d6206205e2eb573cdb011dde_activity.pkl differ diff --git a/backend/instance/sessions/13f7b146968d99aec5b0add18cbfec11_activity.pkl b/backend/instance/sessions/13f7b146968d99aec5b0add18cbfec11_activity.pkl new file mode 100644 index 000000000..7a4bc17b6 Binary files /dev/null and b/backend/instance/sessions/13f7b146968d99aec5b0add18cbfec11_activity.pkl differ diff --git a/backend/instance/sessions/15150765bb7038c441da4baa5c8ae24c_activity.pkl b/backend/instance/sessions/15150765bb7038c441da4baa5c8ae24c_activity.pkl new file mode 100644 index 000000000..aed7b789c Binary files /dev/null and b/backend/instance/sessions/15150765bb7038c441da4baa5c8ae24c_activity.pkl differ diff --git a/backend/instance/sessions/15ada23c48dadd37fe184c618d7a5996_activity.pkl b/backend/instance/sessions/15ada23c48dadd37fe184c618d7a5996_activity.pkl new file mode 100644 index 000000000..a12dce523 Binary files /dev/null and b/backend/instance/sessions/15ada23c48dadd37fe184c618d7a5996_activity.pkl differ diff --git a/backend/instance/sessions/17b8613844a99c945c509895f1b3e9cc_activity.pkl b/backend/instance/sessions/17b8613844a99c945c509895f1b3e9cc_activity.pkl new file mode 100644 index 000000000..e7816a523 Binary files /dev/null and b/backend/instance/sessions/17b8613844a99c945c509895f1b3e9cc_activity.pkl differ diff --git a/backend/instance/sessions/192c05e91900e03a4685e49bf8ac6da0_activity.pkl b/backend/instance/sessions/192c05e91900e03a4685e49bf8ac6da0_activity.pkl new file mode 100644 index 000000000..4f4266447 Binary files /dev/null and b/backend/instance/sessions/192c05e91900e03a4685e49bf8ac6da0_activity.pkl differ diff --git a/backend/instance/sessions/19459af6f160c77935718dc19f3a7ed2_activity.pkl b/backend/instance/sessions/19459af6f160c77935718dc19f3a7ed2_activity.pkl new file mode 100644 index 000000000..8c40749fd Binary files /dev/null and b/backend/instance/sessions/19459af6f160c77935718dc19f3a7ed2_activity.pkl differ diff --git a/backend/instance/sessions/1b41ef1053193d144485395456eba626_activity.pkl b/backend/instance/sessions/1b41ef1053193d144485395456eba626_activity.pkl new file mode 100644 index 000000000..af2f65350 Binary files /dev/null and b/backend/instance/sessions/1b41ef1053193d144485395456eba626_activity.pkl differ diff --git a/backend/instance/sessions/1bf877d1ecc6cf14cf5d3ac9013281d8_activity.pkl b/backend/instance/sessions/1bf877d1ecc6cf14cf5d3ac9013281d8_activity.pkl new file mode 100644 index 000000000..7eb1d48bb Binary files /dev/null and b/backend/instance/sessions/1bf877d1ecc6cf14cf5d3ac9013281d8_activity.pkl differ diff --git a/backend/instance/sessions/21432da03ab574b55d745ef50f8e6491_activity.pkl b/backend/instance/sessions/21432da03ab574b55d745ef50f8e6491_activity.pkl new file mode 100644 index 000000000..5ddffdbfa Binary files /dev/null and b/backend/instance/sessions/21432da03ab574b55d745ef50f8e6491_activity.pkl differ diff --git a/backend/instance/sessions/219a80af1e3bbcbb08abcb01339fa3a9_activity.pkl b/backend/instance/sessions/219a80af1e3bbcbb08abcb01339fa3a9_activity.pkl new file mode 100644 index 000000000..d44e7b694 Binary files /dev/null and b/backend/instance/sessions/219a80af1e3bbcbb08abcb01339fa3a9_activity.pkl differ diff --git a/backend/instance/sessions/24fa3cafee27ac6693676366119eed88_activity.pkl b/backend/instance/sessions/24fa3cafee27ac6693676366119eed88_activity.pkl new file mode 100644 index 000000000..eee286b53 Binary files /dev/null and b/backend/instance/sessions/24fa3cafee27ac6693676366119eed88_activity.pkl differ diff --git a/backend/instance/sessions/28df71df5b2afc67aa2da145a973166d_activity.pkl b/backend/instance/sessions/28df71df5b2afc67aa2da145a973166d_activity.pkl new file mode 100644 index 000000000..8dc2fca61 Binary files /dev/null and b/backend/instance/sessions/28df71df5b2afc67aa2da145a973166d_activity.pkl differ diff --git a/backend/instance/sessions/2a10c156b698031bfc75ca40584a8f61_activity.pkl b/backend/instance/sessions/2a10c156b698031bfc75ca40584a8f61_activity.pkl new file mode 100644 index 000000000..203535241 Binary files /dev/null and b/backend/instance/sessions/2a10c156b698031bfc75ca40584a8f61_activity.pkl differ diff --git a/backend/instance/sessions/2cd364a4904e82fa7b411a674c47e616_activity.pkl b/backend/instance/sessions/2cd364a4904e82fa7b411a674c47e616_activity.pkl new file mode 100644 index 000000000..f34f5ea2b Binary files /dev/null and b/backend/instance/sessions/2cd364a4904e82fa7b411a674c47e616_activity.pkl differ diff --git a/backend/instance/sessions/31b912c4efea08ef7bdecc73f9e8b0af_activity.pkl b/backend/instance/sessions/31b912c4efea08ef7bdecc73f9e8b0af_activity.pkl new file mode 100644 index 000000000..2dc500e7f Binary files /dev/null and b/backend/instance/sessions/31b912c4efea08ef7bdecc73f9e8b0af_activity.pkl differ diff --git a/backend/instance/sessions/3624e23506836870e3549f150e818af5_activity.pkl b/backend/instance/sessions/3624e23506836870e3549f150e818af5_activity.pkl new file mode 100644 index 000000000..5e572f30f Binary files /dev/null and b/backend/instance/sessions/3624e23506836870e3549f150e818af5_activity.pkl differ diff --git a/backend/instance/sessions/3b7dacb7af583ba6192bacffac497b67_activity.pkl b/backend/instance/sessions/3b7dacb7af583ba6192bacffac497b67_activity.pkl new file mode 100644 index 000000000..0dc6069e0 Binary files /dev/null and b/backend/instance/sessions/3b7dacb7af583ba6192bacffac497b67_activity.pkl differ diff --git a/backend/instance/sessions/44f52635c7b28566ad52e1f68ea512ea_activity.pkl b/backend/instance/sessions/44f52635c7b28566ad52e1f68ea512ea_activity.pkl new file mode 100644 index 000000000..e97a49dd8 Binary files /dev/null and b/backend/instance/sessions/44f52635c7b28566ad52e1f68ea512ea_activity.pkl differ diff --git a/backend/instance/sessions/478d82e55d9ece3400f044673e1654e3_activity.pkl b/backend/instance/sessions/478d82e55d9ece3400f044673e1654e3_activity.pkl new file mode 100644 index 000000000..362e8f17e Binary files /dev/null and b/backend/instance/sessions/478d82e55d9ece3400f044673e1654e3_activity.pkl differ diff --git a/backend/instance/sessions/4a22adf2d31b4502ba043c3b6fdd7506_activity.pkl b/backend/instance/sessions/4a22adf2d31b4502ba043c3b6fdd7506_activity.pkl new file mode 100644 index 000000000..b56ab3914 Binary files /dev/null and b/backend/instance/sessions/4a22adf2d31b4502ba043c3b6fdd7506_activity.pkl differ diff --git a/backend/instance/sessions/4cdb57a4fa7318049f609ba53f0991b9_activity.pkl b/backend/instance/sessions/4cdb57a4fa7318049f609ba53f0991b9_activity.pkl new file mode 100644 index 000000000..d6cdcbd4a Binary files /dev/null and b/backend/instance/sessions/4cdb57a4fa7318049f609ba53f0991b9_activity.pkl differ diff --git a/backend/instance/sessions/5026ecbcfc5598ba258cca9e06047405_activity.pkl b/backend/instance/sessions/5026ecbcfc5598ba258cca9e06047405_activity.pkl new file mode 100644 index 000000000..0f334259c Binary files /dev/null and b/backend/instance/sessions/5026ecbcfc5598ba258cca9e06047405_activity.pkl differ diff --git a/backend/instance/sessions/56b46c4ba2712aa34a315678c5ac6385_activity.pkl b/backend/instance/sessions/56b46c4ba2712aa34a315678c5ac6385_activity.pkl new file mode 100644 index 000000000..dc96935e6 Binary files /dev/null and b/backend/instance/sessions/56b46c4ba2712aa34a315678c5ac6385_activity.pkl differ diff --git a/backend/instance/sessions/5a2bebae1ec0331c3c1ded24137f9b26_activity.pkl b/backend/instance/sessions/5a2bebae1ec0331c3c1ded24137f9b26_activity.pkl new file mode 100644 index 000000000..ddc09f253 Binary files /dev/null and b/backend/instance/sessions/5a2bebae1ec0331c3c1ded24137f9b26_activity.pkl differ diff --git a/backend/instance/sessions/63793e32aa7793a321d3c652d9a32c89_activity.pkl b/backend/instance/sessions/63793e32aa7793a321d3c652d9a32c89_activity.pkl new file mode 100644 index 000000000..626acdeb6 Binary files /dev/null and b/backend/instance/sessions/63793e32aa7793a321d3c652d9a32c89_activity.pkl differ diff --git a/backend/instance/sessions/69a73b0cfa1395792d6ac7ec6c2b2466_activity.pkl b/backend/instance/sessions/69a73b0cfa1395792d6ac7ec6c2b2466_activity.pkl new file mode 100644 index 000000000..3ec8a296c Binary files /dev/null and b/backend/instance/sessions/69a73b0cfa1395792d6ac7ec6c2b2466_activity.pkl differ diff --git a/backend/instance/sessions/6af8633502d7b2b7974f0f82f3a30e23_activity.pkl b/backend/instance/sessions/6af8633502d7b2b7974f0f82f3a30e23_activity.pkl new file mode 100644 index 000000000..f99541aef Binary files /dev/null and b/backend/instance/sessions/6af8633502d7b2b7974f0f82f3a30e23_activity.pkl differ diff --git a/backend/instance/sessions/708144c5f944e6adfaa7a8654812edb4_activity.pkl b/backend/instance/sessions/708144c5f944e6adfaa7a8654812edb4_activity.pkl new file mode 100644 index 000000000..5d05077cc Binary files /dev/null and b/backend/instance/sessions/708144c5f944e6adfaa7a8654812edb4_activity.pkl differ diff --git a/backend/instance/sessions/70b7e80a2d5be3f6c48b304042dcdc8f_activity.pkl b/backend/instance/sessions/70b7e80a2d5be3f6c48b304042dcdc8f_activity.pkl new file mode 100644 index 000000000..8acbbb30a Binary files /dev/null and b/backend/instance/sessions/70b7e80a2d5be3f6c48b304042dcdc8f_activity.pkl differ diff --git a/backend/instance/sessions/7159932cd94012509f3e4423c8d914ac_activity.pkl b/backend/instance/sessions/7159932cd94012509f3e4423c8d914ac_activity.pkl new file mode 100644 index 000000000..ca925da97 Binary files /dev/null and b/backend/instance/sessions/7159932cd94012509f3e4423c8d914ac_activity.pkl differ diff --git a/backend/instance/sessions/719e8a6fe435790ef965966dfc761115_activity.pkl b/backend/instance/sessions/719e8a6fe435790ef965966dfc761115_activity.pkl new file mode 100644 index 000000000..c05e44510 Binary files /dev/null and b/backend/instance/sessions/719e8a6fe435790ef965966dfc761115_activity.pkl differ diff --git a/backend/instance/sessions/721bc0327c67d69ff1fbd34c140c2a66_activity.pkl b/backend/instance/sessions/721bc0327c67d69ff1fbd34c140c2a66_activity.pkl new file mode 100644 index 000000000..010fca094 Binary files /dev/null and b/backend/instance/sessions/721bc0327c67d69ff1fbd34c140c2a66_activity.pkl differ diff --git a/backend/instance/sessions/745eed3361d07a5ed22224ee56e5598d_activity.pkl b/backend/instance/sessions/745eed3361d07a5ed22224ee56e5598d_activity.pkl new file mode 100644 index 000000000..e203219e8 Binary files /dev/null and b/backend/instance/sessions/745eed3361d07a5ed22224ee56e5598d_activity.pkl differ diff --git a/backend/instance/sessions/7972a6a2d3ce57020f8963d91d471a4e_activity.pkl b/backend/instance/sessions/7972a6a2d3ce57020f8963d91d471a4e_activity.pkl new file mode 100644 index 000000000..98f2dfa8c Binary files /dev/null and b/backend/instance/sessions/7972a6a2d3ce57020f8963d91d471a4e_activity.pkl differ diff --git a/backend/instance/sessions/7a8e707d4f9c2cbb3bc0e62cbbc84c38_activity.pkl b/backend/instance/sessions/7a8e707d4f9c2cbb3bc0e62cbbc84c38_activity.pkl new file mode 100644 index 000000000..023d21145 Binary files /dev/null and b/backend/instance/sessions/7a8e707d4f9c2cbb3bc0e62cbbc84c38_activity.pkl differ diff --git a/backend/instance/sessions/7b1df6d6bdfd9532da88e29a8930c71a_activity.pkl b/backend/instance/sessions/7b1df6d6bdfd9532da88e29a8930c71a_activity.pkl new file mode 100644 index 000000000..005f4bd24 Binary files /dev/null and b/backend/instance/sessions/7b1df6d6bdfd9532da88e29a8930c71a_activity.pkl differ diff --git a/backend/instance/sessions/8978ecb23414566bdd8d00cf84d7b6a4_activity.pkl b/backend/instance/sessions/8978ecb23414566bdd8d00cf84d7b6a4_activity.pkl new file mode 100644 index 000000000..c33b97293 Binary files /dev/null and b/backend/instance/sessions/8978ecb23414566bdd8d00cf84d7b6a4_activity.pkl differ diff --git a/backend/instance/sessions/8f897c7235cb1291681538fa70a00ad6_activity.pkl b/backend/instance/sessions/8f897c7235cb1291681538fa70a00ad6_activity.pkl new file mode 100644 index 000000000..d94197f19 Binary files /dev/null and b/backend/instance/sessions/8f897c7235cb1291681538fa70a00ad6_activity.pkl differ diff --git a/backend/instance/sessions/92963f07a99e1992a0c540e7142a2892_activity.pkl b/backend/instance/sessions/92963f07a99e1992a0c540e7142a2892_activity.pkl new file mode 100644 index 000000000..3fb4a5067 Binary files /dev/null and b/backend/instance/sessions/92963f07a99e1992a0c540e7142a2892_activity.pkl differ diff --git a/backend/instance/sessions/968c17f2a9bb5ac194fb1ae0f2f9d235_activity.pkl b/backend/instance/sessions/968c17f2a9bb5ac194fb1ae0f2f9d235_activity.pkl new file mode 100644 index 000000000..6ed0073c4 Binary files /dev/null and b/backend/instance/sessions/968c17f2a9bb5ac194fb1ae0f2f9d235_activity.pkl differ diff --git a/backend/instance/sessions/96d177af3611514f01d97d5b26487c21_activity.pkl b/backend/instance/sessions/96d177af3611514f01d97d5b26487c21_activity.pkl new file mode 100644 index 000000000..d425a61e9 Binary files /dev/null and b/backend/instance/sessions/96d177af3611514f01d97d5b26487c21_activity.pkl differ diff --git a/backend/instance/sessions/9cb007d8b60869d1d8a8eaa6c4b75580_activity.pkl b/backend/instance/sessions/9cb007d8b60869d1d8a8eaa6c4b75580_activity.pkl new file mode 100644 index 000000000..8d7952f40 Binary files /dev/null and b/backend/instance/sessions/9cb007d8b60869d1d8a8eaa6c4b75580_activity.pkl differ diff --git a/backend/instance/sessions/aa84beb60e2f2aa2bd1629b7b89a7000_activity.pkl b/backend/instance/sessions/aa84beb60e2f2aa2bd1629b7b89a7000_activity.pkl new file mode 100644 index 000000000..635e22140 Binary files /dev/null and b/backend/instance/sessions/aa84beb60e2f2aa2bd1629b7b89a7000_activity.pkl differ diff --git a/backend/instance/sessions/abc3f080dc1657646002decf166eb268_activity.pkl b/backend/instance/sessions/abc3f080dc1657646002decf166eb268_activity.pkl new file mode 100644 index 000000000..1b27ebb84 Binary files /dev/null and b/backend/instance/sessions/abc3f080dc1657646002decf166eb268_activity.pkl differ diff --git a/backend/instance/sessions/afe0f072e5fd7d2285e1828c9c4d828a_activity.pkl b/backend/instance/sessions/afe0f072e5fd7d2285e1828c9c4d828a_activity.pkl new file mode 100644 index 000000000..becf1fea5 Binary files /dev/null and b/backend/instance/sessions/afe0f072e5fd7d2285e1828c9c4d828a_activity.pkl differ diff --git a/backend/instance/sessions/b14a0e584ddb92fb30ff891c9528f4c2_activity.pkl b/backend/instance/sessions/b14a0e584ddb92fb30ff891c9528f4c2_activity.pkl new file mode 100644 index 000000000..8285fb637 Binary files /dev/null and b/backend/instance/sessions/b14a0e584ddb92fb30ff891c9528f4c2_activity.pkl differ diff --git a/backend/instance/sessions/b15318fe4c50e69d2679f314d0c9b474_activity.pkl b/backend/instance/sessions/b15318fe4c50e69d2679f314d0c9b474_activity.pkl new file mode 100644 index 000000000..bdd3ff77f Binary files /dev/null and b/backend/instance/sessions/b15318fe4c50e69d2679f314d0c9b474_activity.pkl differ diff --git a/backend/instance/sessions/b692bce16cc984bcf65425413b6cb6c1_activity.pkl b/backend/instance/sessions/b692bce16cc984bcf65425413b6cb6c1_activity.pkl new file mode 100644 index 000000000..7dc80fd79 Binary files /dev/null and b/backend/instance/sessions/b692bce16cc984bcf65425413b6cb6c1_activity.pkl differ diff --git a/backend/instance/sessions/b849bfaff7aef7776ef9c3391aec2647_activity.pkl b/backend/instance/sessions/b849bfaff7aef7776ef9c3391aec2647_activity.pkl new file mode 100644 index 000000000..daa72255e Binary files /dev/null and b/backend/instance/sessions/b849bfaff7aef7776ef9c3391aec2647_activity.pkl differ diff --git a/backend/instance/sessions/bd0ff70c3c586d02a2f5edd1be420e84_activity.pkl b/backend/instance/sessions/bd0ff70c3c586d02a2f5edd1be420e84_activity.pkl new file mode 100644 index 000000000..b27f792e6 Binary files /dev/null and b/backend/instance/sessions/bd0ff70c3c586d02a2f5edd1be420e84_activity.pkl differ diff --git a/backend/instance/sessions/bddf34bc9265dabc45507714365d6ce5_activity.pkl b/backend/instance/sessions/bddf34bc9265dabc45507714365d6ce5_activity.pkl new file mode 100644 index 000000000..fbf980dea Binary files /dev/null and b/backend/instance/sessions/bddf34bc9265dabc45507714365d6ce5_activity.pkl differ diff --git a/backend/instance/sessions/bf0c85adf513b2d7ee5520c2a9ecb94c_activity.pkl b/backend/instance/sessions/bf0c85adf513b2d7ee5520c2a9ecb94c_activity.pkl new file mode 100644 index 000000000..b509c3ea6 Binary files /dev/null and b/backend/instance/sessions/bf0c85adf513b2d7ee5520c2a9ecb94c_activity.pkl differ diff --git a/backend/instance/sessions/c09a78ab189f6926ae6a7631697a0694_activity.pkl b/backend/instance/sessions/c09a78ab189f6926ae6a7631697a0694_activity.pkl new file mode 100644 index 000000000..e83064226 Binary files /dev/null and b/backend/instance/sessions/c09a78ab189f6926ae6a7631697a0694_activity.pkl differ diff --git a/backend/instance/sessions/ca7e151f07d48d8c4542404bf4bc8d49_activity.pkl b/backend/instance/sessions/ca7e151f07d48d8c4542404bf4bc8d49_activity.pkl new file mode 100644 index 000000000..99cfddce3 Binary files /dev/null and b/backend/instance/sessions/ca7e151f07d48d8c4542404bf4bc8d49_activity.pkl differ diff --git a/backend/instance/sessions/cf0c56619c791bb0aae5a7508f3bf8c6_activity.pkl b/backend/instance/sessions/cf0c56619c791bb0aae5a7508f3bf8c6_activity.pkl new file mode 100644 index 000000000..3bfd2a86e Binary files /dev/null and b/backend/instance/sessions/cf0c56619c791bb0aae5a7508f3bf8c6_activity.pkl differ diff --git a/backend/instance/sessions/d106eb4ddc3866a391a5f191b327e255_activity.pkl b/backend/instance/sessions/d106eb4ddc3866a391a5f191b327e255_activity.pkl new file mode 100644 index 000000000..d302973f1 Binary files /dev/null and b/backend/instance/sessions/d106eb4ddc3866a391a5f191b327e255_activity.pkl differ diff --git a/backend/instance/sessions/d5ac1857138a8c74beaf47b85cdc6840_activity.pkl b/backend/instance/sessions/d5ac1857138a8c74beaf47b85cdc6840_activity.pkl new file mode 100644 index 000000000..16cc7f827 Binary files /dev/null and b/backend/instance/sessions/d5ac1857138a8c74beaf47b85cdc6840_activity.pkl differ diff --git a/backend/instance/sessions/d98695463e37317b1e1a58d078757eb7_activity.pkl b/backend/instance/sessions/d98695463e37317b1e1a58d078757eb7_activity.pkl new file mode 100644 index 000000000..432003860 Binary files /dev/null and b/backend/instance/sessions/d98695463e37317b1e1a58d078757eb7_activity.pkl differ diff --git a/backend/instance/sessions/dc83e6dcbcfa32e1b18e77da949ac4ee_activity.pkl b/backend/instance/sessions/dc83e6dcbcfa32e1b18e77da949ac4ee_activity.pkl new file mode 100644 index 000000000..97bee2ab3 Binary files /dev/null and b/backend/instance/sessions/dc83e6dcbcfa32e1b18e77da949ac4ee_activity.pkl differ diff --git a/backend/instance/sessions/de9d4232ada659150de83eeb37b30a1b_activity.pkl b/backend/instance/sessions/de9d4232ada659150de83eeb37b30a1b_activity.pkl new file mode 100644 index 000000000..4adf0be18 Binary files /dev/null and b/backend/instance/sessions/de9d4232ada659150de83eeb37b30a1b_activity.pkl differ diff --git a/backend/instance/sessions/dfd22e83ae851d45095e122604316bd7_activity.pkl b/backend/instance/sessions/dfd22e83ae851d45095e122604316bd7_activity.pkl new file mode 100644 index 000000000..39447d3db Binary files /dev/null and b/backend/instance/sessions/dfd22e83ae851d45095e122604316bd7_activity.pkl differ diff --git a/backend/instance/sessions/e56617be8d09a5debefb8cca15ac5568_activity.pkl b/backend/instance/sessions/e56617be8d09a5debefb8cca15ac5568_activity.pkl new file mode 100644 index 000000000..0a03784c4 Binary files /dev/null and b/backend/instance/sessions/e56617be8d09a5debefb8cca15ac5568_activity.pkl differ diff --git a/backend/instance/sessions/e7133cc54bb4927a30634ea442c546d1_activity.pkl b/backend/instance/sessions/e7133cc54bb4927a30634ea442c546d1_activity.pkl new file mode 100644 index 000000000..80aa03d07 Binary files /dev/null and b/backend/instance/sessions/e7133cc54bb4927a30634ea442c546d1_activity.pkl differ diff --git a/backend/instance/sessions/e914061e6f08e6aa8536d76accc7674a_activity.pkl b/backend/instance/sessions/e914061e6f08e6aa8536d76accc7674a_activity.pkl new file mode 100644 index 000000000..bba320178 Binary files /dev/null and b/backend/instance/sessions/e914061e6f08e6aa8536d76accc7674a_activity.pkl differ diff --git a/backend/instance/sessions/ee5720b4835170b358b40248d9cf0317_activity.pkl b/backend/instance/sessions/ee5720b4835170b358b40248d9cf0317_activity.pkl new file mode 100644 index 000000000..7c1651820 Binary files /dev/null and b/backend/instance/sessions/ee5720b4835170b358b40248d9cf0317_activity.pkl differ diff --git a/backend/instance/sessions/f3039be943316f9073111b71e54d9111_activity.pkl b/backend/instance/sessions/f3039be943316f9073111b71e54d9111_activity.pkl new file mode 100644 index 000000000..3d344a23e Binary files /dev/null and b/backend/instance/sessions/f3039be943316f9073111b71e54d9111_activity.pkl differ diff --git a/backend/instance/sessions/f65c5a1f546a2fdbb29f3c20881fbac3_activity.pkl b/backend/instance/sessions/f65c5a1f546a2fdbb29f3c20881fbac3_activity.pkl new file mode 100644 index 000000000..65fec5f6e Binary files /dev/null and b/backend/instance/sessions/f65c5a1f546a2fdbb29f3c20881fbac3_activity.pkl differ diff --git a/backend/logs/admin/admin.log b/backend/logs/admin/admin.log index 609335f09..dabc326f5 100644 --- a/backend/logs/admin/admin.log +++ b/backend/logs/admin/admin.log @@ -332,3 +332,23 @@ 2025-06-16 01:29:16 - [admin] admin - [INFO] INFO - Admin-Check für Funktion get_pending_guest_otps_api: User authenticated: True, User ID: 1, Is Admin: True 2025-06-16 01:29:16 - [admin] admin - [INFO] INFO - Aktive OTP-Codes abgerufen: 2 Codes 2025-06-16 01:29:16 - [admin] admin - [INFO] INFO - Gastanfragen abgerufen: 2 Einträge für Admin Administrator +2025-06-16 01:38:10 - [admin] admin - [INFO] INFO - Admin-Check für Funktion api_admin_system_health_alias: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:10 - [admin] admin - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:25 - [admin] admin - [INFO] INFO - Admin-Check für Funktion api_admin_system_health_alias: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:25 - [admin] admin - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:30 - [admin] admin - [INFO] INFO - Admin-Check für Funktion advanced_settings: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:30 - [admin] admin - [INFO] INFO - Erweiterte Einstellungen geladen von admin +2025-06-16 01:38:30 - [admin] admin - [ERROR] ERROR - Fehler beim Laden der erweiterten Einstellungen: 'maintenance_info' is undefined +2025-06-16 01:38:31 - [admin] admin - [INFO] INFO - Admin-Check für Funktion advanced_settings: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:31 - [admin] admin - [INFO] INFO - Erweiterte Einstellungen geladen von admin +2025-06-16 01:38:31 - [admin] admin - [ERROR] ERROR - Fehler beim Laden der erweiterten Einstellungen: 'maintenance_info' is undefined +2025-06-16 01:38:36 - [admin] admin - [INFO] INFO - Admin-Check für Funktion printers_overview: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:36 - [admin] admin - [INFO] INFO - Druckerübersicht geladen von admin +2025-06-16 01:38:36 - [admin] admin - [INFO] INFO - Admin-Check für Funktion api_admin_system_health_alias: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:36 - [admin] admin - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:41 - [admin] admin - [INFO] INFO - Admin-Check für Funktion guest_otps_management: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:41 - [admin] admin - [INFO] INFO - Gast-OTP-Verwaltung aufgerufen von Admin Administrator +2025-06-16 01:38:42 - [admin] admin - [INFO] INFO - Admin-Check für Funktion get_guest_requests_api: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:42 - [admin] admin - [INFO] INFO - Gastanfragen abgerufen: 2 Einträge für Admin Administrator +2025-06-16 01:38:42 - [admin] admin - [INFO] INFO - Admin-Check für Funktion get_pending_guest_otps_api: User authenticated: True, User ID: 1, Is Admin: True +2025-06-16 01:38:42 - [admin] admin - [INFO] INFO - Aktive OTP-Codes abgerufen: 2 Codes diff --git a/backend/logs/admin_api/admin_api.log b/backend/logs/admin_api/admin_api.log index 22ebc5a7b..9af837415 100644 --- a/backend/logs/admin_api/admin_api.log +++ b/backend/logs/admin_api/admin_api.log @@ -108,3 +108,9 @@ 2025-06-16 01:18:08 - [admin_api] admin_api - [INFO] INFO - System-Health-Check durchgeführt: unhealthy 2025-06-16 01:27:58 - [admin_api] admin_api - [ERROR] ERROR - Datenbank-Health-Check fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') 2025-06-16 01:27:58 - [admin_api] admin_api - [INFO] INFO - System-Health-Check durchgeführt: unhealthy +2025-06-16 01:38:10 - [admin_api] admin_api - [ERROR] ERROR - Datenbank-Health-Check fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:38:10 - [admin_api] admin_api - [INFO] INFO - System-Health-Check durchgeführt: unhealthy +2025-06-16 01:38:25 - [admin_api] admin_api - [ERROR] ERROR - Datenbank-Health-Check fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:38:25 - [admin_api] admin_api - [INFO] INFO - System-Health-Check durchgeführt: unhealthy +2025-06-16 01:38:36 - [admin_api] admin_api - [ERROR] ERROR - Datenbank-Health-Check fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:38:36 - [admin_api] admin_api - [INFO] INFO - System-Health-Check durchgeführt: unhealthy diff --git a/backend/logs/api/api.log b/backend/logs/api/api.log index fd151f2b7..a830ca4ae 100644 --- a/backend/logs/api/api.log +++ b/backend/logs/api/api.log @@ -36,3 +36,6 @@ 2025-06-16 01:18:03 - [api] api - [INFO] INFO - Statistiken abgerufen von Benutzer admin 2025-06-16 01:18:08 - [api] api - [INFO] INFO - Statistiken abgerufen von Benutzer admin 2025-06-16 01:27:57 - [api] api - [INFO] INFO - Statistiken abgerufen von Benutzer admin +2025-06-16 01:38:10 - [api] api - [INFO] INFO - Statistiken abgerufen von Benutzer admin +2025-06-16 01:38:25 - [api] api - [INFO] INFO - Statistiken abgerufen von Benutzer admin +2025-06-16 01:38:36 - [api] api - [INFO] INFO - Statistiken abgerufen von Benutzer admin diff --git a/backend/logs/app/app.log b/backend/logs/app/app.log index d4daf9eec..bee13a7f1 100644 --- a/backend/logs/app/app.log +++ b/backend/logs/app/app.log @@ -37540,3 +37540,574 @@ jinja2.exceptions.UndefinedError: 'maintenance_info' is undefined 2025-06-16 01:29:27 - [app] app - [DEBUG] DEBUG - Response: 200 2025-06-16 01:29:29 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js 2025-06-16 01:29:29 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:29:34 - [app] app - [DEBUG] DEBUG - Request: GET /jobs +2025-06-16 01:29:34 - [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-16 01:29:34 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:34 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:29:34 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-16 01:29:34 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:34 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:34 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:29:34 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:29:34 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:35 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-16 01:29:35 - [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-16 01:29:35 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:35 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:29:35 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:29:35 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:29:35 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:29:35 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:29:36 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:29:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:29:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:37 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:29:37 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Request: GET /calendar +2025-06-16 01:29:40 - [app] app - [INFO] INFO - Locating template 'calendar.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/calendar.html') +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/events +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/statistics +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Request: GET /api/calendar/statistics +2025-06-16 01:29:40 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:42 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:29:42 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:29:44 - [app] app - [DEBUG] DEBUG - Request: GET /dashboard +2025-06-16 01:29:44 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:44 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:29:44 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:29:46 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:29:46 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:30:01 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-16 01:30:01 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-16 01:30:01 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: 'BackgroundTaskScheduler' object has no attribute 'shutdown' +2025-06-16 01:30:01 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-16 01:30:02 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-16 01:30:02 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-16 01:30:02 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-16 01:30:02 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-16 01:30:02 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-16 01:30:02 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-16 01:32:45 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-16 01:32:45 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-16 01:32:45 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: 'BackgroundTaskScheduler' object has no attribute 'shutdown' +2025-06-16 01:32:46 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-16 01:32:47 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-16 01:32:47 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-16 01:32:47 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-16 01:32:47 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-16 01:32:47 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-16 01:32:47 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-16 01:33:06 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-16 01:33:06 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-16 01:33:06 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: 'BackgroundTaskScheduler' object has no attribute 'shutdown' +2025-06-16 01:33:07 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-16 01:33:07 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-16 01:33:07 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-16 01:33:07 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-16 01:33:07 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-16 01:33:07 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-16 01:33:07 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-16 01:33:07 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-16 01:33:07 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-16 01:33:08 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-16 01:33:08 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-16 01:33:08 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-16 01:33:08 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-16 01:33:08 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-16 01:33:08 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-16 01:34:27 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-16 01:34:27 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-16 01:34:27 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-16 01:34:27 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: (sqlite3.OperationalError) table guest_requests has no column named otp_code_plain +[SQL: INSERT INTO guest_requests (name, email, reason, duration_min, duration_minutes, created_at, status, printer_id, otp_code, job_id, author_ip, otp_used_at, file_name, file_path, copies, processed_by, processed_at, approval_notes, rejection_reason, updated_at, approved_at, rejected_at, approved_by, rejected_by, otp_expires_at, otp_code_plain, assigned_printer_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)] +[parameters: ('Test Guest', 'test@example.com', 'Testing OTP system', 60, None, '2025-06-16 01:34:27.078605', 'approved', None, None, None, None, None, None, None, 1, None, None, None, None, '2025-06-16 01:34:27.078610', None, None, None, None, None, None, None)] +(Background on this error at: https://sqlalche.me/e/20/e3q8) +2025-06-16 01:34:53 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-16 01:34:53 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-16 01:34:53 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-16 01:34:53 - [app] app - [INFO] INFO - 6-stelliger OTP generiert für Guest Request 3 +2025-06-16 01:34:53 - [app] app - [INFO] INFO - OTP erfolgreich verifiziert für Guest Request 3 +2025-06-16 01:35:09 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-16 01:35:09 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-16 01:35:09 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-16 01:35:10 - [app] app - [INFO] INFO - 6-stelliger OTP generiert für Guest Request 3 +2025-06-16 01:38:03 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-16 01:38:03 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-16 01:38:03 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-16 01:38:03 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-16 01:38:03 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-16 01:38:04 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-16 01:38:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-16 01:38:04 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-16 01:38:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-16 01:38:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-16 01:38:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-16 01:38:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-16 01:38:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-16 01:38:04 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-16 01:38:04 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-16 01:38:04 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-16 01:38:04 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-16 01:38:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-16 01:38:04 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-16 01:38:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-16 01:38:04 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-16 01:38:04 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-16 01:38:04 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-16 01:38:04 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: ./database/myp.db +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: development +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: False +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ MYP Development Environment Konfiguration aktiviert +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: Development/Testing +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: True +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: True +2025-06-16 01:38:05 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP DEVELOPMENT-Umgebung +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] 🏢 Mercedes-Benz TBA Marienfelde +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: True +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-16 01:38:05 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-16 01:38:05 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-16 01:38:05 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-16 01:38:05 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-16 01:38:05 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://0.0.0.0:5000 +2025-06-16 01:38: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-16 01:38: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-16 01:38:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:06 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:38:06 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Request: GET /printers +2025-06-16 01:38:08 - [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-16 01:38:08 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:38:08 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:38:08 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:08 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:10 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:10 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:38:10 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:38:10 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-16 01:38:10 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:10 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:10 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-16 01:38:10 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:38:10 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:12 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:12 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:38:20 - [app] app - [DEBUG] DEBUG - Request: GET /user/settings +2025-06-16 01:38:20 - [app] app - [INFO] INFO - Locating template '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/settings.html') +2025-06-16 01:38:20 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:20 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:38:20 - [app] app - [DEBUG] DEBUG - Request: GET /api/user/settings +2025-06-16 01:38:20 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:20 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:22 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:22 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:38:25 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:38:25 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-16 01:38:25 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:25 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:25 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-16 01:38:25 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:38:25 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:26 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:26 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:38:30 - [app] app - [DEBUG] DEBUG - Request: GET /admin/advanced-settings +2025-06-16 01:38:30 - [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-16 01:38:30 - [app] app - [ERROR] ERROR - Unhandled Exception - ID: 20250616_013830 +2025-06-16 01:38:30 - [app] app - [ERROR] ERROR - URL: http://127.0.0.1:5000/admin/advanced-settings +2025-06-16 01:38:30 - [app] app - [ERROR] ERROR - Method: GET +2025-06-16 01:38:30 - [app] app - [ERROR] ERROR - User: admin +2025-06-16 01:38:30 - [app] app - [ERROR] ERROR - Exception Type: UndefinedError +2025-06-16 01:38:30 - [app] app - [ERROR] ERROR - Exception: 'maintenance_info' is undefined +2025-06-16 01:38:30 - [app] app - [ERROR] ERROR - Traceback: Traceback (most recent call last): + 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 326, in advanced_settings + return render_template('admin_advanced_settings.html', stats=stats, optimization_settings=optimization_settings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 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 459, 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 532, in block 'content' + {{ maintenance_info.last_backup }} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/jinja2/environment.py", line 485, in getattr + return getattr(obj, attribute) + ^^^^^^^^^^^^^^^^^^^^^^^ +jinja2.exceptions.UndefinedError: 'maintenance_info' is undefined + +During handling of the above exception, another exception occurred: + +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 88, 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 350, in advanced_settings + return render_template('admin_advanced_settings.html', stats=stats, optimization_settings=optimization_settings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 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 459, 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 532, in block 'content' + {{ maintenance_info.last_backup }} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/jinja2/environment.py", line 485, in getattr + return getattr(obj, attribute) + ^^^^^^^^^^^^^^^^^^^^^^^ +jinja2.exceptions.UndefinedError: 'maintenance_info' is undefined + +2025-06-16 01:38:30 - [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-16 01:38:30 - [app] app - [DEBUG] DEBUG - Response: 500 +2025-06-16 01:38:31 - [app] app - [DEBUG] DEBUG - Request: GET /admin/advanced-settings +2025-06-16 01:38:31 - [app] app - [ERROR] ERROR - Unhandled Exception - ID: 20250616_013831 +2025-06-16 01:38:31 - [app] app - [ERROR] ERROR - URL: http://127.0.0.1:5000/admin/advanced-settings +2025-06-16 01:38:31 - [app] app - [ERROR] ERROR - Method: GET +2025-06-16 01:38:31 - [app] app - [ERROR] ERROR - User: admin +2025-06-16 01:38:31 - [app] app - [ERROR] ERROR - Exception Type: UndefinedError +2025-06-16 01:38:31 - [app] app - [ERROR] ERROR - Exception: 'maintenance_info' is undefined +2025-06-16 01:38:31 - [app] app - [ERROR] ERROR - Traceback: Traceback (most recent call last): + 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 326, in advanced_settings + return render_template('admin_advanced_settings.html', stats=stats, optimization_settings=optimization_settings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 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 459, 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 532, in block 'content' + {{ maintenance_info.last_backup }} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/jinja2/environment.py", line 485, in getattr + return getattr(obj, attribute) + ^^^^^^^^^^^^^^^^^^^^^^^ +jinja2.exceptions.UndefinedError: 'maintenance_info' is undefined + +During handling of the above exception, another exception occurred: + +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 88, 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 350, in advanced_settings + return render_template('admin_advanced_settings.html', stats=stats, optimization_settings=optimization_settings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 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 459, 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 532, in block 'content' + {{ maintenance_info.last_backup }} + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/core/.local/lib/python3.11/site-packages/jinja2/environment.py", line 485, in getattr + return getattr(obj, attribute) + ^^^^^^^^^^^^^^^^^^^^^^^ +jinja2.exceptions.UndefinedError: 'maintenance_info' is undefined + +2025-06-16 01:38:31 - [app] app - [DEBUG] DEBUG - Response: 500 +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Request: GET /jobs +2025-06-16 01:38:32 - [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-16 01:38:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Request: GET /api/jobs +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Request: GET /api/printers +2025-06-16 01:38:32 - [app] app - [INFO] INFO - ✅ API: 6 Drucker abgerufen (include_inactive=False) +2025-06-16 01:38:32 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:34 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:34 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:38:36 - [app] app - [DEBUG] DEBUG - Request: GET /admin/printers +2025-06-16 01:38:36 - [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-16 01:38:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/stats +2025-06-16 01:38:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:38:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:36 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/system-health +2025-06-16 01:38:36 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: Textual SQL expression 'SELECT 1' should be explicitly declared as text('SELECT 1') +2025-06-16 01:38:36 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:37 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:37 - [app] app - [DEBUG] DEBUG - Response: 304 +2025-06-16 01:38:41 - [app] app - [DEBUG] DEBUG - Request: GET /admin/guest-otps +2025-06-16 01:38:41 - [app] app - [INFO] INFO - Locating template 'admin_guest_otps.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_otps.html') +2025-06-16 01:38:41 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:42 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/guest-requests +2025-06-16 01:38:42 - [app] app - [DEBUG] DEBUG - Request: GET /api/notifications +2025-06-16 01:38:42 - [app] app - [DEBUG] DEBUG - Request: GET /api/admin/guest-requests/pending-otps +2025-06-16 01:38:42 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:42 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:42 - [app] app - [DEBUG] DEBUG - Response: 200 +2025-06-16 01:38:43 - [app] app - [DEBUG] DEBUG - Request: GET /sw.js +2025-06-16 01:38:43 - [app] app - [DEBUG] DEBUG - Response: 304 diff --git a/backend/logs/calendar/calendar.log b/backend/logs/calendar/calendar.log index 763a2be2b..8db2463c4 100644 --- a/backend/logs/calendar/calendar.log +++ b/backend/logs/calendar/calendar.log @@ -36,3 +36,4 @@ 2025-06-16 01:08:09 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 2 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 2025-06-16 01:17:09 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 2 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 2025-06-16 01:17:41 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 +2025-06-16 01:29:40 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-14 22:00:00+00:00 bis 2025-06-21 22:00:00+00:00 diff --git a/backend/logs/data_management/data_management.log b/backend/logs/data_management/data_management.log index 7ff9b1c34..e4b02475c 100644 --- a/backend/logs/data_management/data_management.log +++ b/backend/logs/data_management/data_management.log @@ -533,3 +533,13 @@ 2025-06-16 01:27:46 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-16 01:27:48 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert 2025-06-16 01:27:48 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:30:01 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-16 01:30:01 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:32:46 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-16 01:32:46 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:33:07 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-16 01:33:07 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:38:03 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-16 01:38:03 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:38:04 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-16 01:38:04 - [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 ad342e6ed..74a540240 100644 --- a/backend/logs/energy_monitoring/energy_monitoring.log +++ b/backend/logs/energy_monitoring/energy_monitoring.log @@ -397,3 +397,8 @@ 2025-06-16 01:29:27 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Energiemonitoring-Dashboard 'api_energy_dashboard' erfolgreich in 17.76ms 2025-06-16 01:29:27 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiestatistiken erfolgreich erstellt für Zeitraum: today 2025-06-16 01:29:27 - [energy_monitoring] energy_monitoring - [INFO] INFO - [OK] API-Energiestatistiken 'api_energy_statistics' erfolgreich in 31.58ms +2025-06-16 01:30:02 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-16 01:32:47 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-16 01:33:08 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-16 01:38:03 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-16 01:38:05 - [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 e9f50780b..6206296c9 100644 --- a/backend/logs/hardware_integration/hardware_integration.log +++ b/backend/logs/hardware_integration/hardware_integration.log @@ -2053,3 +2053,23 @@ 2025-06-16 01:29:27 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute 2025-06-16 01:29:27 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Energiestatistiken erfolgreich gesammelt: 0/6 Geräte online 2025-06-16 01:29:27 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Gesamtverbrauch: 0.0W aktuell, 0.0Wh heute +2025-06-16 01:30:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-16 01:30:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-16 01:30:01 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-16 01:30:01 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-16 01:32:46 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-16 01:32:46 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-16 01:32:46 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-16 01:32:46 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-16 01:33:07 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-16 01:33:07 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-16 01:33:07 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-16 01:33:07 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-16 01:38:03 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-16 01:38:03 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-16 01:38:03 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-16 01:38:03 - [hardware_integration] hardware_integration - [INFO] INFO - 📊 Massive Konsolidierung: 2 Dateien → 1 Datei (50% Reduktion) +2025-06-16 01:38:04 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ PyP100 (TP-Link Tapo) verfügbar +2025-06-16 01:38:04 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Printer Monitor initialisiert +2025-06-16 01:38:04 - [hardware_integration] hardware_integration - [INFO] INFO - ✅ Hardware Integration Module initialisiert +2025-06-16 01:38:04 - [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 cc3a0caa7..54c37a5c5 100644 --- a/backend/logs/job_queue_system/job_queue_system.log +++ b/backend/logs/job_queue_system/job_queue_system.log @@ -1045,3 +1045,25 @@ 2025-06-16 01:27:48 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert 2025-06-16 01:27:48 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) 2025-06-16 01:27:49 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:30:01 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:30:01 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-16 01:30:01 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-16 01:30:02 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:32:45 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:32:46 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-16 01:32:46 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-16 01:32:47 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:33:06 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:33:07 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-16 01:33:07 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-16 01:33:08 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:38:01 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:38:01 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:38:03 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-16 01:38:03 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-16 01:38:04 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:38:04 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-16 01:38:04 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-16 01:38:05 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-16 01:38:46 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-16 01:38:46 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) diff --git a/backend/logs/jobs/jobs.log b/backend/logs/jobs/jobs.log index ccb1e0d63..eaab864bb 100644 --- a/backend/logs/jobs/jobs.log +++ b/backend/logs/jobs/jobs.log @@ -913,3 +913,7 @@ sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) FOREIGN KEY constraint f 2025-06-16 01:17:39 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) 2025-06-16 01:18:05 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) 2025-06-16 01:18:05 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) +2025-06-16 01:29:34 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-16 01:29:34 - [jobs] jobs - [INFO] INFO - ✅ Jobs erfolgreich abgerufen: 0 von 0 (Seite 1) +2025-06-16 01:38:32 - [jobs] jobs - [INFO] INFO - 📋 Jobs-Abfrage gestartet von Benutzer 1 (Admin: True) +2025-06-16 01:38:32 - [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 9e9e3bbee..68c64d405 100644 --- a/backend/logs/monitoring_analytics/monitoring_analytics.log +++ b/backend/logs/monitoring_analytics/monitoring_analytics.log @@ -533,3 +533,13 @@ 2025-06-16 01:27:47 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-16 01:27:49 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert 2025-06-16 01:27:49 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:30:02 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-16 01:30:02 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:32:47 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-16 01:32:47 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:33:07 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-16 01:33:07 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:38:03 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-16 01:38:03 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:38:05 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-16 01:38:05 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) diff --git a/backend/logs/permissions/permissions.log b/backend/logs/permissions/permissions.log index b0cd597ff..dc04ab87e 100644 --- a/backend/logs/permissions/permissions.log +++ b/backend/logs/permissions/permissions.log @@ -209,3 +209,8 @@ WHERE users.role = ?] 2025-06-16 01:17:02 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert 2025-06-16 01:27:47 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert 2025-06-16 01:27:49 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:30:02 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:32:47 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:33:08 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:38:03 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-16 01:38:05 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert diff --git a/backend/logs/scheduler/scheduler.log b/backend/logs/scheduler/scheduler.log index 502d2ddda..61d7d6743 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -1459,3 +1459,18 @@ 2025-06-16 01:27:48 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-16 01:27:49 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet 2025-06-16 01:27:49 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-16 01:30:01 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-16 01:30:02 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-16 01:30:02 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-16 01:32:46 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-16 01:32:47 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-16 01:32:47 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-16 01:33:07 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-16 01:33:08 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-16 01:33:08 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-16 01:38:03 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-16 01:38:04 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-16 01:38:04 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-16 01:38:04 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-16 01:38:05 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-16 01:38: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 e5e341a18..776177362 100644 --- a/backend/logs/security_suite/security_suite.log +++ b/backend/logs/security_suite/security_suite.log @@ -800,3 +800,18 @@ 2025-06-16 01:27:48 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert 2025-06-16 01:27:48 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-16 01:27:49 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-16 01:30:01 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-16 01:30:01 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:30:02 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-16 01:32:46 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-16 01:32:46 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:32:47 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-16 01:33:07 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-16 01:33:07 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:33:08 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-16 01:38:03 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-16 01:38:03 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:38:03 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-16 01:38:04 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-16 01:38:04 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-16 01:38:05 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index 0da9b7d9e..63c1b9bc0 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -2077,3 +2077,38 @@ 2025-06-16 01:27:49 - [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-16 01:27:49 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:27:49.391627 2025-06-16 01:27:49 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:30:02 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:30:02 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-16 01:30:02 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-16 01:30:02 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-16 01:30: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-16 01:30:02 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:30:02.621846 +2025-06-16 01:30:02 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:32:47 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:32:47 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-16 01:32:47 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-16 01:32:47 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-16 01:32:47 - [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-16 01:32:47 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:32:47.003193 +2025-06-16 01:32:47 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:33:07 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:33:07 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-16 01:33:07 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-16 01:33:07 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-16 01:33:07 - [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-16 01:33:07 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:33:07.974101 +2025-06-16 01:33:07 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:38:03 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:38:03 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-16 01:38:03 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-16 01:38:03 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-16 01:38:03 - [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-16 01:38:03 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:38:03.819366 +2025-06-16 01:38:03 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:38:05 - [startup] startup - [INFO] INFO - ================================================== +2025-06-16 01:38:05 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-16 01:38:05 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.11.2 (main, Mar 05 2023, 19:08:04) [GCC] +2025-06-16 01:38:05 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: posix (linux) +2025-06-16 01:38:05 - [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-16 01:38:05 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-16T01:38:05.452544 +2025-06-16 01:38:05 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/tapo_controller/tapo_controller.log b/backend/logs/tapo_controller/tapo_controller.log index 71508194b..403476edc 100644 --- a/backend/logs/tapo_controller/tapo_controller.log +++ b/backend/logs/tapo_controller/tapo_controller.log @@ -1790,3 +1790,8 @@ 2025-06-16 01:17:41 - [tapo_controller] tapo_controller - [ERROR] ERROR - ❌ Alle 3 Versuche fehlgeschlagen beim einschalten der Tapo-Steckdose 192.168.0.100 2025-06-16 01:27:46 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert 2025-06-16 01:27:48 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-16 01:30:01 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-16 01:32:46 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-16 01:33:07 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-16 01:38:03 - [tapo_controller] tapo_controller - [INFO] INFO - ✅ tapo controller initialisiert +2025-06-16 01:38:04 - [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 8b3a3eeb8..443de1814 100644 --- a/backend/logs/tapo_status_manager/tapo_status_manager.log +++ b/backend/logs/tapo_status_manager/tapo_status_manager.log @@ -233,3 +233,8 @@ 2025-06-16 01:17:01 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert 2025-06-16 01:27:46 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert 2025-06-16 01:27:48 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert +2025-06-16 01:30:01 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert +2025-06-16 01:32:46 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert +2025-06-16 01:33:07 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert +2025-06-16 01:38:03 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert +2025-06-16 01:38:04 - [tapo_status_manager] tapo_status_manager - [INFO] INFO - TapoStatusManager mit Session-Caching initialisiert diff --git a/backend/logs/user/user.log b/backend/logs/user/user.log index 543f6856e..66879b656 100644 --- a/backend/logs/user/user.log +++ b/backend/logs/user/user.log @@ -95,3 +95,5 @@ 2025-06-15 23:55:47 - [user] user - [INFO] INFO - User admin retrieved settings via API 2025-06-16 00:23:14 - [user] user - [INFO] INFO - User admin accessed settings page 2025-06-16 00:23:14 - [user] user - [INFO] INFO - User admin retrieved settings via API +2025-06-16 01:38:20 - [user] user - [INFO] INFO - User admin accessed settings page +2025-06-16 01:38:20 - [user] user - [INFO] INFO - User admin retrieved settings via API diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log index ea5d7bd53..4c45a583d 100644 --- a/backend/logs/utilities_collection/utilities_collection.log +++ b/backend/logs/utilities_collection/utilities_collection.log @@ -695,3 +695,21 @@ 2025-06-16 01:27:46 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) 2025-06-16 01:27:48 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert 2025-06-16 01:27:48 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:30:01 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:30:01 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:32:46 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:32:46 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:33:07 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:33:07 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:34:27 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:34:27 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:34:39 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:34:39 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:34:53 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:34:53 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:35:09 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:35:09 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:38:02 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:38:02 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-16 01:38:04 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-16 01:38:04 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) diff --git a/backend/models.py b/backend/models.py index 6e2faa723..257c83eac 100644 --- a/backend/models.py +++ b/backend/models.py @@ -1036,6 +1036,7 @@ class GuestRequest(Base): # OTP-Verwaltung erweitert otp_expires_at = Column(DateTime, nullable=True) # Ablaufzeit des OTP-Codes + otp_code_plain = Column(String(10), nullable=True) # OTP-Code im Klartext für Admin-Anzeige assigned_printer_id = Column(Integer, ForeignKey("printers.id"), nullable=True) # Zugewiesener Drucker # Beziehungen @@ -1080,6 +1081,7 @@ class GuestRequest(Base): "approved_by": self.approved_by, "rejected_by": self.rejected_by, "otp_expires_at": self.otp_expires_at.isoformat() if self.otp_expires_at else None, + "otp_code_plain": self.otp_code_plain, # Klartext für Admin-Anzeige "assigned_printer_id": self.assigned_printer_id, } @@ -1100,6 +1102,9 @@ class GuestRequest(Base): salt = bcrypt.gensalt() self.otp_code = bcrypt.hashpw(otp_bytes, salt).decode('utf-8') + # Klartext-Version für Admin-Anzeige speichern + self.otp_code_plain = otp_plain + # Ablaufzeit setzen (72 Stunden ab jetzt) self.otp_expires_at = datetime.now() + timedelta(hours=72) diff --git a/backend/templates/admin.html b/backend/templates/admin.html index 274d4c7d5..c7472b145 100644 --- a/backend/templates/admin.html +++ b/backend/templates/admin.html @@ -279,6 +279,14 @@ document.addEventListener('DOMContentLoaded', function() { TBA-Anträge + + + + + 🔑 OTP-Codes + + diff --git a/backend/templates/admin_guest_otps.html b/backend/templates/admin_guest_otps.html index ead51a972..ddbd7a07b 100644 --- a/backend/templates/admin_guest_otps.html +++ b/backend/templates/admin_guest_otps.html @@ -9,25 +9,69 @@ .otp-card { transition: all 0.3s ease; border-left: 4px solid #10b981; + backdrop-filter: blur(8px); + background: rgba(255, 255, 255, 0.8); +} +.dark .otp-card { + background: rgba(15, 23, 42, 0.8); } .otp-card.critical { border-left-color: #ef4444; - animation: pulse 2s infinite; + animation: pulseBorder 2s infinite; + background: rgba(254, 242, 242, 0.8); +} +.dark .otp-card.critical { + background: rgba(127, 29, 29, 0.2); } .otp-card.warning { border-left-color: #f59e0b; + background: rgba(255, 251, 235, 0.8); +} +.dark .otp-card.warning { + background: rgba(120, 53, 15, 0.2); } .print-template { - font-family: monospace; - background: #f8f9fa; - border: 1px solid #ddd; - padding: 1rem; + font-family: 'Courier New', monospace; + background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); + border: 2px solid #dee2e6; + border-radius: 8px; + padding: 1.5rem; margin: 1rem 0; white-space: pre-line; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } -@keyframes pulse { - 0%, 100% { transform: scale(1); } - 50% { transform: scale(1.02); } +.dark .print-template { + background: linear-gradient(135deg, #1e293b 0%, #334155 100%); + border-color: #475569; + color: #e2e8f0; +} +@keyframes pulseBorder { + 0%, 100% { border-left-width: 4px; } + 50% { border-left-width: 6px; } +} +.otp-code-display { + font-family: 'Courier New', monospace; + font-size: 1.5rem; + font-weight: bold; + letter-spacing: 0.1em; + padding: 0.75rem 1rem; + background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); + color: white; + border-radius: 8px; + text-align: center; + box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); +} +.gradient-bg { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); +} +.glass-card { + background: rgba(255, 255, 255, 0.1); + backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.2); +} +.dark .glass-card { + background: rgba(15, 23, 42, 0.2); + border-color: rgba(148, 163, 184, 0.1); } {% endblock %} @@ -326,16 +370,36 @@ function renderGuestRequests() { ` : ''} ${request.otp_code && request.status === 'approved' ? ` -
+
-
-

OTP-Code

-

+

+
+ 🔑 +

OTP-Code

+
+
${request.otp_code} -

-

- Gültig bis: ${request.otp_expires_at ? new Date(request.otp_expires_at).toLocaleString('de-DE') : '-'} -

+
+
+
+ + + Gültig bis: ${request.otp_expires_at ? new Date(request.otp_expires_at).toLocaleString('de-DE') : '-'} + +
+
+ 📋 + + Status: ${request.otp_status === 'active' ? 'Aktiv' : 'Inaktiv'} + +
+
+
+
+
@@ -373,25 +437,34 @@ function renderActiveOTPs() { } container.innerHTML = activeOTPs.map(otp => ` -
+
-
- 🔑 +
+ 🔑
-

${otp.guest_name}

-

- Läuft ab in ${otp.hours_remaining}h -

+

${otp.guest_name}

+
+
+ + + Läuft ab in ${otp.hours_remaining}h + +
+ + ${getUrgencyText(otp.urgency)} + +
-

+

${otp.otp_code} -

- - ${getUrgencyText(otp.urgency)} - +
+
`).join(''); @@ -560,15 +633,91 @@ function printTemplate() { closePrintModal(); } +// Utility functions +function copyOTPToClipboard(otpCode) { + if (navigator.clipboard && window.isSecureContext) { + // Use modern clipboard API + navigator.clipboard.writeText(otpCode).then(() => { + showSuccess(`OTP-Code "${otpCode}" in Zwischenablage kopiert`); + }).catch(err => { + console.error('Fehler beim Kopieren:', err); + fallbackCopyTextToClipboard(otpCode); + }); + } else { + // Fallback für ältere Browser + fallbackCopyTextToClipboard(otpCode); + } +} + +function fallbackCopyTextToClipboard(text) { + const textArea = document.createElement("textarea"); + textArea.value = text; + textArea.style.top = "0"; + textArea.style.left = "0"; + textArea.style.position = "fixed"; + + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + + try { + const successful = document.execCommand('copy'); + if (successful) { + showSuccess(`OTP-Code "${text}" in Zwischenablage kopiert`); + } else { + showError('Kopieren fehlgeschlagen'); + } + } catch (err) { + console.error('Fallback-Kopieren fehlgeschlagen:', err); + showError('Kopieren nicht unterstützt'); + } + + document.body.removeChild(textArea); +} + // Notification functions function showSuccess(message) { - // Simple success notification - alert('✅ ' + message); + // Enhanced notification with auto-hide + const notification = document.createElement('div'); + notification.className = 'fixed top-4 right-4 bg-green-500 text-white px-6 py-3 rounded-lg shadow-lg z-50 transition-all duration-300'; + notification.innerHTML = ` +
+ + ${message} +
+ `; + + document.body.appendChild(notification); + + // Auto-hide after 3 seconds + setTimeout(() => { + notification.style.transform = 'translateX(100%)'; + setTimeout(() => { + document.body.removeChild(notification); + }, 300); + }, 3000); } function showError(message) { - // Simple error notification - alert('❌ ' + message); + // Enhanced notification with auto-hide + const notification = document.createElement('div'); + notification.className = 'fixed top-4 right-4 bg-red-500 text-white px-6 py-3 rounded-lg shadow-lg z-50 transition-all duration-300'; + notification.innerHTML = ` +
+ + ${message} +
+ `; + + document.body.appendChild(notification); + + // Auto-hide after 5 seconds + setTimeout(() => { + notification.style.transform = 'translateX(100%)'; + setTimeout(() => { + document.body.removeChild(notification); + }, 300); + }, 5000); } {% endblock %} \ No newline at end of file