From 3b000672dae14ffcf61ac0387ebd6d279921236b Mon Sep 17 00:00:00 2001 From: Quality System Admin Date: Mon, 3 Nov 2025 19:51:23 +0200 Subject: [PATCH] updated app --- logs/access.log | 209 ++++++++ logs/error.log | 495 ++++++++++++++++++ py_app/app/static/docs/dashboard.md | 6 +- .../static/docs/images/access_management.png | Bin 0 -> 47019 bytes .../app/static/docs/images/quick_access.png | Bin 0 -> 35783 bytes 5 files changed, 707 insertions(+), 3 deletions(-) create mode 100644 py_app/app/static/docs/images/access_management.png create mode 100644 py_app/app/static/docs/images/quick_access.png diff --git a/logs/access.log b/logs/access.log index 2d02a95..5103284 100644 --- a/logs/access.log +++ b/logs/access.log @@ -653,3 +653,212 @@ 192.168.0.132 - - [01/Nov/2025:15:24:11 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1678 192.168.0.132 - - [01/Nov/2025:15:24:22 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 6942 192.168.0.132 - - [01/Nov/2025:15:24:22 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2365 +192.168.0.132 - - [03/Nov/2025:07:11:21 +0200] "GET /robots.txt HTTP/1.1" 404 207 "http://quality.moto-adv.com/robots.txt" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36; compatible; OAI-SearchBot/1.0; robots.txt; +https://openai.com/searchbot" 1356 +192.168.0.132 - - [03/Nov/2025:10:31:58 +0200] "HEAD / HTTP/1.1" 200 0 "-" "-" 1580 +192.168.0.132 - - [03/Nov/2025:10:31:59 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1651 +192.168.0.132 - - [03/Nov/2025:10:31:59 +0200] "GET /static/css/base.css HTTP/1.1" 200 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2055 +192.168.0.132 - - [03/Nov/2025:10:31:59 +0200] "GET /static/script.js HTTP/1.1" 200 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1888 +192.168.0.132 - - [03/Nov/2025:10:31:59 +0200] "GET /static/style.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 3648 +192.168.0.132 - - [03/Nov/2025:10:31:59 +0200] "GET /static/logo_login.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 3133 +192.168.0.132 - - [03/Nov/2025:10:31:59 +0200] "GET /static/css/login.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2265 +192.168.0.132 - - [03/Nov/2025:10:31:59 +0200] "GET /favicon.ico HTTP/1.1" 404 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1368 +192.168.0.132 - - [03/Nov/2025:10:32:09 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" 1708 +192.168.0.132 - - [03/Nov/2025:10:32:09 +0200] "GET /static/script.js HTTP/1.1" 200 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" 2150 +192.168.0.132 - - [03/Nov/2025:10:32:09 +0200] "GET /static/css/login.css HTTP/1.1" 200 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" 1980 +192.168.0.132 - - [03/Nov/2025:10:32:09 +0200] "GET /static/style.css HTTP/1.1" 200 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" 1895 +192.168.0.132 - - [03/Nov/2025:10:32:09 +0200] "GET /static/logo_login.jpg HTTP/1.1" 200 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" 6018 +192.168.0.132 - - [03/Nov/2025:10:32:09 +0200] "GET /static/css/base.css HTTP/1.1" 200 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" 1854 +192.168.0.132 - - [03/Nov/2025:10:32:10 +0200] "GET /favicon.ico HTTP/1.1" 404 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" 1417 +192.168.0.132 - - [03/Nov/2025:10:32:37 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 5597 +192.168.0.132 - - [03/Nov/2025:10:32:37 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2315 +192.168.0.132 - - [03/Nov/2025:10:32:37 +0200] "GET /static/scan_me.jpg HTTP/1.1" 200 0 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 28232 +192.168.0.132 - - [03/Nov/2025:10:32:41 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 6834 +192.168.0.132 - - [03/Nov/2025:10:32:45 +0200] "GET /fg_scan HTTP/1.1" 200 32748 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 31993 +192.168.0.132 - - [03/Nov/2025:10:32:45 +0200] "GET /static/css/scan.css HTTP/1.1" 200 0 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2377 +192.168.0.132 - - [03/Nov/2025:11:48:37 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2346 +192.168.0.132 - - [03/Nov/2025:11:49:12 +0200] "GET /dashboard HTTP/1.1" 200 2932 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 9463 +192.168.0.132 - - [03/Nov/2025:11:49:42 +0200] "GET /dashboard HTTP/1.1" 200 2932 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2339 +192.168.0.132 - - [03/Nov/2025:11:49:46 +0200] "GET /dashboard HTTP/1.1" 200 2932 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2363 +192.168.0.132 - - [03/Nov/2025:11:50:07 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1412 +192.168.0.132 - - [03/Nov/2025:11:50:07 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1705 +192.168.0.132 - - [03/Nov/2025:11:50:11 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 6069 +192.168.0.132 - - [03/Nov/2025:11:50:11 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2302 +192.168.0.132 - - [03/Nov/2025:11:50:20 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1488 +192.168.0.132 - - [03/Nov/2025:11:50:20 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1673 +192.168.0.132 - - [03/Nov/2025:11:50:28 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1422 +192.168.0.132 - - [03/Nov/2025:11:50:28 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 1683 +192.168.0.132 - - [03/Nov/2025:11:50:29 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 5238 +192.168.0.132 - - [03/Nov/2025:11:50:29 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2331 +192.168.0.132 - - [03/Nov/2025:11:50:35 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2190 +192.168.0.132 - - [03/Nov/2025:11:50:40 +0200] "GET /fg_scan HTTP/1.1" 200 32748 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 5936 +192.168.0.132 - - [03/Nov/2025:11:55:23 +0200] "POST /fg_scan HTTP/1.1" 200 32746 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 13926 +192.168.0.132 - - [03/Nov/2025:12:03:11 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1600 +192.168.0.132 - - [03/Nov/2025:12:03:11 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1720 +192.168.0.132 - - [03/Nov/2025:12:03:14 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 6972 +192.168.0.132 - - [03/Nov/2025:12:03:15 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2323 +192.168.0.132 - - [03/Nov/2025:12:03:19 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 6757 +192.168.0.132 - - [03/Nov/2025:12:03:21 +0200] "GET /fg_scan HTTP/1.1" 200 32746 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 31759 +192.168.0.132 - - [03/Nov/2025:12:03:26 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1424 +192.168.0.132 - - [03/Nov/2025:12:03:26 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1666 +192.168.0.132 - - [03/Nov/2025:12:03:28 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 5215 +192.168.0.132 - - [03/Nov/2025:12:03:29 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2343 +192.168.0.132 - - [03/Nov/2025:12:03:31 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 6803 +192.168.0.132 - - [03/Nov/2025:12:03:33 +0200] "GET /fg_scan HTTP/1.1" 200 32746 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 31209 +192.168.0.132 - - [03/Nov/2025:12:04:39 +0200] "POST /fg_scan HTTP/1.1" 200 32743 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13797 +192.168.0.132 - - [03/Nov/2025:12:58:35 +0200] "GET /dashboard HTTP/1.1" 200 2932 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2397 +192.168.0.132 - - [03/Nov/2025:12:58:40 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1491 +192.168.0.132 - - [03/Nov/2025:12:58:41 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1664 +192.168.0.132 - - [03/Nov/2025:12:58:42 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 7330 +192.168.0.132 - - [03/Nov/2025:12:58:42 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2354 +192.168.0.132 - - [03/Nov/2025:12:58:43 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2209 +192.168.0.132 - - [03/Nov/2025:12:58:44 +0200] "GET /fg_scan HTTP/1.1" 200 32743 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 5933 +192.168.0.132 - - [03/Nov/2025:13:18:19 +0200] "GET /quality HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1931 +192.168.0.132 - - [03/Nov/2025:13:18:19 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2084 +192.168.0.132 - - [03/Nov/2025:13:18:19 +0200] "GET /static/script.js HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2312 +192.168.0.132 - - [03/Nov/2025:13:18:19 +0200] "GET /static/style.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2067 +192.168.0.132 - - [03/Nov/2025:13:18:19 +0200] "GET /static/css/base.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2235 +192.168.0.132 - - [03/Nov/2025:13:18:19 +0200] "GET /static/css/login.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 3114 +192.168.0.132 - - [03/Nov/2025:13:18:19 +0200] "GET /static/logo_login.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2149 +192.168.0.132 - - [03/Nov/2025:13:18:20 +0200] "GET /favicon.ico HTTP/1.1" 404 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1678 +192.168.0.132 - - [03/Nov/2025:13:18:21 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 5683 +192.168.0.132 - - [03/Nov/2025:13:18:21 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2395 +192.168.0.132 - - [03/Nov/2025:13:18:21 +0200] "GET /static/scan_me.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2433 +192.168.0.132 - - [03/Nov/2025:13:18:24 +0200] "GET /reports HTTP/1.1" 200 3277 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 7785 +192.168.0.132 - - [03/Nov/2025:13:18:26 +0200] "GET /fg_quality HTTP/1.1" 200 22317 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2471 +192.168.0.132 - - [03/Nov/2025:13:18:26 +0200] "GET /static/fg_quality.js HTTP/1.1" 200 0 "https://quality.moto-adv.com/fg_quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2420 +192.168.0.132 - - [03/Nov/2025:13:18:49 +0200] "GET /get_fg_report_data?report=5 HTTP/1.1" 200 3431 "https://quality.moto-adv.com/fg_quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 7001 +192.168.0.132 - - [03/Nov/2025:13:50:30 +0200] "GET /reports HTTP/1.1" 200 3277 "https://quality.moto-adv.com/fg_quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2309 +192.168.0.132 - - [03/Nov/2025:13:50:32 +0200] "GET /quality HTTP/1.1" 200 8731 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2325 +192.168.0.132 - - [03/Nov/2025:13:50:35 +0200] "GET /reports HTTP/1.1" 200 3277 "https://quality.moto-adv.com/quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2339 +192.168.0.132 - - [03/Nov/2025:13:50:38 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2384 +192.168.0.132 - - [03/Nov/2025:13:50:39 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2294 +192.168.0.132 - - [03/Nov/2025:13:50:44 +0200] "GET /fg_scan HTTP/1.1" 200 32743 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 6050 +192.168.0.132 - - [03/Nov/2025:13:50:44 +0200] "GET /static/css/scan.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2300 +192.168.0.132 - - [03/Nov/2025:13:52:27 +0200] "POST /fg_scan HTTP/1.1" 200 32740 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 40117 +192.168.0.132 - - [03/Nov/2025:15:46:04 +0200] "POST /fg_scan HTTP/1.1" 200 32736 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 12290 +192.168.0.132 - - [03/Nov/2025:15:46:44 +0200] "POST /fg_scan HTTP/1.1" 200 32733 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14099 +192.168.0.132 - - [03/Nov/2025:15:47:38 +0200] "POST /fg_scan HTTP/1.1" 200 32729 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13936 +192.168.0.132 - - [03/Nov/2025:15:48:02 +0200] "POST /fg_scan HTTP/1.1" 200 32726 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14869 +192.168.0.132 - - [03/Nov/2025:15:48:20 +0200] "POST /fg_scan HTTP/1.1" 200 32723 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13530 +192.168.0.132 - - [03/Nov/2025:15:48:46 +0200] "POST /fg_scan HTTP/1.1" 200 32719 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14615 +192.168.0.132 - - [03/Nov/2025:15:49:07 +0200] "POST /fg_scan HTTP/1.1" 200 32716 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13523 +192.168.0.132 - - [03/Nov/2025:15:49:35 +0200] "POST /fg_scan HTTP/1.1" 200 32713 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14801 +192.168.0.132 - - [03/Nov/2025:15:49:51 +0200] "POST /fg_scan HTTP/1.1" 200 32711 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14467 +192.168.0.132 - - [03/Nov/2025:15:50:11 +0200] "POST /fg_scan HTTP/1.1" 200 32720 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13977 +192.168.0.132 - - [03/Nov/2025:15:50:28 +0200] "POST /fg_scan HTTP/1.1" 200 32719 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 12785 +192.168.0.132 - - [03/Nov/2025:15:50:47 +0200] "POST /fg_scan HTTP/1.1" 200 32718 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14669 +192.168.0.132 - - [03/Nov/2025:15:51:05 +0200] "POST /fg_scan HTTP/1.1" 200 32719 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14411 +192.168.0.132 - - [03/Nov/2025:15:51:32 +0200] "POST /fg_scan HTTP/1.1" 200 32722 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14472 +192.168.0.132 - - [03/Nov/2025:15:51:57 +0200] "POST /fg_scan HTTP/1.1" 200 32723 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14983 +192.168.0.132 - - [03/Nov/2025:15:52:17 +0200] "POST /fg_scan HTTP/1.1" 200 32724 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14828 +192.168.0.132 - - [03/Nov/2025:15:52:45 +0200] "POST /fg_scan HTTP/1.1" 200 32725 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 16130 +192.168.0.132 - - [03/Nov/2025:15:53:06 +0200] "POST /fg_scan HTTP/1.1" 200 32724 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13745 +192.168.0.132 - - [03/Nov/2025:15:53:21 +0200] "POST /fg_scan HTTP/1.1" 200 32723 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14353 +192.168.0.132 - - [03/Nov/2025:15:53:37 +0200] "POST /fg_scan HTTP/1.1" 200 32722 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14507 +192.168.0.132 - - [03/Nov/2025:15:53:53 +0200] "POST /fg_scan HTTP/1.1" 200 32721 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15300 +192.168.0.132 - - [03/Nov/2025:15:54:09 +0200] "POST /fg_scan HTTP/1.1" 200 32720 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 40809 +192.168.0.132 - - [03/Nov/2025:15:54:29 +0200] "POST /fg_scan HTTP/1.1" 200 32719 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15132 +192.168.0.132 - - [03/Nov/2025:15:54:47 +0200] "POST /fg_scan HTTP/1.1" 200 32717 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14832 +192.168.0.132 - - [03/Nov/2025:15:55:05 +0200] "POST /fg_scan HTTP/1.1" 200 32716 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 42256 +192.168.0.132 - - [03/Nov/2025:15:55:21 +0200] "POST /fg_scan HTTP/1.1" 200 32715 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15012 +192.168.0.132 - - [03/Nov/2025:15:55:34 +0200] "POST /fg_scan HTTP/1.1" 200 32724 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15096 +192.168.0.132 - - [03/Nov/2025:15:55:46 +0200] "POST /fg_scan HTTP/1.1" 200 32724 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14369 +192.168.0.132 - - [03/Nov/2025:15:56:03 +0200] "POST /fg_scan HTTP/1.1" 200 32723 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15199 +192.168.0.132 - - [03/Nov/2025:15:56:20 +0200] "POST /fg_scan HTTP/1.1" 200 32724 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15271 +192.168.0.132 - - [03/Nov/2025:15:57:37 +0200] "POST /fg_scan HTTP/1.1" 200 32724 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14363 +192.168.0.132 - - [03/Nov/2025:15:58:05 +0200] "POST /fg_scan HTTP/1.1" 200 32725 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14496 +192.168.0.132 - - [03/Nov/2025:15:58:20 +0200] "POST /fg_scan HTTP/1.1" 200 32726 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15623 +192.168.0.132 - - [03/Nov/2025:15:58:38 +0200] "POST /fg_scan HTTP/1.1" 200 32727 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13830 +192.168.0.132 - - [03/Nov/2025:15:58:52 +0200] "POST /fg_scan HTTP/1.1" 200 32728 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14584 +192.168.0.132 - - [03/Nov/2025:15:59:07 +0200] "POST /fg_scan HTTP/1.1" 200 32729 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14538 +192.168.0.132 - - [03/Nov/2025:15:59:26 +0200] "POST /fg_scan HTTP/1.1" 200 32730 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15633 +192.168.0.132 - - [03/Nov/2025:15:59:38 +0200] "POST /fg_scan HTTP/1.1" 200 32731 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15577 +192.168.0.132 - - [03/Nov/2025:15:59:53 +0200] "POST /fg_scan HTTP/1.1" 200 32732 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15506 +192.168.0.132 - - [03/Nov/2025:16:00:07 +0200] "POST /fg_scan HTTP/1.1" 200 32732 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13844 +192.168.0.132 - - [03/Nov/2025:16:00:17 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2706 +192.168.0.132 - - [03/Nov/2025:16:00:19 +0200] "GET /reports HTTP/1.1" 200 3277 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2625 +192.168.0.132 - - [03/Nov/2025:16:00:23 +0200] "GET /fg_quality HTTP/1.1" 200 22317 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2857 +192.168.0.132 - - [03/Nov/2025:16:00:25 +0200] "GET /get_fg_report_data?report=5 HTTP/1.1" 200 6944 "https://quality.moto-adv.com/fg_quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 9772 +192.168.0.132 - - [03/Nov/2025:17:41:48 +0200] "GET /reports HTTP/1.1" 200 3277 "https://quality.moto-adv.com/fg_quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 8172 +192.168.0.132 - - [03/Nov/2025:17:41:48 +0200] "GET /static/style.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2737 +192.168.0.132 - - [03/Nov/2025:17:41:48 +0200] "GET /static/script.js HTTP/1.1" 304 0 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2526 +192.168.0.132 - - [03/Nov/2025:17:41:48 +0200] "GET /static/css/base.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2581 +192.168.0.132 - - [03/Nov/2025:17:41:48 +0200] "GET /static/scan_me.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2487 +192.168.0.132 - - [03/Nov/2025:17:41:49 +0200] "GET /quality HTTP/1.1" 200 8731 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2649 +192.168.0.132 - - [03/Nov/2025:17:41:52 +0200] "GET /reports HTTP/1.1" 200 3277 "https://quality.moto-adv.com/quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2659 +192.168.0.132 - - [03/Nov/2025:17:41:54 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2779 +192.168.0.132 - - [03/Nov/2025:17:41:56 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2676 +192.168.0.132 - - [03/Nov/2025:17:41:58 +0200] "GET /fg_scan HTTP/1.1" 200 32732 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 6455 +192.168.0.132 - - [03/Nov/2025:17:42:36 +0200] "POST /fg_scan HTTP/1.1" 200 32731 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14407 +192.168.0.132 - - [03/Nov/2025:17:42:54 +0200] "POST /fg_scan HTTP/1.1" 200 32730 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15836 +192.168.0.132 - - [03/Nov/2025:17:43:17 +0200] "POST /fg_scan HTTP/1.1" 200 32728 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15007 +192.168.0.132 - - [03/Nov/2025:17:43:36 +0200] "POST /fg_scan HTTP/1.1" 200 32727 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 15207 +192.168.0.132 - - [03/Nov/2025:17:44:02 +0200] "POST /fg_scan HTTP/1.1" 200 32725 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14736 +192.168.0.132 - - [03/Nov/2025:17:48:40 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1444 +192.168.0.132 - - [03/Nov/2025:17:48:40 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1669 +192.168.0.132 - - [03/Nov/2025:17:48:40 +0200] "GET /static/css/base.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1983 +192.168.0.132 - - [03/Nov/2025:17:48:40 +0200] "GET /static/style.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1853 +192.168.0.132 - - [03/Nov/2025:17:48:40 +0200] "GET /static/script.js HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1734 +192.168.0.132 - - [03/Nov/2025:17:48:40 +0200] "GET /static/css/login.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1750 +192.168.0.132 - - [03/Nov/2025:17:48:40 +0200] "GET /static/logo_login.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1951 +192.168.0.132 - - [03/Nov/2025:17:48:40 +0200] "GET /favicon.ico HTTP/1.1" 404 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1447 +192.168.0.132 - - [03/Nov/2025:17:48:41 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 5228 +192.168.0.132 - - [03/Nov/2025:17:48:41 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2347 +192.168.0.132 - - [03/Nov/2025:17:48:41 +0200] "GET /static/scan_me.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2302 +192.168.0.132 - - [03/Nov/2025:17:48:42 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2245 +192.168.0.132 - - [03/Nov/2025:17:48:43 +0200] "GET /fg_scan HTTP/1.1" 200 32725 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 5854 +192.168.0.132 - - [03/Nov/2025:17:48:43 +0200] "GET /static/css/scan.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2305 +192.168.0.132 - - [03/Nov/2025:17:50:38 +0200] "POST /fg_scan HTTP/1.1" 200 32723 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13769 +192.168.0.132 - - [03/Nov/2025:17:56:04 +0200] "POST /fg_scan HTTP/1.1" 200 32721 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13391 +192.168.0.132 - - [03/Nov/2025:17:56:56 +0200] "POST /fg_scan HTTP/1.1" 200 32720 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13891 +192.168.0.132 - - [03/Nov/2025:17:57:16 +0200] "POST /fg_scan HTTP/1.1" 200 32719 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13604 +192.168.0.132 - - [03/Nov/2025:17:58:01 +0200] "POST /fg_scan HTTP/1.1" 200 32718 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 14025 +192.168.0.132 - - [03/Nov/2025:17:58:55 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1436 +192.168.0.132 - - [03/Nov/2025:17:58:55 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1670 +192.168.0.132 - - [03/Nov/2025:17:58:59 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 5258 +192.168.0.132 - - [03/Nov/2025:17:58:59 +0200] "GET /dashboard HTTP/1.1" 200 2932 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2338 +192.168.0.132 - - [03/Nov/2025:17:59:04 +0200] "GET /main_scan HTTP/1.1" 200 2433 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2193 +192.168.0.132 - - [03/Nov/2025:17:59:09 +0200] "GET /fg_scan HTTP/1.1" 200 32718 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 5883 +192.168.0.132 - - [03/Nov/2025:17:59:55 +0200] "POST /fg_scan HTTP/1.1" 200 32728 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 13915 +192.168.0.132 - - [03/Nov/2025:18:31:25 +0200] "GET /quality HTTP/1.1" 302 189 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1991 +192.168.0.132 - - [03/Nov/2025:18:31:25 +0200] "GET / HTTP/1.1" 200 1627 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2071 +192.168.0.132 - - [03/Nov/2025:18:31:25 +0200] "GET /static/css/login.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2312 +192.168.0.132 - - [03/Nov/2025:18:31:25 +0200] "GET /static/logo_login.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 2293 +192.168.0.132 - - [03/Nov/2025:18:31:25 +0200] "GET /favicon.ico HTTP/1.1" 404 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0" 1725 +192.168.0.132 - - [03/Nov/2025:18:52:12 +0200] "GET / HTTP/1.1" 200 1688 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 61988 +192.168.0.132 - - [03/Nov/2025:18:52:12 +0200] "GET /static/css/login.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 12865 +192.168.0.132 - - [03/Nov/2025:18:52:12 +0200] "GET /static/style.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 2025 +192.168.0.132 - - [03/Nov/2025:18:52:12 +0200] "GET /static/css/base.css HTTP/1.1" 200 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 27863 +192.168.0.132 - - [03/Nov/2025:18:52:12 +0200] "GET /static/logo_login.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 27549 +192.168.0.132 - - [03/Nov/2025:18:52:12 +0200] "GET /static/script.js HTTP/1.1" 304 0 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29128 +192.168.0.132 - - [03/Nov/2025:18:52:12 +0200] "GET /favicon.ico HTTP/1.1" 404 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 2657 +192.168.0.132 - - [03/Nov/2025:18:52:17 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 11441 +192.168.0.132 - - [03/Nov/2025:18:52:17 +0200] "GET /dashboard HTTP/1.1" 500 265 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 79088 +192.168.0.132 - - [03/Nov/2025:19:13:56 +0200] "GET / HTTP/1.1" 200 1688 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36" 63622 +192.168.0.132 - - [03/Nov/2025:19:13:59 +0200] "GET /static/style.css HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36" 27903 +192.168.0.132 - - [03/Nov/2025:19:14:01 +0200] "GET /js/lkk_ch.js HTTP/1.1" 404 207 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36" 17892 +192.168.0.132 - - [03/Nov/2025:19:14:09 +0200] "GET /static/css/login.css HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36" 13426 +192.168.0.132 - - [03/Nov/2025:19:14:12 +0200] "GET /css/support_parent.css HTTP/1.1" 404 207 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36" 1465 +192.168.0.132 - - [03/Nov/2025:19:14:12 +0200] "GET /static/script.js HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36" 28210 +192.168.0.132 - - [03/Nov/2025:19:14:15 +0200] "GET /static/logo_login.jpg HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36" 15437 +127.0.0.1 - - [03/Nov/2025:19:32:05 +0200] "GET / HTTP/1.1" 200 1688 "-" "curl/8.14.1" 49996 +127.0.0.1 - - [03/Nov/2025:19:34:59 +0200] "GET / HTTP/1.1" 200 1688 "-" "curl/8.14.1" 61225 µs +192.168.0.132 - - [03/Nov/2025:19:36:05 +0200] "GET /dashboard HTTP/1.1" 500 265 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 94788 µs +192.168.0.132 - - [03/Nov/2025:19:36:08 +0200] "GET / HTTP/1.1" 200 1688 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 9191 µs +192.168.0.132 - - [03/Nov/2025:19:36:23 +0200] "POST / HTTP/1.1" 302 207 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 26201 µs +192.168.0.132 - - [03/Nov/2025:19:36:23 +0200] "GET /dashboard HTTP/1.1" 500 265 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 79185 µs +127.0.0.1 - - [03/Nov/2025:19:38:11 +0200] "GET / HTTP/1.1" 200 1688 "-" "curl/8.14.1" 2159 µs +127.0.0.1 - - [03/Nov/2025:19:42:47 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "curl/8.14.1" 17041 µs +127.0.0.1 - - [03/Nov/2025:19:43:40 +0200] "POST / HTTP/1.1" 200 1688 "-" "curl/8.14.1" 73782 µs +127.0.0.1 - - [03/Nov/2025:19:44:26 +0200] "GET /dashboard HTTP/1.1" 302 189 "-" "curl/8.14.1" 20144 µs +192.168.0.132 - - [03/Nov/2025:19:44:55 +0200] "GET /dashboard HTTP/1.1" 200 3827 "https://quality.moto-adv.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 70205 µs +192.168.0.132 - - [03/Nov/2025:19:44:55 +0200] "GET /static/scan_me.jpg HTTP/1.1" 304 0 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 13018 µs +192.168.0.132 - - [03/Nov/2025:19:46:17 +0200] "GET /main_scan HTTP/1.1" 200 2544 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 64331 µs +192.168.0.132 - - [03/Nov/2025:19:46:19 +0200] "GET /fg_scan HTTP/1.1" 200 32839 "https://quality.moto-adv.com/main_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 36225 µs +192.168.0.132 - - [03/Nov/2025:19:46:19 +0200] "GET /static/css/scan.css HTTP/1.1" 304 0 "https://quality.moto-adv.com/fg_scan" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 12443 µs +192.168.0.132 - - [03/Nov/2025:19:46:32 +0200] "GET /reports HTTP/1.1" 200 3388 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 8148 µs +192.168.0.132 - - [03/Nov/2025:19:46:36 +0200] "GET /fg_quality HTTP/1.1" 200 22444 "https://quality.moto-adv.com/reports" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 21915 µs +192.168.0.132 - - [03/Nov/2025:19:46:36 +0200] "GET /static/fg_quality.js HTTP/1.1" 304 0 "https://quality.moto-adv.com/fg_quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 2608 µs +192.168.0.132 - - [03/Nov/2025:19:46:38 +0200] "GET /get_fg_report_data?report=1 HTTP/1.1" 200 4791 "https://quality.moto-adv.com/fg_quality" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 9459 µs +192.168.0.132 - - [03/Nov/2025:19:46:52 +0200] "GET /settings HTTP/1.1" 200 10625 "https://quality.moto-adv.com/dashboard" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29667 µs +192.168.0.132 - - [03/Nov/2025:19:47:14 +0200] "GET /user_management_simple HTTP/1.1" 200 43577 "https://quality.moto-adv.com/settings" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 54731 µs diff --git a/logs/error.log b/logs/error.log index 3bed0de..f54e4f1 100644 --- a/logs/error.log +++ b/logs/error.log @@ -156,3 +156,498 @@ [2025-10-22 21:02:07 +0300] [317525] [INFO] Worker spawned (pid: [booting]) [2025-10-22 21:02:07 +0300] [317556] [INFO] Booting worker with pid: 317556 [2025-10-22 21:02:07 +0300] [317556] [INFO] Worker spawned (pid: 317556) +[2025-11-03 18:40:40 +0200] [317525] [INFO] Handling signal: term +[2025-11-03 18:40:40 +0200] [317543] [INFO] Worker exiting (pid: 317543) +[2025-11-03 18:40:40 +0200] [317547] [INFO] Worker exiting (pid: 317547) +[2025-11-03 18:40:40 +0200] [317548] [INFO] Worker exiting (pid: 317548) +[2025-11-03 18:40:40 +0200] [317550] [INFO] Worker exiting (pid: 317550) +[2025-11-03 18:40:40 +0200] [317549] [INFO] Worker exiting (pid: 317549) +[2025-11-03 18:40:40 +0200] [317556] [INFO] Worker exiting (pid: 317556) +[2025-11-03 18:40:40 +0200] [317551] [INFO] Worker exiting (pid: 317551) +[2025-11-03 18:40:40 +0200] [317552] [INFO] Worker exiting (pid: 317552) +[2025-11-03 18:40:40 +0200] [317553] [INFO] Worker exiting (pid: 317553) +[2025-11-03 18:40:41 +0200] [317525] [INFO] Shutting down: Master +[2025-11-03 18:51:56 +0200] [391559] [INFO] Starting gunicorn 23.0.0 +[2025-11-03 18:51:56 +0200] [391559] [INFO] Listening at: http://0.0.0.0:8781 (391559) +[2025-11-03 18:51:56 +0200] [391559] [INFO] Using worker: sync +[2025-11-03 18:51:56 +0200] [391559] [INFO] Trasabilitate Application server is ready. Listening on: [('0.0.0.0', 8781)] +[2025-11-03 18:51:56 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:56 +0200] [391582] [INFO] Booting worker with pid: 391582 +[2025-11-03 18:51:56 +0200] [391582] [INFO] Worker spawned (pid: 391582) +[2025-11-03 18:51:56 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:56 +0200] [391583] [INFO] Booting worker with pid: 391583 +[2025-11-03 18:51:56 +0200] [391583] [INFO] Worker spawned (pid: 391583) +[2025-11-03 18:51:56 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:56 +0200] [391584] [INFO] Booting worker with pid: 391584 +[2025-11-03 18:51:56 +0200] [391584] [INFO] Worker spawned (pid: 391584) +[2025-11-03 18:51:56 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:56 +0200] [391585] [INFO] Booting worker with pid: 391585 +[2025-11-03 18:51:56 +0200] [391585] [INFO] Worker spawned (pid: 391585) +[2025-11-03 18:51:56 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:56 +0200] [391586] [INFO] Booting worker with pid: 391586 +[2025-11-03 18:51:56 +0200] [391586] [INFO] Worker spawned (pid: 391586) +[2025-11-03 18:51:57 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:57 +0200] [391587] [INFO] Booting worker with pid: 391587 +[2025-11-03 18:51:57 +0200] [391587] [INFO] Worker spawned (pid: 391587) +[2025-11-03 18:51:57 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:57 +0200] [391588] [INFO] Booting worker with pid: 391588 +[2025-11-03 18:51:57 +0200] [391588] [INFO] Worker spawned (pid: 391588) +[2025-11-03 18:51:57 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:57 +0200] [391591] [INFO] Booting worker with pid: 391591 +[2025-11-03 18:51:57 +0200] [391591] [INFO] Worker spawned (pid: 391591) +[2025-11-03 18:51:57 +0200] [391559] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:51:57 +0200] [391596] [INFO] Booting worker with pid: 391596 +[2025-11-03 18:51:57 +0200] [391596] [INFO] Worker spawned (pid: 391596) +[2025-11-03 18:52:17,571] ERROR in app: Exception on /dashboard [GET] +Traceback (most recent call last): + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app + response = self.full_dispatch_request() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request + rv = self.handle_user_exception(e) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request + rv = self.dispatch_request() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ + File "/srv/quality_app/py_app/app/routes.py", line 191, in dashboard + return render_template('dashboard.html') + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template + return _render(app, template, context) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/templating.py", line 131, in _render + rv = template.render(context) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/srv/quality_app/py_app/app/templates/dashboard.html", line 1, in top-level template code + {% extends "base.html" %} + File "/srv/quality_app/py_app/app/templates/base.html", line 63, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^ + File "/srv/quality_app/py_app/app/templates/dashboard.html", line 47, in block 'content' + 📊 Daily Mirror Hub + ^^^^^^^^^^^^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1121, in url_for + return self.handle_url_build_error(error, endpoint, values) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1110, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + endpoint, + ...<3 lines>... + force_external=_external, + ) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/werkzeug/routing/map.py", line 924, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'daily_mirror.daily_mirror_main_route'. Did you mean 'main.daily_mirror_main_route' instead? +[2025-11-03 18:53:00 +0200] [391559] [INFO] Handling signal: term +[2025-11-03 18:53:00 +0200] [391583] [INFO] Worker exiting (pid: 391583) +[2025-11-03 18:53:00 +0200] [391584] [INFO] Worker exiting (pid: 391584) +[2025-11-03 18:53:00 +0200] [391582] [INFO] Worker exiting (pid: 391582) +[2025-11-03 18:53:00 +0200] [391585] [INFO] Worker exiting (pid: 391585) +[2025-11-03 18:53:00 +0200] [391586] [INFO] Worker exiting (pid: 391586) +[2025-11-03 18:53:00 +0200] [391587] [INFO] Worker exiting (pid: 391587) +[2025-11-03 18:53:00 +0200] [391588] [INFO] Worker exiting (pid: 391588) +[2025-11-03 18:53:00 +0200] [391591] [INFO] Worker exiting (pid: 391591) +[2025-11-03 18:53:00 +0200] [391596] [INFO] Worker exiting (pid: 391596) +[2025-11-03 18:53:01 +0200] [391559] [INFO] Shutting down: Master +[2025-11-03 18:53:58 +0200] [391915] [INFO] Starting gunicorn 23.0.0 +[2025-11-03 18:53:58 +0200] [391915] [INFO] Listening at: http://0.0.0.0:8781 (391915) +[2025-11-03 18:53:58 +0200] [391915] [INFO] Using worker: sync +[2025-11-03 18:53:58 +0200] [391915] [INFO] Trasabilitate Application server is ready. Listening on: [('0.0.0.0', 8781)] +[2025-11-03 18:53:58 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:58 +0200] [391942] [INFO] Booting worker with pid: 391942 +[2025-11-03 18:53:58 +0200] [391942] [INFO] Worker spawned (pid: 391942) +[2025-11-03 18:53:58 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:58 +0200] [391943] [INFO] Booting worker with pid: 391943 +[2025-11-03 18:53:58 +0200] [391943] [INFO] Worker spawned (pid: 391943) +[2025-11-03 18:53:58 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:58 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:58 +0200] [391944] [INFO] Booting worker with pid: 391944 +[2025-11-03 18:53:58 +0200] [391944] [INFO] Worker spawned (pid: 391944) +[2025-11-03 18:53:58 +0200] [391945] [INFO] Booting worker with pid: 391945 +[2025-11-03 18:53:58 +0200] [391945] [INFO] Worker spawned (pid: 391945) +[2025-11-03 18:53:59 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:59 +0200] [391946] [INFO] Booting worker with pid: 391946 +[2025-11-03 18:53:59 +0200] [391946] [INFO] Worker spawned (pid: 391946) +[2025-11-03 18:53:59 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:59 +0200] [391947] [INFO] Booting worker with pid: 391947 +[2025-11-03 18:53:59 +0200] [391947] [INFO] Worker spawned (pid: 391947) +[2025-11-03 18:53:59 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:59 +0200] [391948] [INFO] Booting worker with pid: 391948 +[2025-11-03 18:53:59 +0200] [391948] [INFO] Worker spawned (pid: 391948) +[2025-11-03 18:53:59 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:59 +0200] [391949] [INFO] Booting worker with pid: 391949 +[2025-11-03 18:53:59 +0200] [391949] [INFO] Worker spawned (pid: 391949) +[2025-11-03 18:53:59 +0200] [391915] [INFO] Worker spawned (pid: [booting]) +[2025-11-03 18:53:59 +0200] [391950] [INFO] Booting worker with pid: 391950 +[2025-11-03 18:53:59 +0200] [391950] [INFO] Worker spawned (pid: 391950) +[2025-11-03 19:31:55 +0200] [393535] [INFO] Starting gunicorn 23.0.0 +[2025-11-03 19:31:55 +0200] [393535] [INFO] ============================================================ +[2025-11-03 19:31:55 +0200] [393535] [INFO] 🚀 Trasabilitate Application - Starting Server +[2025-11-03 19:31:55 +0200] [393535] [INFO] ============================================================ +[2025-11-03 19:31:55 +0200] [393535] [INFO] 📍 Configuration: +[2025-11-03 19:31:55 +0200] [393535] [INFO] • Workers: 9 +[2025-11-03 19:31:55 +0200] [393535] [INFO] • Worker Class: sync +[2025-11-03 19:31:55 +0200] [393535] [INFO] • Timeout: 120s +[2025-11-03 19:31:55 +0200] [393535] [INFO] • Bind: 0.0.0.0:8781 +[2025-11-03 19:31:55 +0200] [393535] [INFO] • Preload App: True +[2025-11-03 19:31:55 +0200] [393535] [INFO] • Max Requests: 1000 (+/- 100) +[2025-11-03 19:31:55 +0200] [393535] [INFO] ============================================================ +[2025-11-03 19:31:55 +0200] [393535] [ERROR] Connection in use: ('0.0.0.0', 8781) +[2025-11-03 19:31:55 +0200] [393535] [ERROR] connection to ('0.0.0.0', 8781) failed: [Errno 98] Address already in use +[2025-11-03 19:31:56 +0200] [393535] [ERROR] Connection in use: ('0.0.0.0', 8781) +[2025-11-03 19:31:56 +0200] [393535] [ERROR] connection to ('0.0.0.0', 8781) failed: [Errno 98] Address already in use +[2025-11-03 19:31:57 +0200] [393535] [ERROR] Connection in use: ('0.0.0.0', 8781) +[2025-11-03 19:31:57 +0200] [393535] [ERROR] connection to ('0.0.0.0', 8781) failed: [Errno 98] Address already in use +[2025-11-03 19:31:58 +0200] [393535] [ERROR] Connection in use: ('0.0.0.0', 8781) +[2025-11-03 19:31:58 +0200] [393535] [ERROR] connection to ('0.0.0.0', 8781) failed: [Errno 98] Address already in use +[2025-11-03 19:31:59 +0200] [393535] [ERROR] Connection in use: ('0.0.0.0', 8781) +[2025-11-03 19:31:59 +0200] [393535] [ERROR] connection to ('0.0.0.0', 8781) failed: [Errno 98] Address already in use +[2025-11-03 19:32:00 +0200] [393535] [ERROR] Can't connect to ('0.0.0.0', 8781) +[2025-11-03 19:32:43 +0200] [391915] [INFO] Handling signal: term +[2025-11-03 19:32:43 +0200] [391942] [INFO] Worker exiting (pid: 391942) +[2025-11-03 19:32:43 +0200] [391943] [INFO] Worker exiting (pid: 391943) +[2025-11-03 19:32:43 +0200] [391944] [INFO] Worker exiting (pid: 391944) +[2025-11-03 19:32:43 +0200] [391945] [INFO] Worker exiting (pid: 391945) +[2025-11-03 19:32:43 +0200] [391946] [INFO] Worker exiting (pid: 391946) +[2025-11-03 19:32:43 +0200] [391947] [INFO] Worker exiting (pid: 391947) +[2025-11-03 19:32:43 +0200] [391948] [INFO] Worker exiting (pid: 391948) +[2025-11-03 19:32:43 +0200] [391949] [INFO] Worker exiting (pid: 391949) +[2025-11-03 19:32:43 +0200] [391950] [INFO] Worker exiting (pid: 391950) +[2025-11-03 19:32:44 +0200] [391915] [INFO] Shutting down: Master +[2025-11-03 19:34:44 +0200] [393835] [INFO] Starting gunicorn 23.0.0 +[2025-11-03 19:34:44 +0200] [393835] [INFO] ============================================================ +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🚀 Trasabilitate Application - Starting Server +[2025-11-03 19:34:44 +0200] [393835] [INFO] ============================================================ +[2025-11-03 19:34:44 +0200] [393835] [INFO] 📍 Configuration: +[2025-11-03 19:34:44 +0200] [393835] [INFO] • Workers: 9 +[2025-11-03 19:34:44 +0200] [393835] [INFO] • Worker Class: sync +[2025-11-03 19:34:44 +0200] [393835] [INFO] • Timeout: 120s +[2025-11-03 19:34:44 +0200] [393835] [INFO] • Bind: 0.0.0.0:8781 +[2025-11-03 19:34:44 +0200] [393835] [INFO] • Preload App: True +[2025-11-03 19:34:44 +0200] [393835] [INFO] • Max Requests: 1000 (+/- 100) +[2025-11-03 19:34:44 +0200] [393835] [INFO] ============================================================ +[2025-11-03 19:34:44 +0200] [393835] [INFO] Listening at: http://0.0.0.0:8781 (393835) +[2025-11-03 19:34:44 +0200] [393835] [INFO] Using worker: sync +[2025-11-03 19:34:44 +0200] [393835] [INFO] ============================================================ +[2025-11-03 19:34:44 +0200] [393835] [INFO] ✅ Trasabilitate Application Server is READY! +[2025-11-03 19:34:44 +0200] [393835] [INFO] 📡 Listening on: [('0.0.0.0', 8781)] +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🌐 Access the application at: http://0.0.0.0:8781 +[2025-11-03 19:34:44 +0200] [393835] [INFO] ============================================================ +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393863] [INFO] Booting worker with pid: 393863 +[2025-11-03 19:34:44 +0200] [393863] [INFO] ✨ Worker spawned successfully (pid: 393863) +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393864] [INFO] Booting worker with pid: 393864 +[2025-11-03 19:34:44 +0200] [393864] [INFO] ✨ Worker spawned successfully (pid: 393864) +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393865] [INFO] Booting worker with pid: 393865 +[2025-11-03 19:34:44 +0200] [393865] [INFO] ✨ Worker spawned successfully (pid: 393865) +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393866] [INFO] Booting worker with pid: 393866 +[2025-11-03 19:34:44 +0200] [393866] [INFO] ✨ Worker spawned successfully (pid: 393866) +[2025-11-03 19:34:44 +0200] [393867] [INFO] Booting worker with pid: 393867 +[2025-11-03 19:34:44 +0200] [393867] [INFO] ✨ Worker spawned successfully (pid: 393867) +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393868] [INFO] Booting worker with pid: 393868 +[2025-11-03 19:34:44 +0200] [393868] [INFO] ✨ Worker spawned successfully (pid: 393868) +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393869] [INFO] Booting worker with pid: 393869 +[2025-11-03 19:34:44 +0200] [393869] [INFO] ✨ Worker spawned successfully (pid: 393869) +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393870] [INFO] Booting worker with pid: 393870 +[2025-11-03 19:34:44 +0200] [393870] [INFO] ✨ Worker spawned successfully (pid: 393870) +[2025-11-03 19:34:44 +0200] [393835] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:34:44 +0200] [393871] [INFO] Booting worker with pid: 393871 +[2025-11-03 19:34:44 +0200] [393871] [INFO] ✨ Worker spawned successfully (pid: 393871) +Session user: superadmin superadmin +[2025-11-03 19:36:05,534] ERROR in app: Exception on /dashboard [GET] +Traceback (most recent call last): + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app + response = self.full_dispatch_request() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request + rv = self.handle_user_exception(e) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request + rv = self.dispatch_request() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ + File "/srv/quality_app/py_app/app/routes.py", line 191, in dashboard + return render_template('dashboard.html') + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template + return _render(app, template, context) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/templating.py", line 131, in _render + rv = template.render(context) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/srv/quality_app/py_app/app/templates/dashboard.html", line 1, in top-level template code + {% extends "base.html" %} + File "/srv/quality_app/py_app/app/templates/base.html", line 63, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^ + File "/srv/quality_app/py_app/app/templates/dashboard.html", line 47, in block 'content' + 📊 Daily Mirror Hub + ^^^^^^^^^^^^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1121, in url_for + return self.handle_url_build_error(error, endpoint, values) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1110, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + endpoint, + ...<3 lines>... + force_external=_external, + ) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/werkzeug/routing/map.py", line 924, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'daily_mirror.daily_mirror_main_route'. Did you mean 'main.daily_mirror_main_route' instead? +All form data received: {'username': 'superadmin', 'password': 'Vanessa_13/05'} +Raw form input: 'superadmin' 'Vanessa_13/05' +External DB query result (with modules): ('superadmin', 'Vanessa_13/05', 'superadmin', None) +Logged in as: superadmin superadmin modules: ['quality', 'warehouse', 'labels'] +Session user: superadmin superadmin +[2025-11-03 19:36:23,345] ERROR in app: Exception on /dashboard [GET] +Traceback (most recent call last): + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app + response = self.full_dispatch_request() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request + rv = self.handle_user_exception(e) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request + rv = self.dispatch_request() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request + return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^ + File "/srv/quality_app/py_app/app/routes.py", line 191, in dashboard + return render_template('dashboard.html') + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template + return _render(app, template, context) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/templating.py", line 131, in _render + rv = template.render(context) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render + self.environment.handle_exception() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception + raise rewrite_traceback_stack(source=source) + File "/srv/quality_app/py_app/app/templates/dashboard.html", line 1, in top-level template code + {% extends "base.html" %} + File "/srv/quality_app/py_app/app/templates/base.html", line 63, in top-level template code + {% block content %}{% endblock %} + ^^^^^^^^^^^^^^^^^ + File "/srv/quality_app/py_app/app/templates/dashboard.html", line 47, in block 'content' + 📊 Daily Mirror Hub + ^^^^^^^^^^^^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1121, in url_for + return self.handle_url_build_error(error, endpoint, values) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/flask/app.py", line 1110, in url_for + rv = url_adapter.build( # type: ignore[union-attr] + endpoint, + ...<3 lines>... + force_external=_external, + ) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/werkzeug/routing/map.py", line 924, in build + raise BuildError(endpoint, values, method, self) +werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'daily_mirror.daily_mirror_main_route'. Did you mean 'main.daily_mirror_main_route' instead? +[2025-11-03 19:39:28 +0200] [393835] [INFO] Handling signal: term +[2025-11-03 19:39:28 +0200] [393863] [INFO] Worker exiting (pid: 393863) +[2025-11-03 19:39:28 +0200] [393864] [INFO] Worker exiting (pid: 393864) +[2025-11-03 19:39:28 +0200] [393865] [INFO] Worker exiting (pid: 393865) +[2025-11-03 19:39:28 +0200] [393866] [INFO] Worker exiting (pid: 393866) +[2025-11-03 19:39:28 +0200] [393867] [INFO] Worker exiting (pid: 393867) +[2025-11-03 19:39:28 +0200] [393868] [INFO] Worker exiting (pid: 393868) +[2025-11-03 19:39:28 +0200] [393869] [INFO] Worker exiting (pid: 393869) +[2025-11-03 19:39:28 +0200] [393870] [INFO] Worker exiting (pid: 393870) +[2025-11-03 19:39:28 +0200] [393871] [INFO] Worker exiting (pid: 393871) +Traceback (most recent call last): + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 223, in run + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 256, in handle_term + raise StopIteration +StopIteration + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/srv/quality_recticel/recticel/bin/gunicorn", line 8, in + sys.exit(run()) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/app/wsgiapp.py", line 66, in run + WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/app/base.py", line 235, in run + super().run() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/app/base.py", line 71, in run + Arbiter(self).run() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 226, in run + self.halt() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 341, in halt + self.stop() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 395, in stop + time.sleep(0.1) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 241, in handle_chld + self.reap_workers() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 559, in reap_workers + self.cfg.child_exit(self, worker) + File "/srv/quality_app/py_app/gunicorn.conf.py", line 165, in child_exit + server.log.info("👋 Worker %s exited (exit code: %s)", worker.pid, worker.tmp.last_mtime) +AttributeError: 'WorkerTmp' object has no attribute 'last_mtime' +[2025-11-03 19:39:33 +0200] [394337] [INFO] Starting gunicorn 23.0.0 +[2025-11-03 19:39:33 +0200] [394337] [INFO] ============================================================ +[2025-11-03 19:39:33 +0200] [394337] [INFO] 🚀 Trasabilitate Application - Starting Server +[2025-11-03 19:39:33 +0200] [394337] [INFO] ============================================================ +[2025-11-03 19:39:33 +0200] [394337] [INFO] 📍 Configuration: +[2025-11-03 19:39:33 +0200] [394337] [INFO] • Workers: 9 +[2025-11-03 19:39:33 +0200] [394337] [INFO] • Worker Class: sync +[2025-11-03 19:39:33 +0200] [394337] [INFO] • Timeout: 120s +[2025-11-03 19:39:33 +0200] [394337] [INFO] • Bind: 0.0.0.0:8781 +[2025-11-03 19:39:33 +0200] [394337] [INFO] • Preload App: True +[2025-11-03 19:39:33 +0200] [394337] [INFO] • Max Requests: 1000 (+/- 100) +[2025-11-03 19:39:33 +0200] [394337] [INFO] ============================================================ +[2025-11-03 19:39:33 +0200] [394337] [INFO] Listening at: http://0.0.0.0:8781 (394337) +[2025-11-03 19:39:33 +0200] [394337] [INFO] Using worker: sync +[2025-11-03 19:39:33 +0200] [394337] [INFO] ============================================================ +[2025-11-03 19:39:33 +0200] [394337] [INFO] ✅ Trasabilitate Application Server is READY! +[2025-11-03 19:39:33 +0200] [394337] [INFO] 📡 Listening on: [('0.0.0.0', 8781)] +[2025-11-03 19:39:33 +0200] [394337] [INFO] 🌐 Access the application at: http://0.0.0.0:8781 +[2025-11-03 19:39:33 +0200] [394337] [INFO] ============================================================ +[2025-11-03 19:39:33 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:33 +0200] [394346] [INFO] Booting worker with pid: 394346 +[2025-11-03 19:39:33 +0200] [394346] [INFO] ✨ Worker spawned successfully (pid: 394346) +[2025-11-03 19:39:33 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:33 +0200] [394347] [INFO] Booting worker with pid: 394347 +[2025-11-03 19:39:33 +0200] [394347] [INFO] ✨ Worker spawned successfully (pid: 394347) +[2025-11-03 19:39:34 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:34 +0200] [394348] [INFO] Booting worker with pid: 394348 +[2025-11-03 19:39:34 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:34 +0200] [394348] [INFO] ✨ Worker spawned successfully (pid: 394348) +[2025-11-03 19:39:34 +0200] [394349] [INFO] Booting worker with pid: 394349 +[2025-11-03 19:39:34 +0200] [394349] [INFO] ✨ Worker spawned successfully (pid: 394349) +[2025-11-03 19:39:34 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:34 +0200] [394350] [INFO] Booting worker with pid: 394350 +[2025-11-03 19:39:34 +0200] [394350] [INFO] ✨ Worker spawned successfully (pid: 394350) +[2025-11-03 19:39:34 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:34 +0200] [394357] [INFO] Booting worker with pid: 394357 +[2025-11-03 19:39:34 +0200] [394357] [INFO] ✨ Worker spawned successfully (pid: 394357) +[2025-11-03 19:39:34 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:34 +0200] [394364] [INFO] Booting worker with pid: 394364 +[2025-11-03 19:39:34 +0200] [394364] [INFO] ✨ Worker spawned successfully (pid: 394364) +[2025-11-03 19:39:34 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:34 +0200] [394365] [INFO] Booting worker with pid: 394365 +[2025-11-03 19:39:34 +0200] [394365] [INFO] ✨ Worker spawned successfully (pid: 394365) +[2025-11-03 19:39:34 +0200] [394337] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:39:34 +0200] [394366] [INFO] Booting worker with pid: 394366 +[2025-11-03 19:39:34 +0200] [394366] [INFO] ✨ Worker spawned successfully (pid: 394366) +Session user: None None +All form data received: {'username': 'superadmin', 'password': 'superadmin123'} +Raw form input: 'superadmin' 'superadmin123' +External DB query result (with modules): None +Login failed for: superadmin superadmin123 +Session user: None None +Session user: superadmin superadmin +DEBUG: Daily FG report searching for records on date: 2025-11-03 +DEBUG: Daily FG report found 54 rows for today (2025-11-03): [(90, 'OP01', 'CP00001429', 'CP00001429-32', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=64794), 10, 1), (89, 'OP01', 'CP00001429', 'CP00001429-24', 'OC27', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=64680), 10, 1), (88, 'OP01', 'CP00001429', 'CP00001429-23', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=64635), 10, 1), (87, 'OP01', 'CP00001429', 'CP00001429-22', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=64615), 10, 1), (86, 'OP01', 'CP00001429', 'CP00001429-21', 'OC01', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=64564), 10, 1), (85, 'OP01', 'CP00001429', 'CP00001429-1', 'OC11', 'OC04', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=64237), 10, 1), (84, 'OP01', 'CP00001429', 'CP00001429-21', 'OC04', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=63841), 10, 1), (83, 'OP01', 'CP00001429', 'CP00001429-20', 'OC05', 'OC00', 1, datetime.date(2025, 11, 3), datetime.timedelta(seconds=63815), 10, 1), (82, 'OP01', 'CP00001429', 'CP00001429-1', 'OC09', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=63796), 10, 1), (81, 'OP01', 'CP00001429', 'CP00001429-18', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=63773), 10, 1), (80, 'OP01', 'CP00001429', 'CP00001429-17', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=63755), 10, 1), (79, 'OP01', 'CP00001432', 'CP00001432-30', 'OC05', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57606), 21, 2), (78, 'OP01', 'CP00001432', 'CP00001432-29', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57592), 21, 2), (77, 'OP01', 'CP00001432', 'CP00001432-28', 'OC04', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57577), 21, 2), (76, 'OP01', 'CP00001432', 'CP00001432-26', 'OC05', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57565), 21, 2), (75, 'OP01', 'CP00001432', 'CP00001432-25', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57546), 21, 2), (74, 'OP01', 'CP00001432', 'CP00001432-23', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57531), 21, 2), (73, 'OP01', 'CP00001432', 'CP00001432-23', 'OC05', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57517), 21, 2), (72, 'OP01', 'CP00001432', 'CP00001432-21', 'OC26', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57499), 21, 2), (71, 'OP01', 'CP00001432', 'CP00001432-20', 'OC19', 'OC00', 26, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57484), 21, 2), (70, 'OP01', 'CP00001432', 'CP00001432-19', 'OC09', 'OC00', 1, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57456), 21, 2), (69, 'OP01', 'CP00001432', 'CP00001432-18U', 'OC26', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57379), 21, 2), (68, 'OP01', 'CP00001432', 'CP00001432-16', 'OC19', 'OC04', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57362), 21, 2), (67, 'OP01', 'CP00001432', 'CP00001432-14', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57345), 21, 2), (66, 'OP01', 'CP00001432', 'CP00001432-13', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57333), 21, 2), (65, 'OP01', 'CP00001432', 'CP00001432-11', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57320), 21, 2), (64, 'OP01', 'CP00001432', 'CP00001432-10', 'OC26', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57304), 21, 2), (63, 'OP01', 'CP00001432', 'CP00001432-8', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57286), 21, 2), (62, 'OP01', 'CP00001432', 'CP00001432-7', 'OC04', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57268), 21, 2), (61, 'OP01', 'CP00001432', 'CP00001432-6', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57248), 21, 2), (60, 'OP01', 'CP00001432', 'CP00001432-5', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57232), 21, 2), (59, 'OP01', 'CP00001432', 'CP00001432-4', 'OC09', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57216), 21, 2), (58, 'OP01', 'CP00001432', 'CP00001432-2', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57201), 21, 2), (57, 'OP01', 'CP00001432', 'CP00001432-1', 'OC05', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57185), 21, 2), (56, 'OP01', 'CP00001421', 'CP00001421-23', 'OC11', 'OC00', 2, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57164), 15, 3), (55, 'OP01', 'CP00001421', 'CP00001421-21', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57136), 15, 3), (54, 'OP01', 'CP00001421', 'CP00001421-20', 'OC05', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57116), 15, 3), (53, 'OP01', 'CP00001421', 'CP00001421-18', 'OC09', 'OC00', 26, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57091), 15, 3), (52, 'OP01', 'CP00001421', 'CP00001421-16', 'OC26', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57064), 15, 3), (51, 'OP01', 'CP00001421', 'CP00001421-14', 'OC05', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57046), 15, 3), (50, 'OP01', 'CP00001421', 'CP00001421-12', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57027), 15, 3), (49, 'OP01', 'CP00001421', 'CP00001421-11', 'OC19', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=57010), 15, 3), (48, 'OP01', 'CP00001421', 'CP00001421-10', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56990), 15, 3), (47, 'OP01', 'CP00001421', 'CP00001421-9', 'OC09', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56974), 15, 3), (46, 'OP01', 'CP00001421', 'CP00001421-8', 'OC05', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56946), 15, 3), (45, 'OP01', 'CP00001421', 'CP00001421-7', 'OC11', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56925), 15, 3), (44, 'OP01', 'CP00001421', 'CP00001421-6', 'OC04', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56899), 15, 3), (43, 'OP01', 'CP00001421', 'CP00001421-5', 'OC26', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56881), 15, 3), (42, 'OP01', 'CP00001421', 'CP00001421-4', 'OC05', 'OC00', 1, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56857), 15, 3), (41, 'OP01', 'CP00001421', 'CP00001421-3', 'OC09', 'OC19', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56803), 15, 3), (40, 'OP01', 'CP00001421', 'CP00001421-2', 'OC04', 'OC04', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=56763), 15, 3), (39, 'OP01', 'CP00001421', 'CP00001421-1', 'OC26', 'OC04', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=49946), 15, 3), (38, 'OP01', 'CP00001596', 'CP00001596-1', 'OC00', 'OC00', 0, datetime.date(2025, 11, 3), datetime.timedelta(seconds=43478), 1, 0), (37, 'OP01', 'CP00001702', 'CP00001702-1', 'OC01', 'OC00', 25, datetime.date(2025, 11, 3), datetime.timedelta(seconds=42922), 0, 1)] +FG Data being returned: {'headers': ['Id', 'Operator Code', 'CP Base Code', 'CP Full Code', 'OC1 Code', 'OC2 Code', 'Quality Code', 'Date', 'Time', 'Approved Quantity', 'Rejected Quantity'], 'rows': [[90, 'OP01', 'CP00001429', 'CP00001429-32', 'OC19', 'OC00', 0, '03/11/2025', '17:59:54', 10, 1], [89, 'OP01', 'CP00001429', 'CP00001429-24', 'OC27', 'OC00', 0, '03/11/2025', '17:58:00', 10, 1], [88, 'OP01', 'CP00001429', 'CP00001429-23', 'OC19', 'OC00', 0, '03/11/2025', '17:57:15', 10, 1], [87, 'OP01', 'CP00001429', 'CP00001429-22', 'OC19', 'OC00', 0, '03/11/2025', '17:56:55', 10, 1], [86, 'OP01', 'CP00001429', 'CP00001429-21', 'OC01', 'OC00', 0, '03/11/2025', '17:56:04', 10, 1], [85, 'OP01', 'CP00001429', 'CP00001429-1', 'OC11', 'OC04', 0, '03/11/2025', '17:50:37', 10, 1], [84, 'OP01', 'CP00001429', 'CP00001429-21', 'OC04', 'OC00', 0, '03/11/2025', '17:44:01', 10, 1], [83, 'OP01', 'CP00001429', 'CP00001429-20', 'OC05', 'OC00', 1, '03/11/2025', '17:43:35', 10, 1], [82, 'OP01', 'CP00001429', 'CP00001429-1', 'OC09', 'OC00', 0, '03/11/2025', '17:43:16', 10, 1], [81, 'OP01', 'CP00001429', 'CP00001429-18', 'OC19', 'OC00', 0, '03/11/2025', '17:42:53', 10, 1], [80, 'OP01', 'CP00001429', 'CP00001429-17', 'OC11', 'OC00', 0, '03/11/2025', '17:42:35', 10, 1], [79, 'OP01', 'CP00001432', 'CP00001432-30', 'OC05', 'OC00', 0, '03/11/2025', '16:00:06', 21, 2], [78, 'OP01', 'CP00001432', 'CP00001432-29', 'OC19', 'OC00', 0, '03/11/2025', '15:59:52', 21, 2], [77, 'OP01', 'CP00001432', 'CP00001432-28', 'OC04', 'OC00', 0, '03/11/2025', '15:59:37', 21, 2], [76, 'OP01', 'CP00001432', 'CP00001432-26', 'OC05', 'OC00', 0, '03/11/2025', '15:59:25', 21, 2], [75, 'OP01', 'CP00001432', 'CP00001432-25', 'OC11', 'OC00', 0, '03/11/2025', '15:59:06', 21, 2], [74, 'OP01', 'CP00001432', 'CP00001432-23', 'OC19', 'OC00', 0, '03/11/2025', '15:58:51', 21, 2], [73, 'OP01', 'CP00001432', 'CP00001432-23', 'OC05', 'OC00', 0, '03/11/2025', '15:58:37', 21, 2], [72, 'OP01', 'CP00001432', 'CP00001432-21', 'OC26', 'OC00', 0, '03/11/2025', '15:58:19', 21, 2], [71, 'OP01', 'CP00001432', 'CP00001432-20', 'OC19', 'OC00', 26, '03/11/2025', '15:58:04', 21, 2], [70, 'OP01', 'CP00001432', 'CP00001432-19', 'OC09', 'OC00', 1, '03/11/2025', '15:57:36', 21, 2], [69, 'OP01', 'CP00001432', 'CP00001432-18U', 'OC26', 'OC00', 0, '03/11/2025', '15:56:19', 21, 2], [68, 'OP01', 'CP00001432', 'CP00001432-16', 'OC19', 'OC04', 0, '03/11/2025', '15:56:02', 21, 2], [67, 'OP01', 'CP00001432', 'CP00001432-14', 'OC19', 'OC00', 0, '03/11/2025', '15:55:45', 21, 2], [66, 'OP01', 'CP00001432', 'CP00001432-13', 'OC11', 'OC00', 0, '03/11/2025', '15:55:33', 21, 2], [65, 'OP01', 'CP00001432', 'CP00001432-11', 'OC11', 'OC00', 0, '03/11/2025', '15:55:20', 21, 2], [64, 'OP01', 'CP00001432', 'CP00001432-10', 'OC26', 'OC00', 0, '03/11/2025', '15:55:04', 21, 2], [63, 'OP01', 'CP00001432', 'CP00001432-8', 'OC19', 'OC00', 0, '03/11/2025', '15:54:46', 21, 2], [62, 'OP01', 'CP00001432', 'CP00001432-7', 'OC04', 'OC00', 0, '03/11/2025', '15:54:28', 21, 2], [61, 'OP01', 'CP00001432', 'CP00001432-6', 'OC19', 'OC00', 0, '03/11/2025', '15:54:08', 21, 2], [60, 'OP01', 'CP00001432', 'CP00001432-5', 'OC11', 'OC00', 0, '03/11/2025', '15:53:52', 21, 2], [59, 'OP01', 'CP00001432', 'CP00001432-4', 'OC09', 'OC00', 0, '03/11/2025', '15:53:36', 21, 2], [58, 'OP01', 'CP00001432', 'CP00001432-2', 'OC11', 'OC00', 0, '03/11/2025', '15:53:21', 21, 2], [57, 'OP01', 'CP00001432', 'CP00001432-1', 'OC05', 'OC00', 0, '03/11/2025', '15:53:05', 21, 2], [56, 'OP01', 'CP00001421', 'CP00001421-23', 'OC11', 'OC00', 2, '03/11/2025', '15:52:44', 15, 3], [55, 'OP01', 'CP00001421', 'CP00001421-21', 'OC19', 'OC00', 0, '03/11/2025', '15:52:16', 15, 3], [54, 'OP01', 'CP00001421', 'CP00001421-20', 'OC05', 'OC00', 0, '03/11/2025', '15:51:56', 15, 3], [53, 'OP01', 'CP00001421', 'CP00001421-18', 'OC09', 'OC00', 26, '03/11/2025', '15:51:31', 15, 3], [52, 'OP01', 'CP00001421', 'CP00001421-16', 'OC26', 'OC00', 0, '03/11/2025', '15:51:04', 15, 3], [51, 'OP01', 'CP00001421', 'CP00001421-14', 'OC05', 'OC00', 0, '03/11/2025', '15:50:46', 15, 3], [50, 'OP01', 'CP00001421', 'CP00001421-12', 'OC11', 'OC00', 0, '03/11/2025', '15:50:27', 15, 3], [49, 'OP01', 'CP00001421', 'CP00001421-11', 'OC19', 'OC00', 0, '03/11/2025', '15:50:10', 15, 3], [48, 'OP01', 'CP00001421', 'CP00001421-10', 'OC11', 'OC00', 0, '03/11/2025', '15:49:50', 15, 3], [47, 'OP01', 'CP00001421', 'CP00001421-9', 'OC09', 'OC00', 0, '03/11/2025', '15:49:34', 15, 3], [46, 'OP01', 'CP00001421', 'CP00001421-8', 'OC05', 'OC00', 0, '03/11/2025', '15:49:06', 15, 3], [45, 'OP01', 'CP00001421', 'CP00001421-7', 'OC11', 'OC00', 0, '03/11/2025', '15:48:45', 15, 3], [44, 'OP01', 'CP00001421', 'CP00001421-6', 'OC04', 'OC00', 0, '03/11/2025', '15:48:19', 15, 3], [43, 'OP01', 'CP00001421', 'CP00001421-5', 'OC26', 'OC00', 0, '03/11/2025', '15:48:01', 15, 3], [42, 'OP01', 'CP00001421', 'CP00001421-4', 'OC05', 'OC00', 1, '03/11/2025', '15:47:37', 15, 3], [41, 'OP01', 'CP00001421', 'CP00001421-3', 'OC09', 'OC19', 0, '03/11/2025', '15:46:43', 15, 3], [40, 'OP01', 'CP00001421', 'CP00001421-2', 'OC04', 'OC04', 0, '03/11/2025', '15:46:03', 15, 3], [39, 'OP01', 'CP00001421', 'CP00001421-1', 'OC26', 'OC04', 0, '03/11/2025', '13:52:26', 15, 3], [38, 'OP01', 'CP00001596', 'CP00001596-1', 'OC00', 'OC00', 0, '03/11/2025', '12:04:38', 1, 0], [37, 'OP01', 'CP00001702', 'CP00001702-1', 'OC01', 'OC00', 25, '03/11/2025', '11:55:22', 0, 1]]} +[2025-11-03 19:48:16 +0200] [394347] [INFO] Worker exiting (pid: 394347) +[2025-11-03 19:48:16 +0200] [394350] [INFO] Worker exiting (pid: 394350) +[2025-11-03 19:48:16 +0200] [394346] [INFO] Worker exiting (pid: 394346) +[2025-11-03 19:48:16 +0200] [394349] [INFO] Worker exiting (pid: 394349) +[2025-11-03 19:48:16 +0200] [394348] [INFO] Worker exiting (pid: 394348) +[2025-11-03 19:48:16 +0200] [394357] [INFO] Worker exiting (pid: 394357) +[2025-11-03 19:48:16 +0200] [394366] [INFO] Worker exiting (pid: 394366) +[2025-11-03 19:48:16 +0200] [394364] [INFO] Worker exiting (pid: 394364) +[2025-11-03 19:48:16 +0200] [394337] [INFO] Handling signal: term +[2025-11-03 19:48:16 +0200] [394365] [INFO] Worker exiting (pid: 394365) +[2025-11-03 19:48:16 +0200] [394337] [ERROR] Worker (pid:394347) was sent SIGTERM! +[2025-11-03 19:48:16 +0200] [394337] [ERROR] Worker (pid:394350) was sent SIGTERM! +Traceback (most recent call last): + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 223, in run +[2025-11-03 19:48:16 +0200] [394337] [ERROR] Worker (pid:394346) was sent SIGTERM! + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 256, in handle_term +[2025-11-03 19:48:16 +0200] [394337] [ERROR] Worker (pid:394349) was sent SIGTERM! +StopIteration + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/srv/quality_recticel/recticel/bin/gunicorn", line 8, in + sys.exit(run()) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/app/wsgiapp.py", line 66, in run + WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/app/base.py", line 235, in run + super().run() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/app/base.py", line 71, in run + Arbiter(self).run() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 226, in run + self.halt() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 341, in halt + self.stop() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 395, in stop + time.sleep(0.1) + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 241, in handle_chld + self.reap_workers() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 559, in reap_workers + self.cfg.child_exit(self, worker) + File "/srv/quality_app/py_app/gunicorn.conf.py", line 165, in child_exit + server.log.info("👋 Worker %s exited (exit code: %s)", worker.pid, worker.tmp.last_mtime) +AttributeError: 'WorkerTmp' object has no attribute 'last_mtime' +[2025-11-03 19:48:16 +0200] [394337] [ERROR] Worker (pid:394348) was sent SIGTERM! +Exception ignored in atexit callback : +Traceback (most recent call last): + File "/usr/lib/python3.13/logging/__init__.py", line 2239, in shutdown +[2025-11-03 19:48:16 +0200] [394337] [ERROR] Worker (pid:394357) was sent SIGTERM! + File "/usr/lib/python3.13/logging/__init__.py", line 973, in acquire + self.lock.acquire() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 241, in handle_chld + self.reap_workers() + File "/srv/quality_recticel/recticel/lib/python3.13/site-packages/gunicorn/arbiter.py", line 559, in reap_workers + self.cfg.child_exit(self, worker) + File "/srv/quality_app/py_app/gunicorn.conf.py", line 165, in child_exit + server.log.info("👋 Worker %s exited (exit code: %s)", worker.pid, worker.tmp.last_mtime) +AttributeError: 'WorkerTmp' object has no attribute 'last_mtime' +[2025-11-03 19:48:23 +0200] [394823] [INFO] Starting gunicorn 23.0.0 +[2025-11-03 19:48:23 +0200] [394823] [INFO] ============================================================ +[2025-11-03 19:48:23 +0200] [394823] [INFO] 🚀 Trasabilitate Application - Starting Server +[2025-11-03 19:48:23 +0200] [394823] [INFO] ============================================================ +[2025-11-03 19:48:23 +0200] [394823] [INFO] 📍 Configuration: +[2025-11-03 19:48:23 +0200] [394823] [INFO] • Workers: 9 +[2025-11-03 19:48:23 +0200] [394823] [INFO] • Worker Class: sync +[2025-11-03 19:48:23 +0200] [394823] [INFO] • Timeout: 120s +[2025-11-03 19:48:23 +0200] [394823] [INFO] • Bind: 0.0.0.0:8781 +[2025-11-03 19:48:23 +0200] [394823] [INFO] • Preload App: True +[2025-11-03 19:48:23 +0200] [394823] [INFO] • Max Requests: 1000 (+/- 100) +[2025-11-03 19:48:23 +0200] [394823] [INFO] ============================================================ +[2025-11-03 19:48:23 +0200] [394823] [INFO] Listening at: http://0.0.0.0:8781 (394823) +[2025-11-03 19:48:23 +0200] [394823] [INFO] Using worker: sync +[2025-11-03 19:48:23 +0200] [394823] [INFO] ============================================================ +[2025-11-03 19:48:23 +0200] [394823] [INFO] ✅ Trasabilitate Application Server is READY! +[2025-11-03 19:48:23 +0200] [394823] [INFO] 📡 Listening on: [('0.0.0.0', 8781)] +[2025-11-03 19:48:23 +0200] [394823] [INFO] 🌐 Access the application at: http://0.0.0.0:8781 +[2025-11-03 19:48:23 +0200] [394823] [INFO] ============================================================ +[2025-11-03 19:48:23 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:23 +0200] [394862] [INFO] Booting worker with pid: 394862 +[2025-11-03 19:48:23 +0200] [394862] [INFO] ✨ Worker spawned successfully (pid: 394862) +[2025-11-03 19:48:24 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:24 +0200] [394863] [INFO] Booting worker with pid: 394863 +[2025-11-03 19:48:24 +0200] [394863] [INFO] ✨ Worker spawned successfully (pid: 394863) +[2025-11-03 19:48:24 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:24 +0200] [394864] [INFO] Booting worker with pid: 394864 +[2025-11-03 19:48:24 +0200] [394864] [INFO] ✨ Worker spawned successfully (pid: 394864) +[2025-11-03 19:48:24 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:24 +0200] [394865] [INFO] Booting worker with pid: 394865 +[2025-11-03 19:48:24 +0200] [394865] [INFO] ✨ Worker spawned successfully (pid: 394865) +[2025-11-03 19:48:24 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:24 +0200] [394866] [INFO] Booting worker with pid: 394866 +[2025-11-03 19:48:24 +0200] [394866] [INFO] ✨ Worker spawned successfully (pid: 394866) +[2025-11-03 19:48:24 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:24 +0200] [394867] [INFO] Booting worker with pid: 394867 +[2025-11-03 19:48:24 +0200] [394867] [INFO] ✨ Worker spawned successfully (pid: 394867) +[2025-11-03 19:48:24 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:24 +0200] [394868] [INFO] Booting worker with pid: 394868 +[2025-11-03 19:48:24 +0200] [394868] [INFO] ✨ Worker spawned successfully (pid: 394868) +[2025-11-03 19:48:24 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:24 +0200] [394869] [INFO] Booting worker with pid: 394869 +[2025-11-03 19:48:24 +0200] [394869] [INFO] ✨ Worker spawned successfully (pid: 394869) +[2025-11-03 19:48:24 +0200] [394823] [INFO] 🔄 Forking new worker (pid: [booting]) +[2025-11-03 19:48:24 +0200] [394870] [INFO] Booting worker with pid: 394870 +[2025-11-03 19:48:24 +0200] [394870] [INFO] ✨ Worker spawned successfully (pid: 394870) diff --git a/py_app/app/static/docs/dashboard.md b/py_app/app/static/docs/dashboard.md index 171d2a1..75a4d9c 100644 --- a/py_app/app/static/docs/dashboard.md +++ b/py_app/app/static/docs/dashboard.md @@ -54,7 +54,7 @@ Pentru generarea și printarea etichetelor: 2. Veți vedea submeniul cu opțiunile disponibile 3. Selectați funcționalitatea dorită -![Navigare module](images/dashboard_navigation.png) +![Navigare module](images/dashboard_main.png) ### Pasul 3: Utilizarea funcționalităților Fiecare modul are propriile sale funcționalități specializate. Consultați ghidurile specifice pentru: @@ -70,13 +70,13 @@ Aplicația suportă diferite niveluri de acces: - **Admin** - Acces la majoritatea funcționalităților - **Manager** - Acces la funcționalitățile de management - **User** - Acces limitat la funcționalitățile de bază - +![quick view access](images/quick_access.png) ### Verificarea permisiunilor - Dacă nu aveți acces la un modul, acesta nu va fi vizibil în dashboard - Contactați administratorul pentru a obține permisiuni suplimentare - Permisiunile sunt configurate per utilizator și per modul -![Niveluri de acces](images/dashboard_permissions.png) +![Niveluri de acces](images/access_management.png) ## Funcționalități comune diff --git a/py_app/app/static/docs/images/access_management.png b/py_app/app/static/docs/images/access_management.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1af657ed836509b3a5a2eef7ed5ef89ed58ac5 GIT binary patch literal 47019 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