This commit is contained in:
Iliyan Angelov
2025-09-26 00:45:31 +03:00
parent 1e316a763a
commit 3f5bcfad68
2821 changed files with 1043 additions and 38155 deletions

View File

@@ -3,6 +3,7 @@ import { Inter, Montserrat } from "next/font/google";
import "@/public/styles/main.scss";
import { CookieConsentProvider } from "@/components/shared/layout/CookieConsentContext";
import { CookieConsent } from "@/components/shared/layout/CookieConsent";
import LayoutWrapper from "@/components/shared/layout/LayoutWrapper";
const montserrat = Montserrat({
subsets: ["latin"],
@@ -77,7 +78,9 @@ export default function RootLayout({
showPrivacyNotice: true,
}}
>
<LayoutWrapper>
{children}
</LayoutWrapper>
<CookieConsent />
</CookieConsentProvider>
</body>

View File

@@ -15473,3 +15473,326 @@ INFO 2025-09-25 21:11:40,916 basehttp 148000 128298896062144 "GET /api/about/pag
INFO 2025-09-25 21:11:40,960 basehttp 148000 128298606986944 "GET /media/about/services/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:11:41,454 basehttp 148000 128298606986944 "GET /media/about/process/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:11:43,226 basehttp 148000 128298606986944 "GET /media/about/journey/5106554_2658378_z7vMnMV.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:23:51,595 autoreload 206771 123548285056448 Watching for file changes with StatReloader
INFO 2025-09-25 21:24:33,336 autoreload 207144 139579352450496 Watching for file changes with StatReloader
INFO 2025-09-25 21:25:23,082 autoreload 208578 137170627704256 Watching for file changes with StatReloader
INFO 2025-09-25 21:25:23,885 autoreload 208601 136258742597056 Watching for file changes with StatReloader
INFO 2025-09-25 21:25:26,509 basehttp 208578 137170532693696 "OPTIONS /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 0
INFO 2025-09-25 21:25:26,522 basehttp 208578 137170450904768 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:25:26,537 basehttp 208578 137170450904768 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:25:37,197 autoreload 208887 130267259327936 Watching for file changes with StatReloader
INFO 2025-09-25 21:26:04,252 autoreload 209138 127109705283008 Watching for file changes with StatReloader
INFO 2025-09-25 21:26:07,928 basehttp 209138 127109536151232 "OPTIONS /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 0
INFO 2025-09-25 21:26:07,928 basehttp 209138 127109527758528 "OPTIONS /api/about/page/ HTTP/1.1" 200 0
INFO 2025-09-25 21:26:07,974 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:26:07,997 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:26:08,054 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:26:08,119 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:26:08,177 basehttp 209138 127109519365824 "GET /media/about/services/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:26:11,551 basehttp 209138 127109519365824 "GET /media/about/process/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:26:12,886 basehttp 209138 127109519365824 "GET /media/about/journey/5106554_2658378_z7vMnMV.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:26:18,714 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:26:18,726 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:26:18,776 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:26:18,825 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:40,639 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:40,964 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:40,974 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:41,041 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:41,092 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:46,422 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:46,431 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:46,486 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:46,491 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:48,468 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:48,485 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:48,485 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:48,503 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:48,564 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:48,638 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:48,641 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:48,657 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:49,746 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:49,767 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:49,769 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:49,788 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:49,867 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:49,870 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:49,899 basehttp 209138 127109502580416 "GET /media/about/services/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:28:49,945 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:49,947 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:28:52,862 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:52,875 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:54,328 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:54,342 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:56,851 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:56,863 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:56,940 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:56,949 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:58,057 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:58,067 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:58,137 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:28:58,148 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:29:00,791 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:29:00,800 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:29:00,807 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:29:00,823 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:29:00,883 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:29:00,959 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:29:00,961 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:29:00,981 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:31:58,271 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:31:58,279 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:31:58,330 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:31:58,381 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:00,489 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:00,510 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:00,515 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:00,537 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:00,596 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:00,654 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:00,715 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:00,770 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:02,053 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:02,062 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:02,077 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:02,095 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:02,151 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:02,206 basehttp 209138 127109510973120 "GET /media/about/services/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:32:02,228 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:02,234 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:02,249 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:03,629 basehttp 209138 127109510973120 "GET /media/about/process/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:32:04,496 basehttp 209138 127109510973120 "GET /media/about/journey/5106554_2658378_z7vMnMV.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:32:08,768 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:08,777 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:10,344 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:10,353 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:12,359 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:12,371 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:12,451 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:12,501 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:14,052 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:14,063 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:14,117 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:14,167 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:19,972 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:19,987 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:20,049 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:20,099 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:26,456 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:26,506 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:26,555 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:26,603 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:31,527 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:31,536 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:31,628 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:31,637 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:37,253 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:37,262 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:37,359 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:37,370 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:39,466 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:39,483 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:39,489 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:39,503 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:39,566 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:39,636 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:39,643 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:39,659 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:42,409 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:42,425 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:32:42,429 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:42,460 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:42,464 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:42,483 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:42,530 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:32:42,535 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:18,633 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:33:18,652 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:18,661 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:33:18,681 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:18,700 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:18,759 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:18,777 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:18,838 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:23,651 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:33:23,666 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:23,672 basehttp 209138 127109536151232 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:33:23,691 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:23,709 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:23,786 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:23,795 basehttp 209138 127109536151232 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:33:23,812 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:37:27,632 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:37:27,640 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:37:27,696 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:37:27,746 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:37:37,981 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:37:37,995 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:37:38,008 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:37:38,022 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:37:38,096 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:37:38,098 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:37:38,184 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:37:38,184 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:37:38,190 basehttp 209138 127109502580416 "GET /media/about/services/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:37:39,495 basehttp 209138 127109502580416 "GET /media/about/process/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:37:42,387 basehttp 209138 127109502580416 "GET /media/about/journey/5106554_2658378_z7vMnMV.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:39:29,259 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:29,282 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:29,289 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:29,314 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:29,373 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:29,447 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:29,449 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:29,472 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:29,510 basehttp 209138 127109536151232 "GET /media/about/services/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:39:35,048 basehttp 209138 127109536151232 "GET /media/about/process/5106554_2658378.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:39:36,079 basehttp 209138 127109536151232 "GET /media/about/journey/5106554_2658378_z7vMnMV.jpg HTTP/1.1" 200 512913
INFO 2025-09-25 21:39:38,954 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:38,964 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:39,017 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:39,065 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:39,304 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:39,313 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:39,365 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:39,421 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:46,110 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:46,122 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:46,426 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:46,440 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:49,439 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:49,505 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:49,854 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:49,920 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:51,115 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:51,128 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:51,441 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:51,450 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:53,247 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:53,263 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:53,266 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,285 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,356 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,360 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,434 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,436 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,554 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:53,572 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:53,579 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,597 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,658 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,728 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,730 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:53,752 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:39:56,951 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:56,962 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:57,040 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:57,089 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:57,352 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:57,360 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:57,443 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:39:57,492 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:16,238 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:16,256 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:16,258 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,286 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,288 basehttp 209138 127109519365824 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,305 basehttp 209138 127109519365824 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,362 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,366 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,550 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:16,568 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:16,573 basehttp 209138 127109519365824 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,587 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,605 basehttp 209138 127109519365824 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,664 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,730 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:16,788 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:17,699 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:17,714 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:17,791 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:17,840 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:18,125 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:18,133 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:18,233 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:18,242 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:19,853 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:19,866 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:19,872 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:19,887 basehttp 209138 127109519365824 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:19,915 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:19,921 basehttp 209138 127109519365824 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:19,985 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:20,001 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:20,157 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:20,180 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:20,181 basehttp 209138 127109519365824 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:20,205 basehttp 209138 127109510973120 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:20,219 basehttp 209138 127109519365824 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:20,283 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:20,302 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:20,361 basehttp 209138 127109527758528 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:40:25,071 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:25,082 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:25,199 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:25,211 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:25,531 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:25,539 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:25,667 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:25,676 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:27,269 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:27,291 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:27,564 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:40:27,577 basehttp 209138 127109527758528 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:42:34,240 autoreload 209138 127109705283008 /home/gnx/Desktop/GNX-WEB/gnx-react/backend/gnx/settings.py changed, reloading.
INFO 2025-09-25 21:42:34,701 autoreload 217666 133732046808512 Watching for file changes with StatReloader
INFO 2025-09-25 21:42:41,170 autoreload 217666 133732046808512 /home/gnx/Desktop/GNX-WEB/gnx-react/backend/gnx/settings.py changed, reloading.
INFO 2025-09-25 21:42:41,614 autoreload 217753 135985857697216 Watching for file changes with StatReloader
INFO 2025-09-25 21:42:50,954 autoreload 217753 135985857697216 /home/gnx/Desktop/GNX-WEB/gnx-react/backend/gnx/settings.py changed, reloading.
INFO 2025-09-25 21:42:51,357 autoreload 217811 132547578885568 Watching for file changes with StatReloader
INFO 2025-09-25 21:43:02,725 autoreload 217811 132547578885568 /home/gnx/Desktop/GNX-WEB/gnx-react/backend/gnx/settings.py changed, reloading.
INFO 2025-09-25 21:43:03,100 autoreload 217980 130293534139840 Watching for file changes with StatReloader
INFO 2025-09-25 21:43:10,410 autoreload 217980 130293534139840 /home/gnx/Desktop/GNX-WEB/gnx-react/backend/gnx/settings.py changed, reloading.
INFO 2025-09-25 21:43:10,757 autoreload 218046 127324681201088 Watching for file changes with StatReloader
INFO 2025-09-25 21:43:12,006 autoreload 218046 127324681201088 /home/gnx/Desktop/GNX-WEB/gnx-react/backend/gnx/settings.py changed, reloading.
INFO 2025-09-25 21:43:12,399 autoreload 218049 129657340978624 Watching for file changes with StatReloader
INFO 2025-09-25 21:43:23,115 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:23,126 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:23,301 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:23,309 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:23,667 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:23,678 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:23,850 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:23,858 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:26,868 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:26,881 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:26,892 basehttp 218049 129657164785344 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:26,910 basehttp 218049 129657164785344 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:26,966 basehttp 218049 129657173178048 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,025 basehttp 218049 129657173178048 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,100 basehttp 218049 129657173178048 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,114 basehttp 218049 129657164785344 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,175 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:27,187 basehttp 218049 129657164785344 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,200 basehttp 218049 129657164785344 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,226 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:27,265 basehttp 218049 129657164785344 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,334 basehttp 218049 129657173178048 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,347 basehttp 218049 129657164785344 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:27,367 basehttp 218049 129657173178048 "GET /api/about/page/ HTTP/1.1" 200 5073
INFO 2025-09-25 21:43:32,103 basehttp 218049 129657156392640 "GET /api/services/ HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:32,213 basehttp 218049 129656942491328 "GET /api/services/cloud-migration-devops/ HTTP/1.1" 200 3459
INFO 2025-09-25 21:43:32,538 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:32,565 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:32,927 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:32,960 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:57,143 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:57,152 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:57,354 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:57,365 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:57,782 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:57,798 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:57,971 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882
INFO 2025-09-25 21:43:57,983 basehttp 218049 129657173178048 "GET /api/services/?ordering=display_order&page=1 HTTP/1.1" 200 6882

View File

@@ -75,10 +75,10 @@ const AboutBanner = () => {
{/* Animated Code Lines */}
<div className="code-animation">
<div className="code-line line-1">
<span className="code-keyword">const</span> enterprise = <span className="code-string">'mission-critical'</span>;
<span className="code-keyword">const</span> enterprise = <span className="code-string">&apos;mission-critical&apos;</span>;
</div>
<div className="code-line line-2">
<span className="code-keyword">if</span> (security.level === <span className="code-string">'enterprise'</span>) &#123;
<span className="code-keyword">if</span> (security.level === <span className="code-string">&apos;enterprise&apos;</span>) &#123;
</div>
<div className="code-line line-3">
&nbsp;&nbsp;deploy<span className="code-function">()</span>;

View File

@@ -0,0 +1,17 @@
"use client";
import { ReactNode } from "react";
import Preloader from "./Preloader";
interface LayoutWrapperProps {
children: ReactNode;
}
const LayoutWrapper = ({ children }: LayoutWrapperProps) => {
return (
<Preloader>
{children}
</Preloader>
);
};
export default LayoutWrapper;

View File

@@ -0,0 +1,387 @@
"use client";
import { useState, useEffect } from "react";
import { usePathname } from "next/navigation";
import Image from "next/image";
interface PreloaderProps {
children: React.ReactNode;
}
const Preloader = ({ children }: PreloaderProps) => {
const [isLoading, setIsLoading] = useState(true);
const [progress, setProgress] = useState(0);
const [currentPath, setCurrentPath] = useState("");
const pathname = usePathname();
// Debug mode - set to true to see console logs
const DEBUG = false;
// Skip preloader for faster development/testing (set to true to disable preloader)
const SKIP_PRELOADER = false;
// Fast mode - set to true for even faster loading (200ms total)
const FAST_MODE = true;
useEffect(() => {
// Only show preloader if path has changed or it's initial load
if (currentPath !== pathname) {
if (DEBUG) console.log('Preloader: Starting transition from', currentPath, 'to', pathname);
setIsLoading(true);
setProgress(0);
// Simulate loading progress - faster and more responsive
const progressInterval = setInterval(() => {
setProgress((prev) => {
if (prev >= 85) {
clearInterval(progressInterval);
return 85;
}
return prev + Math.random() * 25 + 10; // Faster progress increments
});
}, 50); // Reduced interval from 100ms to 50ms for smoother animation
// Complete loading much faster - adjust timing based on FAST_MODE
const loadingDuration = FAST_MODE ? 200 : 400;
const fadeOutDuration = FAST_MODE ? 50 : 100;
const completeTimer = setTimeout(() => {
setProgress(100);
setTimeout(() => {
if (DEBUG) console.log('Preloader: Transition complete');
setIsLoading(false);
setCurrentPath(pathname);
}, fadeOutDuration);
}, loadingDuration);
// Fallback: Force complete after reasonable time
const fallbackDuration = FAST_MODE ? 800 : 1500;
const fallbackTimer = setTimeout(() => {
if (DEBUG) console.log('Preloader: Fallback triggered - force completing');
setIsLoading(false);
setCurrentPath(pathname);
setProgress(100);
}, fallbackDuration);
return () => {
clearInterval(progressInterval);
clearTimeout(completeTimer);
clearTimeout(fallbackTimer);
};
}
}, [pathname, currentPath, DEBUG, FAST_MODE]);
// Skip preloader entirely if SKIP_PRELOADER is true
if (SKIP_PRELOADER) {
return <>{children}</>;
}
// Don't show preloader if not loading
if (!isLoading) {
return <>{children}</>;
}
return (
<>
<div className="preloader-overlay">
<div className="preloader-container">
{/* Logo with shine effect */}
<div className="preloader-logo">
<div className="logo-wrapper">
<Image
src="/images/logo.png"
alt="GNX Logo"
width={80}
height={60}
className="logo-image"
priority
/>
<div className="shine-effect"></div>
</div>
</div>
{/* Progress bar */}
<div className="progress-container">
<div className="progress-bar">
<div
className="progress-fill"
style={{ width: `${progress}%` }}
></div>
</div>
<div className="progress-text">{Math.round(progress)}%</div>
</div>
{/* Loading text */}
<div className="loading-text">
<span className="loading-dots">
<span>.</span>
<span>.</span>
<span>.</span>
</span>
</div>
{/* Enterprise tagline */}
<div className="enterprise-tagline">
<span>Enterprise Solutions</span>
<span>Excellence in Every Project</span>
</div>
</div>
</div>
<style jsx>{`
.preloader-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 50%, #0f0f0f 100%);
display: flex;
align-items: center;
justify-content: center;
z-index: 9999;
backdrop-filter: blur(10px);
}
.preloader-container {
display: flex;
flex-direction: column;
align-items: center;
gap: 2rem;
text-align: center;
}
.preloader-logo {
position: relative;
animation: logoFloat 2s ease-in-out infinite;
}
.logo-wrapper {
position: relative;
display: inline-block;
padding: 1.5rem;
border-radius: 50%;
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.1);
overflow: hidden;
transition: all 0.2s ease; /* Faster transitions */
}
.logo-image {
position: relative;
z-index: 2;
filter: brightness(1.1);
transition: all 0.2s ease; /* Faster transitions */
}
.shine-effect {
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.4),
transparent
);
animation: shine 2s infinite;
z-index: 3;
}
.progress-container {
width: 200px;
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.progress-bar {
width: 100%;
height: 3px;
background: rgba(255, 255, 255, 0.1);
border-radius: 2px;
overflow: hidden;
position: relative;
}
.progress-fill {
height: 100%;
background: linear-gradient(90deg, #4f46e5, #7c3aed, #ec4899);
border-radius: 2px;
transition: width 0.2s ease; /* Faster progress bar animation */
position: relative;
overflow: hidden;
}
.progress-fill::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.6),
transparent
);
animation: progressShine 1.5s infinite;
}
.progress-text {
font-size: 0.875rem;
color: rgba(255, 255, 255, 0.7);
font-weight: 500;
letter-spacing: 0.05em;
}
.loading-text {
color: rgba(255, 255, 255, 0.6);
font-size: 0.875rem;
font-weight: 400;
letter-spacing: 0.1em;
}
.loading-dots {
display: inline-flex;
gap: 0.25rem;
}
.loading-dots span {
animation: dotPulse 1.4s infinite ease-in-out;
animation-fill-mode: both;
}
.loading-dots span:nth-child(1) {
animation-delay: -0.32s;
}
.loading-dots span:nth-child(2) {
animation-delay: -0.16s;
}
.loading-dots span:nth-child(3) {
animation-delay: 0s;
}
.enterprise-tagline {
display: flex;
flex-direction: column;
gap: 0.25rem;
margin-top: 1rem;
text-align: center;
}
.enterprise-tagline span {
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.5);
font-weight: 300;
letter-spacing: 0.15em;
text-transform: uppercase;
animation: fadeInUp 0.8s ease-out 0.5s both;
}
.enterprise-tagline span:first-child {
animation-delay: 0.7s;
}
.enterprise-tagline span:last-child {
animation-delay: 0.9s;
}
@keyframes logoFloat {
0%, 100% {
transform: translateY(0px);
}
50% {
transform: translateY(-10px);
}
}
@keyframes shine {
0% {
left: -100%;
}
100% {
left: 100%;
}
}
@keyframes progressShine {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
@keyframes dotPulse {
0%, 80%, 100% {
opacity: 0.3;
transform: scale(0.8);
}
40% {
opacity: 1;
transform: scale(1);
}
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Responsive adjustments */
@media (max-width: 768px) {
.preloader-container {
gap: 1.5rem;
}
.logo-wrapper {
padding: 1rem;
}
.logo-image {
width: 60px;
height: 45px;
}
.progress-container {
width: 150px;
}
}
@media (max-width: 480px) {
.preloader-container {
gap: 1rem;
}
.logo-wrapper {
padding: 0.75rem;
}
.logo-image {
width: 50px;
height: 37px;
}
.progress-container {
width: 120px;
}
}
`}</style>
</>
);
};
export default Preloader;

View File

@@ -0,0 +1,106 @@
# Preloader Component Documentation
## Overview
The Preloader component provides a sophisticated, enterprise-grade loading experience for the GNX React application. It features a compact design with the company logo, shine effects, and smooth animations that activate during page transitions.
## Features
### 🎨 Enterprise Design
- **Compact Layout**: Minimal, professional design that doesn't overwhelm users
- **Company Logo**: Features the GNX logo with floating animation
- **Shine Effect**: Animated shine effect that sweeps across the logo periodically
- **Dark Theme**: Professional dark gradient background with subtle transparency
### ⚡ Smart Loading Logic
- **Initial Load**: Shows for 1.5 seconds on first page load
- **Page Transitions**: Activates automatically when navigating between pages
- **Progress Bar**: Realistic loading progress with gradient colors
- **Smooth Transitions**: Fade-in/out animations for seamless user experience
### 📱 Responsive Design
- **Mobile Optimized**: Scales appropriately on all device sizes
- **Touch Friendly**: Optimized for mobile interactions
- **Performance**: Lightweight animations that don't impact performance
## Components
### 1. Preloader.tsx
Main preloader component that handles the loading UI and animations.
**Key Features:**
- Logo with shine effect animation
- Progress bar with gradient fill
- Loading dots animation
- Enterprise tagline
- Responsive design
### 2. LayoutWrapper.tsx
Wrapper component that integrates the preloader with the main layout.
### 3. usePageTransition.ts
Custom hook that manages page transition states and progress.
**Hook Methods:**
- `isTransitioning`: Boolean indicating if a transition is active
- `progress`: Current loading progress (0-100)
- `startTransition()`: Initiates a new page transition
- `updateProgress()`: Updates the loading progress
- `completeTransition()`: Marks transition as complete
## Usage
The preloader is automatically integrated into the main layout and requires no additional setup. It will:
1. **Show on initial page load** for 1.5 seconds
2. **Activate on page navigation** with realistic loading simulation
3. **Display progress** with animated progress bar
4. **Hide smoothly** when loading is complete
## Customization
### Logo
To change the logo, update the image path in the Preloader component:
```tsx
<Image
src="/images/logo.png" // Update this path
alt="GNX Logo"
width={80}
height={60}
className="logo-image"
priority
/>
```
### Colors
The preloader uses CSS custom properties that can be customized:
- Background gradient colors
- Progress bar gradient
- Text colors and opacity
### Timing
Adjust timing in the usePageTransition hook:
- Initial load duration: 1500ms
- Transition duration: 600-1000ms (randomized)
- Progress update interval: 100ms
## Performance Considerations
- **Optimized Animations**: Uses CSS transforms and opacity for smooth performance
- **Minimal DOM**: Lightweight component structure
- **Smart Loading**: Only shows when necessary (transitions)
- **Memory Efficient**: Proper cleanup of timers and intervals
## Browser Support
- **Modern Browsers**: Full support for Chrome, Firefox, Safari, Edge
- **Mobile Browsers**: Optimized for iOS Safari and Chrome Mobile
- **Fallbacks**: Graceful degradation for older browsers
## Future Enhancements
Potential improvements for future versions:
- Custom loading messages per page
- Brand-specific color themes
- Loading state indicators for API calls
- Accessibility improvements (reduced motion support)
- Analytics integration for loading performance

View File

@@ -110,7 +110,7 @@ const OffcanvasMenu = ({
<span className="text-danger">Failed to load services</span>
</li>
) : (
item.submenu.map((subItem, subIndex) => (
item.submenu.map((subItem: any, subIndex: number) => (
<li key={subIndex}>
<Link
href={subItem.path || "#"}

View File

@@ -109,7 +109,7 @@ export interface AboutPageData {
journey: AboutJourney;
}
class AboutService {
class AboutServiceAPI {
private baseUrl = `${API_BASE_URL}/api/about`;
/**
@@ -330,5 +330,5 @@ class AboutService {
}
// Export a singleton instance
export const aboutService = new AboutService();
export const aboutService = new AboutServiceAPI();
export default aboutService;

View File

@@ -39,10 +39,10 @@ deactivate nondestructive
if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then
# transform D:\path\to\venv to /d/path/to/venv on MSYS
# and to /cygdrive/d/path/to/venv on Cygwin
export VIRTUAL_ENV=$(cygpath /home/gnx/Desktop/gnx-react/venv)
export VIRTUAL_ENV=$(cygpath /home/gnx/Desktop/GNX-WEB/gnx-react/venv)
else
# use the path as-is
export VIRTUAL_ENV=/home/gnx/Desktop/gnx-react/venv
export VIRTUAL_ENV=/home/gnx/Desktop/GNX-WEB/gnx-react/venv
fi
_OLD_VIRTUAL_PATH="$PATH"

View File

@@ -9,7 +9,7 @@ alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PA
# Unset irrelevant variables.
deactivate nondestructive
setenv VIRTUAL_ENV /home/gnx/Desktop/gnx-react/venv
setenv VIRTUAL_ENV /home/gnx/Desktop/GNX-WEB/gnx-react/venv
set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/"bin":$PATH"

View File

@@ -33,7 +33,7 @@ end
# Unset irrelevant variables.
deactivate nondestructive
set -gx VIRTUAL_ENV /home/gnx/Desktop/gnx-react/venv
set -gx VIRTUAL_ENV /home/gnx/Desktop/GNX-WEB/gnx-react/venv
set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/"bin $PATH

View File

@@ -1,4 +1,4 @@
#!/home/gnx/Desktop/gnx-react/venv/bin/python3
#!/home/gnx/Desktop/GNX-WEB/gnx-react/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

View File

@@ -1,4 +1,4 @@
#!/home/gnx/Desktop/gnx-react/venv/bin/python3
#!/home/gnx/Desktop/GNX-WEB/gnx-react/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

View File

@@ -1,8 +0,0 @@
#!/home/gnx/Desktop/gnx-react/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from charset_normalizer.cli import cli_detect
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(cli_detect())

View File

@@ -1,4 +1,4 @@
#!/home/gnx/Desktop/gnx-react/venv/bin/python3
#!/home/gnx/Desktop/GNX-WEB/gnx-react/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

View File

@@ -1,4 +1,4 @@
#!/home/gnx/Desktop/gnx-react/venv/bin/python3
#!/home/gnx/Desktop/GNX-WEB/gnx-react/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

View File

@@ -1,4 +1,4 @@
#!/home/gnx/Desktop/gnx-react/venv/bin/python3
#!/home/gnx/Desktop/GNX-WEB/gnx-react/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

View File

@@ -1,4 +1,4 @@
#!/home/gnx/Desktop/gnx-react/venv/bin/python3
#!/home/gnx/Desktop/GNX-WEB/gnx-react/venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

View File

@@ -1,4 +1,4 @@
../../../bin/django-admin,sha256=KdVNV5o2Pl7TS_NeVQbXFND6lZWVG9WiEsmtLJt1WA8,291
../../../bin/django-admin,sha256=L5jtZEgc2NRgQQEtL0lqHFe3SHIfvpoPDKdws-MTQlI,299
Django-4.2.7.dist-info/AUTHORS,sha256=XnaAZyQQxFczdrn4l-fUAmmysNq_u0CVJ5wKIYN4ynw,41362
Django-4.2.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
Django-4.2.7.dist-info/LICENSE,sha256=uEZBXRtRTpwd_xSiLeuQbXlLxUbKYSn5UKGM0JHipmk,1552

Some files were not shown because too many files have changed in this diff Show More