diff --git a/AgdarCentre/__pycache__/settings.cpython-312.pyc b/AgdarCentre/__pycache__/settings.cpython-312.pyc index 85cd4380..9d1f72ae 100644 Binary files a/AgdarCentre/__pycache__/settings.cpython-312.pyc and b/AgdarCentre/__pycache__/settings.cpython-312.pyc differ diff --git a/AgdarCentre/__pycache__/urls.cpython-312.pyc b/AgdarCentre/__pycache__/urls.cpython-312.pyc index 29f7fdb8..7d506b48 100644 Binary files a/AgdarCentre/__pycache__/urls.cpython-312.pyc and b/AgdarCentre/__pycache__/urls.cpython-312.pyc differ diff --git a/AgdarCentre/urls.py b/AgdarCentre/urls.py index d84d139e..745a449c 100644 --- a/AgdarCentre/urls.py +++ b/AgdarCentre/urls.py @@ -14,10 +14,15 @@ from django.conf.urls.i18n import i18n_patterns from .views import switch_language from core import api_consent +# Import landing page view +from core.views import LandingPageView + urlpatterns = [ path('api/v1/', include('AgdarCentre.api_urls')), # Core API endpoints (outside i18n_patterns for AJAX calls) path('api/consent-content/', api_consent.get_consent_content, name='api_consent_content'), + # Public landing page (no language prefix required) + path('', LandingPageView.as_view(), name='landing_page'), ] urlpatterns += i18n_patterns( path("switch_language/", switch_language, name="switch_language"), diff --git a/core/__pycache__/views.cpython-312.pyc b/core/__pycache__/views.cpython-312.pyc index 34b69915..8fa501aa 100644 Binary files a/core/__pycache__/views.cpython-312.pyc and b/core/__pycache__/views.cpython-312.pyc differ diff --git a/core/views.py b/core/views.py index 3728822a..3e141bd3 100644 --- a/core/views.py +++ b/core/views.py @@ -2957,7 +2957,7 @@ class ConsentSendEmailView(LoginRequiredMixin, RolePermissionMixin, View): # PUBLIC LANDING PAGE VIEW # ============================================================================ -class LandingPageView(BaseTemplateView): +class LandingPageView(TemplateView): """ Public landing page for Tenhal platform. No authentication required. diff --git a/db.sqlite3 b/db.sqlite3 index bc9c3349..4c990afb 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/logs/django.log b/logs/django.log index b6db9a13..17ad0dd3 100644 --- a/logs/django.log +++ b/logs/django.log @@ -74884,3 +74884,94 @@ INFO 2025-11-02 19:30:00,007 tasks 16180 8648941888 Radiology results sync start INFO 2025-11-02 19:30:00,008 tasks 16180 8648941888 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-02 16:30:00.008205+00:00'} INFO 2025-11-02 19:30:00,013 tasks 16180 8648941888 Lab results sync started INFO 2025-11-02 19:30:00,013 tasks 16180 8648941888 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-02 16:30:00.013702+00:00'} +INFO 2025-11-02 19:30:20,088 basehttp 96196 6153187328 "GET /en/ HTTP/1.1" 200 46161 +WARNING 2025-11-02 19:30:20,160 log 96196 6153187328 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-11-02 19:30:20,160 basehttp 96196 6153187328 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 16668 +INFO 2025-11-02 19:31:30,864 autoreload 96196 8648941888 /Users/marwanalwali/AgdarCentre/AgdarCentre/urls.py changed, reloading. +INFO 2025-11-02 19:31:31,175 autoreload 97242 8648941888 Watching for file changes with StatReloader +ERROR 2025-11-02 19:31:33,070 log 97242 6171717632 Internal Server Error: /en/ +Traceback (most recent call last): + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/urls/base.py", line 81, in reverse + extra, resolver = resolver.namespace_dict[ns] + ~~~~~~~~~~~~~~~~~~~~~~~^^^^ +KeyError: 'djdt' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/debug_toolbar/middleware.py", line 145, in __call__ + return self._postprocess(request, response, toolbar) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/debug_toolbar/middleware.py", line 187, in _postprocess + rendered = toolbar.render_toolbar() + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/debug_toolbar/toolbar.py", line 93, in render_toolbar + return render_to_string("debug_toolbar/base.html", context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/test/utils.py", line 114, in instrumented_test_render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/base.py", line 1016, in render + return SafeString("".join([node.render_annotated(context) for node in self])) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/base.py", line 1016, in render + return SafeString("".join([node.render_annotated(context) for node in self])) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 480, in render + url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/urls/base.py", line 92, in reverse + raise NoReverseMatch("%s is not a registered namespace" % key) +django.urls.exceptions.NoReverseMatch: 'djdt' is not a registered namespace +ERROR 2025-11-02 19:31:33,071 basehttp 97242 6171717632 "GET /en/ HTTP/1.1" 500 141057 +ERROR 2025-11-02 19:32:03,745 tasks 16180 8648941888 Appointment 7d8e8281-f28e-47b2-bae6-04647dd5204d not found +ERROR 2025-11-02 19:32:04,013 tasks 16180 8648941888 Appointment 7d8e8281-f28e-47b2-bae6-04647dd5204d not found +INFO 2025-11-02 19:32:52,511 autoreload 97242 8648941888 /Users/marwanalwali/AgdarCentre/AgdarCentre/settings.py changed, reloading. +INFO 2025-11-02 19:32:52,802 autoreload 97842 8648941888 Watching for file changes with StatReloader +INFO 2025-11-02 19:33:17,678 autoreload 98129 8648941888 Watching for file changes with StatReloader +INFO 2025-11-02 19:33:20,665 basehttp 98129 6159757312 "GET /en/ HTTP/1.1" 200 46161 +INFO 2025-11-02 19:34:06,800 basehttp 98129 6159757312 "GET /en/admin/notifications/notification/ HTTP/1.1" 302 0 +INFO 2025-11-02 19:34:06,864 basehttp 98129 6159757312 "GET /en/admin/login/?next=/en/admin/notifications/notification/ HTTP/1.1" 200 17791 +INFO 2025-11-02 19:34:06,880 basehttp 98129 6159757312 "GET /static/admin/css/login.css HTTP/1.1" 200 951 +INFO 2025-11-02 19:34:08,925 basehttp 98129 6159757312 "GET /en/ HTTP/1.1" 200 46162 +INFO 2025-11-02 19:34:10,074 basehttp 98129 6159757312 "GET /en/ HTTP/1.1" 200 46162 +ERROR 2025-11-02 19:36:13,701 tasks 16180 8648941888 Appointment e494458f-a5fd-481b-97a3-c14466b6f1a1 not found +ERROR 2025-11-02 19:36:13,706 tasks 16172 8648941888 Appointment e494458f-a5fd-481b-97a3-c14466b6f1a1 not found +ERROR 2025-11-02 19:36:13,711 tasks 16180 8648941888 Appointment e494458f-a5fd-481b-97a3-c14466b6f1a1 not found +ERROR 2025-11-02 19:36:13,821 tasks 16180 8648941888 Appointment e494458f-a5fd-481b-97a3-c14466b6f1a1 not found +ERROR 2025-11-02 19:36:13,830 tasks 16180 8648941888 Appointment e494458f-a5fd-481b-97a3-c14466b6f1a1 not found +INFO 2025-11-02 19:36:31,694 autoreload 98129 8648941888 /Users/marwanalwali/AgdarCentre/core/views.py changed, reloading. +INFO 2025-11-02 19:36:32,056 autoreload 99642 8648941888 Watching for file changes with StatReloader +ERROR 2025-11-02 19:37:00,565 tasks 16180 8648941888 Appointment e494458f-a5fd-481b-97a3-c14466b6f1a1 not found +ERROR 2025-11-02 19:38:01,232 tasks 16180 8648941888 Appointment e494458f-a5fd-481b-97a3-c14466b6f1a1 not found +INFO 2025-11-02 19:38:22,240 autoreload 99642 8648941888 /Users/marwanalwali/AgdarCentre/AgdarCentre/urls.py changed, reloading. +INFO 2025-11-02 19:38:22,604 autoreload 1155 8648941888 Watching for file changes with StatReloader +INFO 2025-11-02 19:39:23,337 basehttp 1155 6168850432 "GET / HTTP/1.1" 200 46155 +INFO 2025-11-02 19:39:41,136 basehttp 1155 6168850432 "GET / HTTP/1.1" 200 46155 +INFO 2025-11-02 19:39:51,361 basehttp 1155 12918534144 "GET / HTTP/1.1" 200 46155 +INFO 2025-11-02 19:39:51,452 basehttp 1155 12918534144 "GET /static/css/one-page-parallax/app.min.css HTTP/1.1" 304 0 +INFO 2025-11-02 19:39:51,486 basehttp 1155 12918534144 "GET /static/img/bg/bg-home.jpg HTTP/1.1" 304 0 +INFO 2025-11-02 19:39:51,488 basehttp 1155 12918534144 "GET /static/img/bg/bg-milestone.jpg HTTP/1.1" 304 0 +INFO 2025-11-02 19:39:51,489 basehttp 1155 12935360512 "GET /static/img/bg/bg-quote.jpg HTTP/1.1" 304 0 +INFO 2025-11-02 19:39:51,490 basehttp 1155 12918534144 "GET /static/img/bg/bg-client.jpg HTTP/1.1" 304 0