update
This commit is contained in:
parent
98e13df2f6
commit
f2e823c5c3
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
231
logs/django.log
231
logs/django.log
@ -84991,3 +84991,234 @@ WARNING 2025-11-06 14:52:05,540 basehttp 82325 6214938624 "GET /.well-known/apps
|
||||
WARNING 2025-11-06 14:52:05,553 log 82325 6214938624 Not Found: /.well-known/appspecific/com.chrome.devtools.json
|
||||
WARNING 2025-11-06 14:52:05,553 basehttp 82325 6214938624 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 3165
|
||||
INFO 2025-11-06 14:52:11,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:52:41,295 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 14:52:43,512 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
ERROR 2025-11-06 14:52:53,550 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
INFO 2025-11-06 14:53:11,300 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:53:41,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:54:11,292 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 14:54:31,096 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
INFO 2025-11-06 14:54:41,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:55:11,300 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:55:41,300 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 14:55:43,882 tasks 76869 8426217792 Appointment 69dcd286-66b4-4619-9870-fda6fe206ff3 not found
|
||||
INFO 2025-11-06 14:56:11,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:56:41,293 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:57:11,301 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 14:57:25,814 tasks 76869 8426217792 Appointment 36b67a10-fe1e-41a7-8f62-0b0ca127c128 not found
|
||||
INFO 2025-11-06 14:57:41,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:58:11,294 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:58:41,300 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:59:11,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 14:59:41,301 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:00:00,008 tasks 76869 8426217792 Radiology results sync started
|
||||
INFO 2025-11-06 15:00:00,008 tasks 76869 8426217792 Radiology results sync completed: {'status': 'success', 'new_studies': 0, 'new_reports': 0, 'errors': 0, 'timestamp': '2025-11-06 12:00:00.008395+00:00'}
|
||||
INFO 2025-11-06 15:00:00,013 tasks 76869 8426217792 Lab results sync started
|
||||
INFO 2025-11-06 15:00:00,013 tasks 76869 8426217792 Lab results sync completed: {'status': 'success', 'new_results': 0, 'updated_results': 0, 'errors': 0, 'timestamp': '2025-11-06 12:00:00.013443+00:00'}
|
||||
INFO 2025-11-06 15:00:11,295 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:00:41,301 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:01:11,301 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:01:41,302 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:02:11,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:02:41,298 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:03:11,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 15:03:32,068 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found
|
||||
INFO 2025-11-06 15:03:41,300 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 15:04:11,154 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found
|
||||
INFO 2025-11-06 15:04:11,289 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:04:41,301 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:05:11,299 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:05:41,298 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 15:05:51,656 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
INFO 2025-11-06 15:05:52,338 basehttp 82325 6214938624 "GET /en/notifications/api/dropdown/ HTTP/1.1" 200 1005
|
||||
INFO 2025-11-06 15:06:08,956 basehttp 82325 6214938624 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/ HTTP/1.1" 200 31609
|
||||
INFO 2025-11-06 15:06:08,992 basehttp 82325 6214938624 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 15:06:15,806 log 82325 6214938624 Internal Server Error: /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/complete/
|
||||
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/django/core/handlers/base.py", line 197, in _get_response
|
||||
response = wrapped_callback(request, *callback_args, **callback_kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
|
||||
return self.dispatch(request, *args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/contrib/auth/mixins.py", line 73, in dispatch
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/contrib/auth/mixins.py", line 135, in dispatch
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 144, in dispatch
|
||||
return handler(request, *args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/views/generic/edit.py", line 202, in get
|
||||
return super().get(request, *args, **kwargs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/views/generic/edit.py", line 142, in get
|
||||
return self.render_to_response(self.get_context_data())
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/views/generic/edit.py", line 72, in get_context_data
|
||||
kwargs["form"] = self.get_form()
|
||||
^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/views/generic/edit.py", line 36, in get_form
|
||||
form_class = self.get_form_class()
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/views/generic/edit.py", line 108, in get_form_class
|
||||
return model_forms.modelform_factory(model, fields=self.fields)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/forms/models.py", line 654, in modelform_factory
|
||||
return type(form)(class_name, (form,), form_class_attrs)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/forms/models.py", line 334, in __new__
|
||||
raise FieldError(message)
|
||||
django.core.exceptions.FieldError: Unknown field(s) (completion_notes) specified for Referral
|
||||
ERROR 2025-11-06 15:06:15,807 basehttp 82325 6214938624 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/complete/ HTTP/1.1" 500 119631
|
||||
WARNING 2025-11-06 15:06:15,840 log 82325 6214938624 Not Found: /favicon.ico
|
||||
WARNING 2025-11-06 15:06:15,840 basehttp 82325 6214938624 "GET /favicon.ico HTTP/1.1" 404 3054
|
||||
INFO 2025-11-06 15:06:54,510 autoreload 82325 8426217792 /Users/marwanalwali/AgdarCentre/referrals/views.py changed, reloading.
|
||||
INFO 2025-11-06 15:06:54,935 autoreload 90704 8426217792 Watching for file changes with StatReloader
|
||||
ERROR 2025-11-06 15:07:07,858 log 90704 6202109952 Internal Server Error: /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/complete/
|
||||
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/django/core/handlers/base.py", line 220, in _get_response
|
||||
response = response.render()
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render
|
||||
self.content = self.rendered_content
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/response.py", line 90, in rendered_content
|
||||
template = self.resolve_template(self.template_name)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/response.py", line 72, in resolve_template
|
||||
return select_template(template, using=self.using)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/loader.py", line 47, in select_template
|
||||
raise TemplateDoesNotExist(", ".join(template_name_list), chain=chain)
|
||||
django.template.exceptions.TemplateDoesNotExist: referrals/referral_complete.html
|
||||
ERROR 2025-11-06 15:07:07,858 basehttp 90704 6202109952 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/complete/ HTTP/1.1" 500 94029
|
||||
ERROR 2025-11-06 15:07:25,201 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found
|
||||
INFO 2025-11-06 15:07:50,027 autoreload 90704 8426217792 /Users/marwanalwali/AgdarCentre/referrals/views.py changed, reloading.
|
||||
INFO 2025-11-06 15:07:50,303 autoreload 91192 8426217792 Watching for file changes with StatReloader
|
||||
INFO 2025-11-06 15:08:03,872 basehttp 91192 6171914240 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/complete/ HTTP/1.1" 200 36263
|
||||
INFO 2025-11-06 15:08:03,884 basehttp 91192 6171914240 "GET /static/plugins/select2/css/select2.min.css HTTP/1.1" 200 16263
|
||||
INFO 2025-11-06 15:08:03,885 basehttp 91192 6188740608 "GET /static/plugins/select2/dist/js/select2.min.js HTTP/1.1" 200 70851
|
||||
INFO 2025-11-06 15:08:03,905 basehttp 91192 6188740608 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:08:19,489 basehttp 91192 6188740608 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:08:20,634 basehttp 91192 6188740608 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/ HTTP/1.1" 200 31609
|
||||
INFO 2025-11-06 15:08:20,667 basehttp 91192 6188740608 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:08:22,399 basehttp 91192 6188740608 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/complete/ HTTP/1.1" 200 36263
|
||||
INFO 2025-11-06 15:08:22,435 basehttp 91192 6188740608 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 15:08:22,765 tasks 76869 8426217792 Appointment f10d4cf7-f909-486f-bc21-6b5ff87374c7 not found
|
||||
ERROR 2025-11-06 15:08:41,238 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found
|
||||
INFO 2025-11-06 15:08:50,677 basehttp 91192 6188740608 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:09:20,680 basehttp 91192 6188740608 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 15:09:45,707 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
INFO 2025-11-06 15:09:50,681 basehttp 91192 6188740608 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:10:20,668 basehttp 91192 6188740608 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:10:41,026 autoreload 91192 8426217792 /Users/marwanalwali/AgdarCentre/referrals/views.py changed, reloading.
|
||||
INFO 2025-11-06 15:10:41,369 autoreload 92576 8426217792 Watching for file changes with StatReloader
|
||||
ERROR 2025-11-06 15:10:47,597 tasks 70301 8426217792 Appointment b7386e99-0cbb-420c-9fa8-13a2200e5715 not found
|
||||
ERROR 2025-11-06 15:10:47,597 tasks 76869 8426217792 Appointment b5a77fcd-5a4b-4e96-9a68-fd3018073de1 not found
|
||||
INFO 2025-11-06 15:10:50,675 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:11:05,674 basehttp 92576 6127595520 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/ HTTP/1.1" 200 31609
|
||||
INFO 2025-11-06 15:11:05,711 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:11:06,651 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:11:07,329 basehttp 92576 6127595520 "GET /en/referrals/ HTTP/1.1" 200 60832
|
||||
INFO 2025-11-06 15:11:07,368 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:11:10,699 basehttp 92576 6127595520 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/ HTTP/1.1" 200 31609
|
||||
INFO 2025-11-06 15:11:10,726 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:11:11,875 basehttp 92576 6127595520 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/complete/ HTTP/1.1" 302 0
|
||||
INFO 2025-11-06 15:11:11,884 basehttp 92576 6127595520 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/ HTTP/1.1" 200 31768
|
||||
INFO 2025-11-06 15:11:11,914 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:11:18,569 basehttp 92576 6127595520 "GET /en/dashboard/ HTTP/1.1" 200 54259
|
||||
INFO 2025-11-06 15:11:18,578 basehttp 92576 6127595520 "GET /static/plugins/apexcharts/dist/apexcharts.min.js HTTP/1.1" 200 574941
|
||||
INFO 2025-11-06 15:11:18,592 basehttp 92576 6127595520 "GET /static/css/saudiriyalsymbol.woff2 HTTP/1.1" 200 720
|
||||
INFO 2025-11-06 15:11:18,607 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 15:11:34,554 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
INFO 2025-11-06 15:11:48,616 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:12:17,369 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:12:29,519 basehttp 92576 6127595520 "GET /en/referrals/a4dcd79c-7eb8-4d89-a723-63b24d5a0fb8/ HTTP/1.1" 200 31448
|
||||
INFO 2025-11-06 15:12:30,365 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:12:31,541 basehttp 92576 6127595520 "GET /en/referrals/ HTTP/1.1" 200 60834
|
||||
INFO 2025-11-06 15:12:31,579 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:12:35,674 basehttp 92576 6127595520 "GET /en/referrals/038d9aa4-dbce-4fe3-92f5-e9cc4ac9cb11/ HTTP/1.1" 200 32014
|
||||
INFO 2025-11-06 15:12:35,700 basehttp 92576 6127595520 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
ERROR 2025-11-06 15:12:36,949 log 92576 6127595520 Internal Server Error: /en/referrals/038d9aa4-dbce-4fe3-92f5-e9cc4ac9cb11/accept/
|
||||
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/django/core/handlers/base.py", line 220, in _get_response
|
||||
response = response.render()
|
||||
^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render
|
||||
self.content = self.rendered_content
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/response.py", line 90, in rendered_content
|
||||
template = self.resolve_template(self.template_name)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/response.py", line 72, in resolve_template
|
||||
return select_template(template, using=self.using)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/Users/marwanalwali/AgdarCentre/.venv/lib/python3.12/site-packages/django/template/loader.py", line 47, in select_template
|
||||
raise TemplateDoesNotExist(", ".join(template_name_list), chain=chain)
|
||||
django.template.exceptions.TemplateDoesNotExist: referrals/referral_accept.html
|
||||
ERROR 2025-11-06 15:12:36,950 basehttp 92576 6127595520 "GET /en/referrals/038d9aa4-dbce-4fe3-92f5-e9cc4ac9cb11/accept/ HTTP/1.1" 500 93768
|
||||
INFO 2025-11-06 15:14:05,343 autoreload 92576 8426217792 /Users/marwanalwali/AgdarCentre/referrals/views.py changed, reloading.
|
||||
INFO 2025-11-06 15:14:05,938 autoreload 94289 8426217792 Watching for file changes with StatReloader
|
||||
INFO 2025-11-06 15:14:15,636 basehttp 94289 6190821376 "GET /en/referrals/038d9aa4-dbce-4fe3-92f5-e9cc4ac9cb11/accept/ HTTP/1.1" 302 0
|
||||
INFO 2025-11-06 15:14:15,658 basehttp 94289 6190821376 "GET /en/referrals/038d9aa4-dbce-4fe3-92f5-e9cc4ac9cb11/ HTTP/1.1" 200 32365
|
||||
INFO 2025-11-06 15:14:15,692 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:14:21,372 basehttp 94289 6190821376 "GET /en/referrals/038d9aa4-dbce-4fe3-92f5-e9cc4ac9cb11/complete/ HTTP/1.1" 302 0
|
||||
INFO 2025-11-06 15:14:21,383 basehttp 94289 6190821376 "GET /en/referrals/038d9aa4-dbce-4fe3-92f5-e9cc4ac9cb11/ HTTP/1.1" 200 32202
|
||||
INFO 2025-11-06 15:14:21,415 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:14:36,134 basehttp 94289 6190821376 "GET /en/referrals/ HTTP/1.1" 200 60610
|
||||
INFO 2025-11-06 15:14:36,167 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:14:42,339 basehttp 94289 6190821376 "GET /en/referrals/65e40b91-cfa3-4eb8-97db-1e82392a6169/ HTTP/1.1" 200 31017
|
||||
INFO 2025-11-06 15:14:42,368 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:01,526 basehttp 94289 6190821376 "GET /en/referrals/0df8ecaa-4174-47cd-9fcf-27969dbfc513/ HTTP/1.1" 200 32042
|
||||
INFO 2025-11-06 15:15:01,561 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:04,911 basehttp 94289 6190821376 "GET /en/referrals/0df8ecaa-4174-47cd-9fcf-27969dbfc513/accept/ HTTP/1.1" 302 0
|
||||
INFO 2025-11-06 15:15:04,921 basehttp 94289 6190821376 "GET /en/referrals/0df8ecaa-4174-47cd-9fcf-27969dbfc513/ HTTP/1.1" 200 32393
|
||||
INFO 2025-11-06 15:15:04,944 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:11,391 basehttp 94289 6190821376 "GET /en/referrals/0df8ecaa-4174-47cd-9fcf-27969dbfc513/complete/ HTTP/1.1" 302 0
|
||||
INFO 2025-11-06 15:15:11,406 basehttp 94289 6190821376 "GET /en/referrals/0df8ecaa-4174-47cd-9fcf-27969dbfc513/ HTTP/1.1" 200 32230
|
||||
INFO 2025-11-06 15:15:11,439 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:13,700 basehttp 94289 6190821376 "GET /en/referrals/0df8ecaa-4174-47cd-9fcf-27969dbfc513/ HTTP/1.1" 200 31910
|
||||
INFO 2025-11-06 15:15:14,220 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:16,841 basehttp 94289 6190821376 "GET /en/referrals/ HTTP/1.1" 200 60384
|
||||
INFO 2025-11-06 15:15:16,873 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:22,166 basehttp 94289 6190821376 "GET /en/referrals/e70c1ace-5ecb-4148-bf42-9c6d8cd6561a/ HTTP/1.1" 200 31614
|
||||
INFO 2025-11-06 15:15:22,194 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:23,032 basehttp 94289 6190821376 "GET /en/referrals/e70c1ace-5ecb-4148-bf42-9c6d8cd6561a/complete/ HTTP/1.1" 302 0
|
||||
INFO 2025-11-06 15:15:23,048 basehttp 94289 6190821376 "GET /en/referrals/e70c1ace-5ecb-4148-bf42-9c6d8cd6561a/ HTTP/1.1" 200 31773
|
||||
INFO 2025-11-06 15:15:23,081 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:25,358 basehttp 94289 6190821376 "GET /en/referrals/e70c1ace-5ecb-4148-bf42-9c6d8cd6561a/ HTTP/1.1" 200 31453
|
||||
INFO 2025-11-06 15:15:26,740 basehttp 94289 6190821376 "GET /en/referrals/ HTTP/1.1" 200 60386
|
||||
INFO 2025-11-06 15:15:26,776 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:37,808 basehttp 94289 6190821376 "GET /en/referrals/148c8163-7038-4b5b-b737-50138f9171d3/ HTTP/1.1" 200 31036
|
||||
INFO 2025-11-06 15:15:37,835 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:50,024 basehttp 94289 6190821376 "GET /en/dashboard/ HTTP/1.1" 200 54259
|
||||
INFO 2025-11-06 15:15:50,074 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:53,403 basehttp 94289 6190821376 "GET /en/finance/packages/ HTTP/1.1" 200 36253
|
||||
INFO 2025-11-06 15:15:53,429 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:15:57,163 basehttp 94289 6190821376 "GET /en/finance/packages/create/ HTTP/1.1" 200 46283
|
||||
INFO 2025-11-06 15:15:57,198 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:16:06,882 basehttp 94289 6190821376 "GET /en/dashboard/ HTTP/1.1" 200 54259
|
||||
INFO 2025-11-06 15:16:06,919 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:16:36,933 basehttp 94289 6190821376 "GET /en/notifications/api/unread-count/ HTTP/1.1" 200 19
|
||||
INFO 2025-11-06 15:16:38,795 basehttp 94289 6190821376 "GET /en/referrals/external/ HTTP/1.1" 200 12947
|
||||
ERROR 2025-11-06 15:16:45,938 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
ERROR 2025-11-06 15:17:58,903 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
INFO 2025-11-06 15:18:24,128 basehttp 94289 6190821376 "GET /en/referrals/external/ HTTP/1.1" 200 13099
|
||||
ERROR 2025-11-06 15:18:50,288 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
ERROR 2025-11-06 15:18:50,341 tasks 76869 8426217792 Appointment c60c62dc-20a8-4e2a-85e9-96e82744d880 not found
|
||||
ERROR 2025-11-06 15:23:14,282 tasks 76869 8426217792 Appointment 236f3e70-6d16-466f-a04f-eaf12cee9ba2 not found
|
||||
ERROR 2025-11-06 15:23:14,285 tasks 70301 8426217792 Appointment c61467c7-19c0-454f-9b46-9b011f167dbf not found
|
||||
ERROR 2025-11-06 15:25:43,908 tasks 76869 8426217792 Appointment b0c611dd-314f-4f02-8011-ac5519bdd525 not found
|
||||
ERROR 2025-11-06 15:27:25,850 tasks 76869 8426217792 Appointment b7386e99-0cbb-420c-9fa8-13a2200e5715 not found
|
||||
ERROR 2025-11-06 15:27:25,850 tasks 70301 8426217792 Appointment b5a77fcd-5a4b-4e96-9a68-fd3018073de1 not found
|
||||
|
||||
Binary file not shown.
@ -34,6 +34,11 @@
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
.page-header .tenant-logo {
|
||||
max-width: 150px;
|
||||
max-height: 80px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.page-header h1 {
|
||||
margin: 0;
|
||||
font-size: 2rem;
|
||||
@ -78,6 +83,9 @@
|
||||
<div class="referral-container">
|
||||
<!-- Page Header -->
|
||||
<div class="page-header">
|
||||
{% if tenant and tenant.logo %}
|
||||
<img src="{{ tenant.logo.url }}" alt="{{ tenant.name }}" class="tenant-logo">
|
||||
{% endif %}
|
||||
<h1><i class="fas fa-hospital-user me-2"></i>{% trans "External Referral Form" %}</h1>
|
||||
<p>{% if tenant %}{{ tenant.name }}{% else %}{% trans "Agdar Centre" %}{% endif %}</p>
|
||||
</div>
|
||||
|
||||
@ -317,51 +317,40 @@ class ReferralUpdateView(LoginRequiredMixin, RolePermissionMixin, TenantFilterMi
|
||||
return context
|
||||
|
||||
|
||||
class ReferralAcceptView(LoginRequiredMixin, RolePermissionMixin, AuditLogMixin,
|
||||
SuccessMessageMixin, UpdateView):
|
||||
class ReferralAcceptView(LoginRequiredMixin, RolePermissionMixin, TenantFilterMixin, View):
|
||||
"""
|
||||
Accept referral view.
|
||||
|
||||
Features:
|
||||
- Accept pending referral
|
||||
- Add response notes
|
||||
- Update status to ACCEPTED
|
||||
- Redirect to detail page with success message
|
||||
"""
|
||||
model = Referral
|
||||
fields = ['response_notes']
|
||||
template_name = 'referrals/referral_accept.html'
|
||||
success_message = "Referral accepted successfully!"
|
||||
allowed_roles = [User.Role.ADMIN, User.Role.DOCTOR, User.Role.NURSE,
|
||||
User.Role.OT, User.Role.SLP, User.Role.ABA]
|
||||
|
||||
def get_success_url(self):
|
||||
"""Redirect to referral detail."""
|
||||
return reverse_lazy('referrals:referral_detail', kwargs={'pk': self.object.pk})
|
||||
|
||||
def form_valid(self, form):
|
||||
"""Update status to ACCEPTED."""
|
||||
referral = form.instance
|
||||
def get(self, request, *args, **kwargs):
|
||||
"""Mark referral as accepted."""
|
||||
referral = get_object_or_404(Referral, pk=kwargs['pk'], tenant=request.user.tenant)
|
||||
|
||||
# Check if user can accept
|
||||
if referral.status != Referral.Status.PENDING:
|
||||
messages.error(self.request, 'Only pending referrals can be accepted.')
|
||||
messages.error(request, 'Only pending referrals can be accepted.')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
if self.request.user != referral.to_provider and self.request.user.role != User.Role.ADMIN:
|
||||
messages.error(self.request, 'You do not have permission to accept this referral.')
|
||||
if request.user != referral.to_provider and request.user.role != User.Role.ADMIN:
|
||||
messages.error(request, 'You do not have permission to accept this referral.')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
# Update status
|
||||
referral.status = Referral.Status.ACCEPTED
|
||||
referral.response_date = timezone.now().date()
|
||||
referral.responded_at = timezone.now()
|
||||
referral.save()
|
||||
|
||||
# Save
|
||||
response = super().form_valid(form)
|
||||
|
||||
# Send notification to referrer
|
||||
# Send notification to referrer (TODO)
|
||||
self._send_acceptance_notification(referral)
|
||||
|
||||
return response
|
||||
messages.success(request, 'Referral accepted successfully!')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
def _send_acceptance_notification(self, referral):
|
||||
"""Send notification to referrer."""
|
||||
@ -369,51 +358,40 @@ class ReferralAcceptView(LoginRequiredMixin, RolePermissionMixin, AuditLogMixin,
|
||||
pass
|
||||
|
||||
|
||||
class ReferralRejectView(LoginRequiredMixin, RolePermissionMixin, AuditLogMixin,
|
||||
SuccessMessageMixin, UpdateView):
|
||||
class ReferralRejectView(LoginRequiredMixin, RolePermissionMixin, TenantFilterMixin, View):
|
||||
"""
|
||||
Reject referral view.
|
||||
|
||||
Features:
|
||||
- Reject pending referral
|
||||
- Add rejection reason
|
||||
- Update status to REJECTED
|
||||
- Redirect to detail page with message
|
||||
"""
|
||||
model = Referral
|
||||
fields = ['response_notes']
|
||||
template_name = 'referrals/referral_reject.html'
|
||||
success_message = "Referral rejected."
|
||||
allowed_roles = [User.Role.ADMIN, User.Role.DOCTOR, User.Role.NURSE,
|
||||
User.Role.OT, User.Role.SLP, User.Role.ABA]
|
||||
|
||||
def get_success_url(self):
|
||||
"""Redirect to referral detail."""
|
||||
return reverse_lazy('referrals:referral_detail', kwargs={'pk': self.object.pk})
|
||||
|
||||
def form_valid(self, form):
|
||||
"""Update status to REJECTED."""
|
||||
referral = form.instance
|
||||
def get(self, request, *args, **kwargs):
|
||||
"""Mark referral as rejected."""
|
||||
referral = get_object_or_404(Referral, pk=kwargs['pk'], tenant=request.user.tenant)
|
||||
|
||||
# Check if user can reject
|
||||
if referral.status != Referral.Status.PENDING:
|
||||
messages.error(self.request, 'Only pending referrals can be rejected.')
|
||||
messages.error(request, 'Only pending referrals can be rejected.')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
if self.request.user != referral.to_provider and self.request.user.role != User.Role.ADMIN:
|
||||
messages.error(self.request, 'You do not have permission to reject this referral.')
|
||||
if request.user != referral.to_provider and request.user.role != User.Role.ADMIN:
|
||||
messages.error(request, 'You do not have permission to reject this referral.')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
# Update status
|
||||
referral.status = Referral.Status.REJECTED
|
||||
referral.response_date = timezone.now().date()
|
||||
referral.responded_at = timezone.now()
|
||||
referral.save()
|
||||
|
||||
# Save
|
||||
response = super().form_valid(form)
|
||||
|
||||
# Send notification to referrer
|
||||
# Send notification to referrer (TODO)
|
||||
self._send_rejection_notification(referral)
|
||||
|
||||
return response
|
||||
messages.warning(request, 'Referral rejected.')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
def _send_rejection_notification(self, referral):
|
||||
"""Send notification to referrer."""
|
||||
@ -421,51 +399,40 @@ class ReferralRejectView(LoginRequiredMixin, RolePermissionMixin, AuditLogMixin,
|
||||
pass
|
||||
|
||||
|
||||
class ReferralCompleteView(LoginRequiredMixin, RolePermissionMixin, AuditLogMixin,
|
||||
SuccessMessageMixin, UpdateView):
|
||||
class ReferralCompleteView(LoginRequiredMixin, RolePermissionMixin, TenantFilterMixin, View):
|
||||
"""
|
||||
Complete referral view.
|
||||
|
||||
Features:
|
||||
- Mark accepted referral as completed
|
||||
- Add completion notes
|
||||
- Update status to COMPLETED
|
||||
- Redirect to detail page with success message
|
||||
"""
|
||||
model = Referral
|
||||
fields = ['completion_notes']
|
||||
template_name = 'referrals/referral_complete.html'
|
||||
success_message = "Referral marked as completed!"
|
||||
allowed_roles = [User.Role.ADMIN, User.Role.DOCTOR, User.Role.NURSE,
|
||||
User.Role.OT, User.Role.SLP, User.Role.ABA]
|
||||
|
||||
def get_success_url(self):
|
||||
"""Redirect to referral detail."""
|
||||
return reverse_lazy('referrals:referral_detail', kwargs={'pk': self.object.pk})
|
||||
|
||||
def form_valid(self, form):
|
||||
"""Update status to COMPLETED."""
|
||||
referral = form.instance
|
||||
def get(self, request, *args, **kwargs):
|
||||
"""Mark referral as completed."""
|
||||
referral = get_object_or_404(Referral, pk=kwargs['pk'], tenant=request.user.tenant)
|
||||
|
||||
# Check if user can complete
|
||||
if referral.status != Referral.Status.ACCEPTED:
|
||||
messages.error(self.request, 'Only accepted referrals can be completed.')
|
||||
messages.error(request, 'Only accepted referrals can be completed.')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
if self.request.user != referral.to_provider and self.request.user.role != User.Role.ADMIN:
|
||||
messages.error(self.request, 'You do not have permission to complete this referral.')
|
||||
if request.user != referral.to_provider and request.user.role != User.Role.ADMIN:
|
||||
messages.error(request, 'You do not have permission to complete this referral.')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
# Update status
|
||||
referral.status = Referral.Status.COMPLETED
|
||||
referral.completion_date = timezone.now().date()
|
||||
referral.completed_at = timezone.now()
|
||||
referral.save()
|
||||
|
||||
# Save
|
||||
response = super().form_valid(form)
|
||||
|
||||
# Send notification to referrer
|
||||
# Send notification to referrer (TODO)
|
||||
self._send_completion_notification(referral)
|
||||
|
||||
return response
|
||||
messages.success(request, 'Referral marked as completed!')
|
||||
return redirect('referrals:referral_detail', pk=referral.pk)
|
||||
|
||||
def _send_completion_notification(self, referral):
|
||||
"""Send notification to referrer."""
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user