diff --git a/.DS_Store b/.DS_Store index feb9a3ee..12d6c384 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/accounts/migrations/0001_initial.py b/accounts/migrations/0001_initial.py index 6d84d7ea..bdd6329e 100644 --- a/accounts/migrations/0001_initial.py +++ b/accounts/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.contrib.auth.models import django.contrib.auth.validators diff --git a/accounts/migrations/0002_initial.py b/accounts/migrations/0002_initial.py index c3efcec5..507b4a6b 100644 --- a/accounts/migrations/0002_initial.py +++ b/accounts/migrations/0002_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion from django.conf import settings diff --git a/accounts/migrations/__pycache__/0001_initial.cpython-312.pyc b/accounts/migrations/__pycache__/0001_initial.cpython-312.pyc index 686bf65d..9eeff7d2 100644 Binary files a/accounts/migrations/__pycache__/0001_initial.cpython-312.pyc and b/accounts/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/accounts/migrations/__pycache__/0002_initial.cpython-312.pyc b/accounts/migrations/__pycache__/0002_initial.cpython-312.pyc index 23377749..b831cc21 100644 Binary files a/accounts/migrations/__pycache__/0002_initial.cpython-312.pyc and b/accounts/migrations/__pycache__/0002_initial.cpython-312.pyc differ diff --git a/analytics/migrations/0001_initial.py b/analytics/migrations/0001_initial.py index 1327241a..f2108876 100644 --- a/analytics/migrations/0001_initial.py +++ b/analytics/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -207,6 +207,26 @@ class Migration(migrations.Migration): ), ), ("is_active", models.BooleanField(default=True)), + ( + "last_test_status", + models.CharField( + choices=[ + ("PENDING", "Pending"), + ("RUNNING", "Running"), + ("SUCCESS", "Success"), + ("FAILURE", "Failure"), + ], + default="PENDING", + max_length=20, + ), + ), + ("last_test_start_at", models.DateTimeField(blank=True, null=True)), + ("last_test_end_at", models.DateTimeField(blank=True, null=True)), + ( + "last_test_duration_seconds", + models.PositiveIntegerField(blank=True, null=True), + ), + ("last_test_error_message", models.TextField(blank=True)), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ], diff --git a/analytics/migrations/0002_initial.py b/analytics/migrations/0002_initial.py index e7d17731..6c2a4937 100644 --- a/analytics/migrations/0002_initial.py +++ b/analytics/migrations/0002_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion from django.conf import settings diff --git a/analytics/migrations/0003_datasource_last_test_duration_seconds_and_more.py b/analytics/migrations/0003_datasource_last_test_duration_seconds_and_more.py deleted file mode 100644 index 1fe3fb2b..00000000 --- a/analytics/migrations/0003_datasource_last_test_duration_seconds_and_more.py +++ /dev/null @@ -1,47 +0,0 @@ -# Generated by Django 5.2.4 on 2025-08-04 17:52 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("analytics", "0002_initial"), - ] - - operations = [ - migrations.AddField( - model_name="datasource", - name="last_test_duration_seconds", - field=models.PositiveIntegerField(blank=True, null=True), - ), - migrations.AddField( - model_name="datasource", - name="last_test_end_at", - field=models.DateTimeField(blank=True, null=True), - ), - migrations.AddField( - model_name="datasource", - name="last_test_error_message", - field=models.TextField(blank=True), - ), - migrations.AddField( - model_name="datasource", - name="last_test_start_at", - field=models.DateTimeField(blank=True, null=True), - ), - migrations.AddField( - model_name="datasource", - name="last_test_status", - field=models.CharField( - choices=[ - ("PENDING", "Pending"), - ("RUNNING", "Running"), - ("SUCCESS", "Success"), - ("FAILURE", "Failure"), - ], - default="PENDING", - max_length=20, - ), - ), - ] diff --git a/analytics/migrations/__pycache__/0001_initial.cpython-312.pyc b/analytics/migrations/__pycache__/0001_initial.cpython-312.pyc index 679a428e..fb85ad29 100644 Binary files a/analytics/migrations/__pycache__/0001_initial.cpython-312.pyc and b/analytics/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/analytics/migrations/__pycache__/0002_initial.cpython-312.pyc b/analytics/migrations/__pycache__/0002_initial.cpython-312.pyc index e8933672..9c0b3940 100644 Binary files a/analytics/migrations/__pycache__/0002_initial.cpython-312.pyc and b/analytics/migrations/__pycache__/0002_initial.cpython-312.pyc differ diff --git a/analytics/migrations/__pycache__/0003_datasource_last_test_duration_seconds_and_more.cpython-312.pyc b/analytics/migrations/__pycache__/0003_datasource_last_test_duration_seconds_and_more.cpython-312.pyc deleted file mode 100644 index 1b4ae90f..00000000 Binary files a/analytics/migrations/__pycache__/0003_datasource_last_test_duration_seconds_and_more.cpython-312.pyc and /dev/null differ diff --git a/appointments/__pycache__/flows.cpython-312.pyc b/appointments/__pycache__/flows.cpython-312.pyc index 218b52df..82d1ece0 100644 Binary files a/appointments/__pycache__/flows.cpython-312.pyc and b/appointments/__pycache__/flows.cpython-312.pyc differ diff --git a/appointments/__pycache__/urls.cpython-312.pyc b/appointments/__pycache__/urls.cpython-312.pyc index 23aa17b5..2f9f16dc 100644 Binary files a/appointments/__pycache__/urls.cpython-312.pyc and b/appointments/__pycache__/urls.cpython-312.pyc differ diff --git a/appointments/__pycache__/views.cpython-312.pyc b/appointments/__pycache__/views.cpython-312.pyc index 8992cf75..ee55f242 100644 Binary files a/appointments/__pycache__/views.cpython-312.pyc and b/appointments/__pycache__/views.cpython-312.pyc differ diff --git a/appointments/migrations/0001_initial.py b/appointments/migrations/0001_initial.py index b9c2424a..bfb983fd 100644 --- a/appointments/migrations/0001_initial.py +++ b/appointments/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion diff --git a/appointments/migrations/0002_initial.py b/appointments/migrations/0002_initial.py index 4a4093c9..cc81bb00 100644 --- a/appointments/migrations/0002_initial.py +++ b/appointments/migrations/0002_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion from django.conf import settings diff --git a/appointments/migrations/__pycache__/0001_initial.cpython-312.pyc b/appointments/migrations/__pycache__/0001_initial.cpython-312.pyc index 8d5936ec..86ea2ae4 100644 Binary files a/appointments/migrations/__pycache__/0001_initial.cpython-312.pyc and b/appointments/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/appointments/migrations/__pycache__/0002_initial.cpython-312.pyc b/appointments/migrations/__pycache__/0002_initial.cpython-312.pyc index 9e99cc57..f9fe7034 100644 Binary files a/appointments/migrations/__pycache__/0002_initial.cpython-312.pyc and b/appointments/migrations/__pycache__/0002_initial.cpython-312.pyc differ diff --git a/appointments/urls.py b/appointments/urls.py index a2216370..f9ae8dfa 100644 --- a/appointments/urls.py +++ b/appointments/urls.py @@ -10,12 +10,20 @@ app_name = 'appointments' urlpatterns = [ # Main views path('', views.AppointmentDashboardView.as_view(), name='dashboard'), - path('list/', views.AppointmentListView.as_view(), name='appointment_list'), - path('create/', views.AppointmentRequestCreateView.as_view(), name='appointment_create'), - path('detail//', views.AppointmentDetailView.as_view(), name='appointment_detail'), + path('requests/', views.AppointmentListView.as_view(), name='appointment_list'), + path('requests/create/', views.AppointmentRequestCreateView.as_view(), name='appointment_create'), + path('requests//detail/', views.AppointmentDetailView.as_view(), name='appointment_detail'), path('calendar/', views.SchedulingCalendarView.as_view(), name='scheduling_calendar'), path('queue/', views.QueueManagementView.as_view(), name='queue_management'), + + # Telemedicine path('telemedicine/', views.TelemedicineView.as_view(), name='telemedicine'), + path('telemedicine/create/', views.TelemedicineSessionCreateView.as_view(), name='telemedicine_session_create'), + path('telemedicine//', views.TelemedicineSessionDetailView.as_view(), name='telemedicine_session_detail'), + path('telemedicine//update/', views.TelemedicineSessionUpdateView.as_view(), name='telemedicine_session_update'), + path('telemedicine//start/', views.start_telemedicine_session, name='start_telemedicine_session'), + path('telemedicine//end/', views.end_telemedicine_session, name='stop_telemedicine_session'), + path('telemedicine//cancel/', views.cancel_telemedicine_session, name='cancel_telemedicine_session'), # HTMX endpoints path('search/', views.appointment_search, name='appointment_search'), @@ -27,9 +35,10 @@ urlpatterns = [ # Actions path('check-in//', views.check_in_patient, name='check_in_patient'), path('queue//call-next/', views.call_next_patient, name='call_next_patient'), - path('telemedicine//start/', views.start_telemedicine_session, name='start_telemedicine_session'), + path('complete//', views.complete_appointment, name='complete_appointment'), path('reschedule//', views.reschedule_appointment, name='reschedule_appointment'), + path('cancel//', views.cancel_appointment, name='cancel_appointment'), # API endpoints # path('api/', include('appointments.api.urls')), diff --git a/appointments/views.py b/appointments/views.py index d3ed1966..4e914ad6 100644 --- a/appointments/views.py +++ b/appointments/views.py @@ -31,10 +31,6 @@ from core.utils import AuditLogger -# ============================================================================ -# DASHBOARD VIEW -# ============================================================================ - class AppointmentDashboardView(LoginRequiredMixin, TemplateView): """ Appointment dashboard view. @@ -85,10 +81,6 @@ class AppointmentDashboardView(LoginRequiredMixin, TemplateView): return context -# ============================================================================ -# APPOINTMENT REQUEST VIEWS (RESTRICTED CRUD - Clinical Data) -# ============================================================================ - class AppointmentRequestListView(LoginRequiredMixin, ListView): """ List appointment requests. @@ -199,7 +191,7 @@ class AppointmentRequestCreateView(LoginRequiredMixin, PermissionRequiredMixin, """ model = AppointmentRequest form_class = AppointmentRequestForm - template_name = 'appointments/appointment_request_form.html' + template_name = 'appointments/requests/appointment_form.html' permission_required = 'appointments.add_appointmentrequest' success_url = reverse_lazy('appointments:appointment_request_list') @@ -235,7 +227,7 @@ class AppointmentRequestUpdateView(LoginRequiredMixin, PermissionRequiredMixin, """ model = AppointmentRequest form_class = AppointmentRequestForm - template_name = 'appointments/appointment_request_form.html' + template_name = 'appointments/requests/appointment_form.html' permission_required = 'appointments.change_appointmentrequest' def get_queryset(self): @@ -276,7 +268,7 @@ class AppointmentRequestDeleteView(LoginRequiredMixin, PermissionRequiredMixin, Cancel appointment request. """ model = AppointmentRequest - template_name = 'appointments/appointment_request_confirm_delete.html' + template_name = 'appointments/requests/appointment_confirm_delete.html' permission_required = 'appointments.delete_appointmentrequest' success_url = reverse_lazy('appointments:appointment_request_list') @@ -309,10 +301,6 @@ class AppointmentRequestDeleteView(LoginRequiredMixin, PermissionRequiredMixin, return redirect(self.success_url) -# ============================================================================ -# SLOT AVAILABILITY VIEWS (LIMITED CRUD - Operational Data) -# ============================================================================ - class SlotAvailabilityListView(LoginRequiredMixin, ListView): """ List slot availability. @@ -514,10 +502,6 @@ class SlotAvailabilityDeleteView(LoginRequiredMixin, PermissionRequiredMixin, De return super().delete(request, *args, **kwargs) -# ============================================================================ -# WAITING QUEUE VIEWS (FULL CRUD - Operational Data) -# ============================================================================ - class WaitingQueueListView(LoginRequiredMixin, ListView): """ List waiting queues. @@ -733,10 +717,6 @@ class WaitingQueueDeleteView(LoginRequiredMixin, PermissionRequiredMixin, Delete return super().delete(request, *args, **kwargs) -# ============================================================================ -# QUEUE ENTRY VIEWS (LIMITED CRUD - Operational Data) -# ============================================================================ - class QueueEntryListView(LoginRequiredMixin, ListView): """ List queue entries. @@ -878,10 +858,6 @@ class QueueEntryUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateVi return response -# ============================================================================ -# TELEMEDICINE SESSION VIEWS (RESTRICTED CRUD - Clinical Data) -# ============================================================================ - class TelemedicineSessionListView(LoginRequiredMixin, ListView): """ List telemedicine sessions. @@ -935,7 +911,7 @@ class TelemedicineSessionDetailView(LoginRequiredMixin, DetailView): Display telemedicine session details. """ model = TelemedicineSession - template_name = 'appointments/telemedicine_session_detail.html' + template_name = 'appointments/telemedicine/telemedicine_session_detail.html' context_object_name = 'session' def get_queryset(self): @@ -1021,10 +997,6 @@ class TelemedicineSessionUpdateView(LoginRequiredMixin, PermissionRequiredMixin, return response -# ============================================================================ -# APPOINTMENT TEMPLATE VIEWS (FULL CRUD - Master Data) -# ============================================================================ - class AppointmentTemplateListView(LoginRequiredMixin, ListView): """ List appointment templates. @@ -1217,10 +1189,6 @@ class AppointmentTemplateDeleteView(LoginRequiredMixin, PermissionRequiredMixin, return super().delete(request, *args, **kwargs) -# ============================================================================ -# HTMX VIEWS FOR REAL-TIME UPDATES -# ============================================================================ - @login_required def appointment_search(request): """ @@ -1370,7 +1338,7 @@ def queue_status(request, queue_id): default=Value(None), output_field=IntegerField() ), ) - .select_related('assigned_provider', 'patient', 'appointment') # adjust if you need more + .select_related('assigned_provider', 'patient', 'appointment') .order_by('queue_position', 'updated_at') ) @@ -1434,20 +1402,19 @@ def calendar_appointments(request): ) if provider_id: - queryset = queryset.filter(provider_id=provider_id) + queryset = queryset.filter(provider__id=provider_id) appointments = queryset.order_by('scheduled_datetime') + # providers = queryset.order_by('provider__first_name') + return render(request, 'appointments/partials/calendar_appointments.html', { 'appointments': appointments, - 'selected_date': selected_date + 'selected_date': selected_date, + # 'providers': providers }) -# ============================================================================ -# ACTION VIEWS FOR WORKFLOW OPERATIONS -# ============================================================================ - @login_required def confirm_appointment(request, pk): """ @@ -1543,6 +1510,38 @@ def complete_appointment(request, pk): return redirect('appointments:appointment_request_detail', pk=pk) +@login_required +def cancel_appointment(request, pk): + """ + Complete an appointment. + """ + tenant = getattr(request, 'tenant', None) + if not tenant: + messages.error(request, 'No tenant found.') + return redirect('appointments:appointment_request_list') + + appointment = get_object_or_404(AppointmentRequest, pk=pk, tenant=tenant) + + appointment.status = 'CANCELLED' + # appointment.actual_end_time = timezone.now() + appointment.save() + + # Log completion + AuditLogger.log_event( + tenant=tenant, + event_type='UPDATE', + event_category='APPOINTMENT_MANAGEMENT', + action='Cancel Appointment', + description=f'Cancelled appointment: {appointment.patient} with {appointment.provider}', + user=request.user, + content_object=appointment, + request=request + ) + + messages.success(request, f'Appointment for {appointment.patient} cancelled successfully.') + return redirect('appointments:appointment_request_detail', pk=pk) + + @login_required def next_in_queue(request, queue_id): """ @@ -1663,7 +1662,7 @@ def start_telemedicine_session(request, pk): ) messages.success(request, f'Telemedicine session started successfully.') - return redirect('appointments:telemedicine_session_detail', pk=pk) + return redirect('appointments:telemedicine_session_detail', pk=session.pk) @login_required @@ -1702,18 +1701,17 @@ def end_telemedicine_session(request, pk): request=request ) - messages.success(request, f'Telemedicine session ended successfully.') - return redirect('appointments:telemedicine_session_detail', pk=pk) + messages.success(request, 'Telemedicine session ended successfully.') + return redirect('appointments:telemedicine_session_detail', pk=session.pk) -# Missing Views - Placeholder implementations class AppointmentListView(LoginRequiredMixin, ListView): """ List view for appointments. """ model = AppointmentRequest - template_name = 'appointments/appointment_list.html' + template_name = 'appointments/requests/appointment_list.html' context_object_name = 'appointments' paginate_by = 20 @@ -1728,7 +1726,7 @@ class AppointmentDetailView(LoginRequiredMixin, DetailView): Detail view for appointments. """ model = AppointmentRequest - template_name = 'appointments/appointment_detail.html' + template_name = 'appointments/requests/appointment_request_detail.html' context_object_name = 'appointment' def get_queryset(self): @@ -1775,11 +1773,19 @@ class QueueManagementView(LoginRequiredMixin, ListView): return context -class TelemedicineView(LoginRequiredMixin, TemplateView): +class TelemedicineView(LoginRequiredMixin, ListView): """ Telemedicine appointments view. """ - template_name = 'appointments/telemedicine.html' + model = TelemedicineSession + template_name = 'appointments/telemedicine/telemedicine.html' + context_object_name = 'sessions' + paginate_by = 20 + + def get_queryset(self): + return TelemedicineSession.objects.filter( + appointment__tenant=self.request.user.tenant + ).order_by('-created_at') def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) @@ -1790,6 +1796,38 @@ class TelemedicineView(LoginRequiredMixin, TemplateView): return context +@login_required +def cancel_telemedicine_session(request, pk): + tenant = getattr(request, 'tenant', None) + if not tenant: + messages.error(request, 'No tenant found.') + return redirect('appointments:telemedicine_session_list') + + session = get_object_or_404(TelemedicineSession, pk=pk) + session.status = 'CANCELLED' + session.save() + + # Update appointment status + session.appointment.status = 'CANCELLED' + session.appointment.save() + + # Log session start + AuditLogger.log_event( + tenant=tenant, + event_type='UPDATE', + event_category='APPOINTMENT_MANAGEMENT', + action='Cancel Telemedicine Session', + description='Cancelled telemedicine session', + user=request.user, + content_object=session, + request=request + ) + + messages.success(request, 'Telemedicine session cancelled successfully.') + return redirect('appointments:telemedicine_session_detail', pk=session.pk) + + +@login_required def check_in_patient(request, appointment_id): """ Check in a patient for their appointment. @@ -1815,13 +1853,13 @@ def call_next_patient(request, queue_id): return redirect('appointments:queue_management') - +@login_required def reschedule_appointment(request, appointment_id): """ Reschedule an appointment. """ appointment = get_object_or_404(AppointmentRequest, - request_id=appointment_id, + pk=appointment_id, tenant=request.user.tenant ) @@ -1835,8 +1873,8 @@ def reschedule_appointment(request, appointment_id): appointment.status = 'RESCHEDULED' appointment.save() - messages.success(request, f'Appointment has been rescheduled to {new_date} at {new_time}.') - return redirect('appointments:appointment_detail', pk=appointment_id) + messages.success(request, 'Appointment has been rescheduled') + return redirect('appointments:appointment_detail', pk=appointment.pk) return render(request, 'appointments/reschedule_appointment.html', { 'appointment': appointment diff --git a/billing/__pycache__/urls.cpython-312.pyc b/billing/__pycache__/urls.cpython-312.pyc index dd846f07..314d2a9e 100644 Binary files a/billing/__pycache__/urls.cpython-312.pyc and b/billing/__pycache__/urls.cpython-312.pyc differ diff --git a/billing/__pycache__/views.cpython-312.pyc b/billing/__pycache__/views.cpython-312.pyc index f9e5bcdf..5333c77f 100644 Binary files a/billing/__pycache__/views.cpython-312.pyc and b/billing/__pycache__/views.cpython-312.pyc differ diff --git a/billing/migrations/0001_initial.py b/billing/migrations/0001_initial.py index 60b3c376..ce87a9ec 100644 --- a/billing/migrations/0001_initial.py +++ b/billing/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import billing.utils import django.db.models.deletion diff --git a/billing/migrations/0002_initial.py b/billing/migrations/0002_initial.py index b2abe838..172e091e 100644 --- a/billing/migrations/0002_initial.py +++ b/billing/migrations/0002_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion from django.conf import settings diff --git a/billing/migrations/__pycache__/0001_initial.cpython-312.pyc b/billing/migrations/__pycache__/0001_initial.cpython-312.pyc index ff13ea58..a37315e2 100644 Binary files a/billing/migrations/__pycache__/0001_initial.cpython-312.pyc and b/billing/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/billing/migrations/__pycache__/0002_initial.cpython-312.pyc b/billing/migrations/__pycache__/0002_initial.cpython-312.pyc index 7c3d56c3..82022628 100644 Binary files a/billing/migrations/__pycache__/0002_initial.cpython-312.pyc and b/billing/migrations/__pycache__/0002_initial.cpython-312.pyc differ diff --git a/billing/urls.py b/billing/urls.py index 1e5d7bd9..aa2770c1 100644 --- a/billing/urls.py +++ b/billing/urls.py @@ -30,6 +30,9 @@ urlpatterns = [ path('claims/', views.InsuranceClaimListView.as_view(), name='claim_list'), path('claims//', views.InsuranceClaimDetailView.as_view(), name='claim_detail'), path('claims/create/', views.InsuranceClaimCreateView.as_view(), name='claim_create'), + path('claims//edit/', views.InsuranceClaimUpdateView.as_view(), name='claim_update'), + path('claims//appeal', views.claim_appeal, name='claim_appeal'), + path('bills//claims/create/', views.InsuranceClaimCreateView.as_view(), name='bill_claim_create'), path('payments//receipt/', views.payment_receipt, name='payment_receipt'), path('payments//email/', views.payment_email, name='payment_email'), diff --git a/billing/views.py b/billing/views.py index f8edfbb2..1ba220a6 100644 --- a/billing/views.py +++ b/billing/views.py @@ -33,12 +33,9 @@ from patients.models import PatientProfile, InsuranceInfo from accounts.models import User from emr.models import Encounter from inpatients.models import Admission +from core.utils import AuditLogger -# ============================================================================ -# DASHBOARD VIEW -# ============================================================================ - class BillingDashboardView(LoginRequiredMixin, TemplateView): """ Billing dashboard view with comprehensive statistics and recent activity. @@ -103,10 +100,6 @@ class BillingDashboardView(LoginRequiredMixin, TemplateView): return context -# ============================================================================ -# MEDICAL BILL VIEWS -# ============================================================================ - class MedicalBillListView(LoginRequiredMixin, ListView): """ List view for medical bills with filtering and search. @@ -311,10 +304,6 @@ class MedicalBillDeleteView(LoginRequiredMixin, PermissionRequiredMixin, DeleteV return response -# ============================================================================ -# INSURANCE CLAIM VIEWS -# ============================================================================ - class InsuranceClaimListView(LoginRequiredMixin, ListView): """ List view for insurance claims with filtering and search. @@ -461,9 +450,65 @@ class InsuranceClaimCreateView(LoginRequiredMixin, PermissionRequiredMixin, Crea return reverse('billing:claim_detail', kwargs={'claim_id': self.object.claim_id}) -# ============================================================================ -# PAYMENT VIEWS -# ============================================================================ +class InsuranceClaimUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): + model = InsuranceClaim + form_class = InsuranceClaimForm + template_name = 'billing/claims/claim_form.html' + permission_required = 'billing.add_insuranceclaim' + + def get_form_kwargs(self): + kwargs = super().get_form_kwargs() + kwargs['user'] = self.request.user + + # Get medical bill from URL parameter + bill_id = self.kwargs.get('bill_id') + if bill_id: + try: + medical_bill = MedicalBill.objects.get( + bill_id=bill_id, + tenant=getattr(self.request, 'tenant', None) + ) + kwargs['medical_bill'] = medical_bill + except MedicalBill.DoesNotExist: + pass + + return kwargs + + def form_valid(self, form): + # Prefer URL bill_id; otherwise read from POST("medical_bill") + bill_id = self.kwargs.get('bill_id') or self.request.POST.get('medical_bill') + if bill_id: + try: + medical_bill = MedicalBill.objects.get( + bill_id=bill_id, + tenant=getattr(self.request, 'tenant', None) + ) + form.instance.medical_bill = medical_bill + except MedicalBill.DoesNotExist: + messages.error(self.request, 'Medical bill not found.') + return redirect('billing:bill_list') + else: + messages.error(self.request, 'Please select a medical bill.') + return redirect('billing:claim_create') + + form.instance.created_by = self.request.user + + if not form.instance.claim_number: + form.instance.claim_number = form.instance.generate_claim_number() + + response = super().form_valid(form) + messages.success(self.request, f'Insurance claim {self.object.claim_number} updated successfully.') + return response + + def get_context_data(self, **kwargs): + ctx = super().get_context_data(**kwargs) + tenant = getattr(self.request, 'tenant', None) + ctx['available_bills'] = MedicalBill.objects.filter(tenant=tenant).select_related('patient') + return ctx + + def get_success_url(self): + return reverse('billing:claim_detail', kwargs={'claim_id': self.object.claim_id}) + class PaymentListView(LoginRequiredMixin, ListView): """ @@ -598,40 +643,37 @@ class PaymentCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView) return reverse('billing:payment_detail', kwargs={'payment_id': self.object.payment_id}) -# ============================================================================ -# HTMX VIEWS -# ============================================================================ -# @login_required -# def htmx_billing_stats(request): -# """ -# HTMX endpoint for billing statistics. -# """ -# tenant = getattr(request, 'tenant', None) -# if not tenant: -# return JsonResponse({'error': 'No tenant found'}) -# -# today = timezone.now().date() -# -# # Calculate statistics -# bills = MedicalBill.objects.filter(tenant=tenant) -# stats = { -# 'total_bills': bills.count(), -# 'total_revenue': float(bills.aggregate( -# total=Sum('total_amount') -# )['total'] or 0), -# 'total_paid': float(bills.aggregate( -# total=Sum('paid_amount') -# )['total'] or 0), -# 'overdue_bills': bills.filter( -# due_date__lt=today, -# status__in=['draft', 'sent', 'partial_payment'] -# ).count() -# } -# -# stats['total_outstanding'] = stats['total_revenue'] - stats['total_paid'] -# -# return JsonResponse(stats) +@login_required +def htmx_billing_stats(request): + """ + HTMX endpoint for billing statistics. + """ + tenant = getattr(request, 'tenant', None) + if not tenant: + return JsonResponse({'error': 'No tenant found'}) + + today = timezone.now().date() + + # Calculate statistics + bills = MedicalBill.objects.filter(tenant=tenant) + stats = { + 'total_bills': bills.count(), + 'total_revenue': float(bills.aggregate( + total=Sum('total_amount') + )['total'] or 0), + 'total_paid': float(bills.aggregate( + total=Sum('paid_amount') + )['total'] or 0), + 'overdue_bills': bills.filter( + due_date__lt=today, + status__in=['draft', 'sent', 'partial_payment'] + ).count() + } + + stats['total_outstanding'] = stats['total_revenue'] - stats['total_paid'] + + return JsonResponse(stats) @login_required def billing_stats(request): @@ -715,6 +757,7 @@ def bill_details_api(request, bill_id): } return JsonResponse(data) + @login_required def bill_search(request): """ @@ -738,10 +781,6 @@ def bill_search(request): return render(request, 'billing/partials/bill_list.html', {'bills': bills}) -# ============================================================================ -# ACTION VIEWS -# ============================================================================ - @login_required @require_http_methods(["POST"]) def submit_bill(request, bill_id): @@ -768,50 +807,65 @@ def submit_bill(request, bill_id): return JsonResponse({'success': False, 'error': 'Bill not found'}) -# ============================================================================ -# EXPORT VIEWS -# ============================================================================ - @login_required def export_bills(request): """ - Export bills to CSV. + Export medical bills to CSV. """ - tenant = getattr(request, 'tenant', None) - if not tenant: - return HttpResponse('No tenant found', status=400) - - # Create CSV response + tenant = request.user.tenant + + # Create HTTP response with CSV content type response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="medical_bills.csv"' - + writer = csv.writer(response) + + # Write header row writer.writerow([ - 'Bill Number', 'Patient Name', 'Bill Date', 'Due Date', - 'Total Amount', 'Paid Amount', 'Balance', 'Status' + 'Bill Number', 'Patient Name', 'MRN', 'Bill Type', 'Bill Date', 'Due Date', + 'Service Date From', 'Service Date To', 'Subtotal', 'Tax Amount', 'Total Amount', + 'Paid Amount', 'Balance Amount', 'Status', 'Attending Provider', 'Created Date' ]) - - bills = MedicalBill.objects.filter(tenant=tenant).select_related('patient') - + + # Write data rows + bills = MedicalBill.objects.filter( + tenant=tenant + ).select_related( + 'patient', 'attending_provider' + ).order_by('-bill_date') + for bill in bills: writer.writerow([ bill.bill_number, bill.patient.get_full_name(), + bill.patient.mrn, + bill.get_bill_type_display(), bill.bill_date.strftime('%Y-%m-%d'), - bill.due_date.strftime('%Y-%m-%d') if bill.due_date else '', + bill.due_date.strftime('%Y-%m-%d'), + bill.service_date_from.strftime('%Y-%m-%d'), + bill.service_date_to.strftime('%Y-%m-%d'), + str(bill.subtotal), + str(bill.tax_amount), str(bill.total_amount), str(bill.paid_amount), str(bill.balance_amount), - bill.get_status_display() + bill.get_status_display(), + bill.attending_provider.get_full_name() if bill.attending_provider else '', + bill.created_at.strftime('%Y-%m-%d %H:%M:%S') ]) - + + # Log audit event + AuditLogger.log_event( + request.user, + 'BILLS_EXPORTED', + 'MedicalBill', + None, + f"Exported {bills.count()} medical bills to CSV" + ) + return response -# ============================================================================ -# PRINT VIEWS -# ============================================================================ - @login_required def print_bills(request): """ @@ -1127,7 +1181,7 @@ def payment_receipt(request, payment_id): # Get payment with related objects payment = Payment.objects.select_related( 'medical_bill', 'medical_bill__patient', 'processed_by' - ).get(id=payment_id, medical_bill__tenant=tenant) + ).get(payment_id=payment_id, medical_bill__tenant=tenant) # Calculate payment details payment_details = { @@ -1555,8 +1609,23 @@ def bill_line_items_api(request, bill_id=None): }) +@login_required +def claim_appeal(request, claim_id): + tenant = getattr(request, 'tenant', None) + if not tenant: + return HttpResponse('No tenant found', status=400) -# + claim = get_object_or_404( + InsuranceClaim, + medical_bill__tenant=tenant, + claim_id=claim_id + ) + if claim.status in ['DENIED', 'REJECTED']: + claim.status = 'APPEALED' + claim.save() + messages.success(request, 'Claim has already been appealed.') + return redirect('billing:claim_detail', claim_id=claim.claim_id) + return JsonResponse({'success': False, 'error': 'check claim status'}, status=400) # # """ # Billing app views for hospital management system. @@ -2040,83 +2109,83 @@ def bill_line_items_api(request, bill_id=None): # } # # return render(request, 'billing/partials/billing_stats.html', {'stats': stats}) -# -# -# @login_required -# def htmx_bill_search(request): -# """ -# HTMX view for medical bill search. -# """ -# tenant = request.user.tenant -# search = request.GET.get('search', '') -# -# bills = MedicalBill.objects.filter(tenant=tenant) -# -# if search: -# bills = bills.filter( -# Q(bill_number__icontains=search) | -# Q(patient__first_name__icontains=search) | -# Q(patient__last_name__icontains=search) | -# Q(patient__mrn__icontains=search) -# ) -# -# bills = bills.select_related( -# 'patient', 'encounter', 'attending_provider' -# ).order_by('-bill_date')[:10] -# -# return render(request, 'billing/partials/bill_list.html', {'bills': bills}) -# -# -# @login_required -# def htmx_payment_search(request): -# """ -# HTMX view for payment search. -# """ -# tenant = request.user.tenant -# search = request.GET.get('search', '') -# -# payments = Payment.objects.filter(medical_bill__tenant=tenant) -# -# if search: -# payments = payments.filter( -# Q(payment_number__icontains=search) | -# Q(medical_bill__bill_number__icontains=search) | -# Q(medical_bill__patient__first_name__icontains=search) | -# Q(medical_bill__patient__last_name__icontains=search) -# ) -# -# payments = payments.select_related( -# 'medical_bill', 'medical_bill__patient' -# ).order_by('-payment_date')[:10] -# -# return render(request, 'billing/partials/payment_list.html', {'payments': payments}) -# -# -# @login_required -# def htmx_claim_search(request): -# """ -# HTMX view for insurance claim search. -# """ -# tenant = request.user.tenant -# search = request.GET.get('search', '') -# -# claims = InsuranceClaim.objects.filter(medical_bill__tenant=tenant) -# -# if search: -# claims = claims.filter( -# Q(claim_number__icontains=search) | -# Q(medical_bill__bill_number__icontains=search) | -# Q(medical_bill__patient__first_name__icontains=search) | -# Q(medical_bill__patient__last_name__icontains=search) -# ) -# -# claims = claims.select_related( -# 'medical_bill', 'medical_bill__patient', 'insurance_info' -# ).order_by('-submission_date')[:10] -# -# return render(request, 'billing/partials/claim_list.html', {'claims': claims}) -# -# + + +@login_required +def htmx_bill_search(request): + """ + HTMX view for medical bill search. + """ + tenant = request.user.tenant + search = request.GET.get('search', '') + + bills = MedicalBill.objects.filter(tenant=tenant) + + if search: + bills = bills.filter( + Q(bill_number__icontains=search) | + Q(patient__first_name__icontains=search) | + Q(patient__last_name__icontains=search) | + Q(patient__mrn__icontains=search) + ) + + bills = bills.select_related( + 'patient', 'encounter', 'attending_provider' + ).order_by('-bill_date')[:10] + + return render(request, 'billing/partials/bill_list.html', {'bills': bills}) + + +@login_required +def htmx_payment_search(request): + """ + HTMX view for payment search. + """ + tenant = request.user.tenant + search = request.GET.get('search', '') + + payments = Payment.objects.filter(medical_bill__tenant=tenant) + + if search: + payments = payments.filter( + Q(payment_number__icontains=search) | + Q(medical_bill__bill_number__icontains=search) | + Q(medical_bill__patient__first_name__icontains=search) | + Q(medical_bill__patient__last_name__icontains=search) + ) + + payments = payments.select_related( + 'medical_bill', 'medical_bill__patient' + ).order_by('-payment_date')[:10] + + return render(request, 'billing/partials/payment_list.html', {'payments': payments}) + + +@login_required +def htmx_claim_search(request): + """ + HTMX view for insurance claim search. + """ + tenant = request.user.tenant + search = request.GET.get('search', '') + + claims = InsuranceClaim.objects.filter(medical_bill__tenant=tenant) + + if search: + claims = claims.filter( + Q(claim_number__icontains=search) | + Q(medical_bill__bill_number__icontains=search) | + Q(medical_bill__patient__first_name__icontains=search) | + Q(medical_bill__patient__last_name__icontains=search) + ) + + claims = claims.select_related( + 'medical_bill', 'medical_bill__patient', 'insurance_info' + ).order_by('-submission_date')[:10] + + return render(request, 'billing/partials/claim_list.html', {'claims': claims}) + + # # Action Views # @login_required # @require_http_methods(["POST"]) @@ -2146,171 +2215,115 @@ def bill_line_items_api(request, bill_id=None): # messages.success(request, 'Medical bill submitted successfully') # # return redirect('billing:bill_detail', bill_id=bill.bill_id) + + +@login_required +@require_http_methods(["POST"]) +def process_payment(request, bill_id): + """ + Process payment for medical bill. + """ + bill = get_object_or_404( + MedicalBill, + bill_id=bill_id, + tenant=request.user.tenant + ) + + payment_amount = Decimal(request.POST.get('payment_amount', '0.00')) + payment_method = request.POST.get('payment_method', 'CASH') + payment_source = request.POST.get('payment_source', 'PATIENT') + + if payment_amount > 0: + # Create payment record + payment = Payment.objects.create( + medical_bill=bill, + payment_amount=payment_amount, + payment_method=payment_method, + payment_source=payment_source, + payment_date=timezone.now().date(), + received_by=request.user, + processed_by=request.user, + status='PROCESSED' + ) + + # Update bill paid amount and status + bill.paid_amount += payment_amount + bill.balance_amount = bill.total_amount - bill.paid_amount + + if bill.balance_amount <= 0: + bill.status = 'PAID' + elif bill.paid_amount > 0: + bill.status = 'PARTIAL_PAID' + + bill.save() + + # Log audit event + AuditLogger.log_event( + request.user, + 'PAYMENT_PROCESSED', + 'Payment', + str(payment.payment_id), + f"Processed payment {payment.payment_number} for ${payment_amount} on bill {bill.bill_number}" + ) + + messages.success(request, f'Payment of ${payment_amount} processed successfully') + + return redirect('billing:bill_detail', bill_id=bill.bill_id) # # -# @login_required -# @require_http_methods(["POST"]) -# def process_payment(request, bill_id): -# """ -# Process payment for medical bill. -# """ -# bill = get_object_or_404( -# MedicalBill, -# bill_id=bill_id, -# tenant=request.user.tenant -# ) -# -# payment_amount = Decimal(request.POST.get('payment_amount', '0.00')) -# payment_method = request.POST.get('payment_method', 'CASH') -# payment_source = request.POST.get('payment_source', 'PATIENT') -# -# if payment_amount > 0: -# # Create payment record -# payment = Payment.objects.create( -# medical_bill=bill, -# payment_amount=payment_amount, -# payment_method=payment_method, -# payment_source=payment_source, -# payment_date=timezone.now().date(), -# received_by=request.user, -# processed_by=request.user, -# status='PROCESSED' -# ) -# -# # Update bill paid amount and status -# bill.paid_amount += payment_amount -# bill.balance_amount = bill.total_amount - bill.paid_amount -# -# if bill.balance_amount <= 0: -# bill.status = 'PAID' -# elif bill.paid_amount > 0: -# bill.status = 'PARTIAL_PAID' -# -# bill.save() -# -# # Log audit event -# AuditLogger.log_event( -# request.user, -# 'PAYMENT_PROCESSED', -# 'Payment', -# str(payment.payment_id), -# f"Processed payment {payment.payment_number} for ${payment_amount} on bill {bill.bill_number}" -# ) -# -# messages.success(request, f'Payment of ${payment_amount} processed successfully') -# -# return redirect('billing:bill_detail', bill_id=bill.bill_id) -# -# -# @login_required -# @require_http_methods(["POST"]) -# def submit_insurance_claim(request, bill_id): -# """ -# Submit insurance claim for medical bill. -# """ -# bill = get_object_or_404( -# MedicalBill, -# bill_id=bill_id, -# tenant=request.user.tenant -# ) -# -# insurance_type = request.POST.get('insurance_type', 'PRIMARY') -# -# # Determine which insurance to use -# if insurance_type == 'PRIMARY' and bill.primary_insurance: -# insurance_info = bill.primary_insurance -# claim_type = 'PRIMARY' -# elif insurance_type == 'SECONDARY' and bill.secondary_insurance: -# insurance_info = bill.secondary_insurance -# claim_type = 'SECONDARY' -# else: -# messages.error(request, 'No insurance information available for claim submission') -# return redirect('billing:bill_detail', bill_id=bill.bill_id) -# -# # Create insurance claim -# claim = InsuranceClaim.objects.create( -# medical_bill=bill, -# insurance_info=insurance_info, -# claim_type=claim_type, -# submission_date=timezone.now().date(), -# service_date_from=bill.service_date_from, -# service_date_to=bill.service_date_to, -# billed_amount=bill.total_amount, -# status='SUBMITTED', -# created_by=request.user -# ) -# -# # Log audit event -# AuditLogger.log_event( -# request.user, -# 'INSURANCE_CLAIM_SUBMITTED', -# 'InsuranceClaim', -# str(claim.claim_id), -# f"Submitted {claim_type.lower()} insurance claim {claim.claim_number} for bill {bill.bill_number}" -# ) -# -# messages.success(request, f'{claim_type.title()} insurance claim submitted successfully') -# return redirect('billing:bill_detail', bill_id=bill.bill_id) +@login_required +@require_http_methods(["POST"]) +def submit_insurance_claim(request, bill_id): + """ + Submit insurance claim for medical bill. + """ + bill = get_object_or_404( + MedicalBill, + bill_id=bill_id, + tenant=request.user.tenant + ) + + insurance_type = request.POST.get('insurance_type', 'PRIMARY') + + # Determine which insurance to use + if insurance_type == 'PRIMARY' and bill.primary_insurance: + insurance_info = bill.primary_insurance + claim_type = 'PRIMARY' + elif insurance_type == 'SECONDARY' and bill.secondary_insurance: + insurance_info = bill.secondary_insurance + claim_type = 'SECONDARY' + else: + messages.error(request, 'No insurance information available for claim submission') + return redirect('billing:bill_detail', bill_id=bill.bill_id) + + # Create insurance claim + claim = InsuranceClaim.objects.create( + medical_bill=bill, + insurance_info=insurance_info, + claim_type=claim_type, + submission_date=timezone.now().date(), + service_date_from=bill.service_date_from, + service_date_to=bill.service_date_to, + billed_amount=bill.total_amount, + status='SUBMITTED', + created_by=request.user + ) + + # Log audit event + AuditLogger.log_event( + request.user, + 'INSURANCE_CLAIM_SUBMITTED', + 'InsuranceClaim', + str(claim.claim_id), + f"Submitted {claim_type.lower()} insurance claim {claim.claim_number} for bill {bill.bill_number}" + ) + + messages.success(request, f'{claim_type.title()} insurance claim submitted successfully') + return redirect('billing:bill_detail', bill_id=bill.bill_id) # # # # Export Views -# @login_required -# def export_bills(request): -# """ -# Export medical bills to CSV. -# """ -# tenant = request.user.tenant -# -# # Create HTTP response with CSV content type -# response = HttpResponse(content_type='text/csv') -# response['Content-Disposition'] = 'attachment; filename="medical_bills.csv"' -# -# writer = csv.writer(response) -# -# # Write header row -# writer.writerow([ -# 'Bill Number', 'Patient Name', 'MRN', 'Bill Type', 'Bill Date', 'Due Date', -# 'Service Date From', 'Service Date To', 'Subtotal', 'Tax Amount', 'Total Amount', -# 'Paid Amount', 'Balance Amount', 'Status', 'Attending Provider', 'Created Date' -# ]) -# -# # Write data rows -# bills = MedicalBill.objects.filter( -# tenant=tenant -# ).select_related( -# 'patient', 'attending_provider' -# ).order_by('-bill_date') -# -# for bill in bills: -# writer.writerow([ -# bill.bill_number, -# bill.patient.get_full_name(), -# bill.patient.mrn, -# bill.get_bill_type_display(), -# bill.bill_date.strftime('%Y-%m-%d'), -# bill.due_date.strftime('%Y-%m-%d'), -# bill.service_date_from.strftime('%Y-%m-%d'), -# bill.service_date_to.strftime('%Y-%m-%d'), -# str(bill.subtotal), -# str(bill.tax_amount), -# str(bill.total_amount), -# str(bill.paid_amount), -# str(bill.balance_amount), -# bill.get_status_display(), -# bill.attending_provider.get_full_name() if bill.attending_provider else '', -# bill.created_at.strftime('%Y-%m-%d %H:%M:%S') -# ]) -# -# # Log audit event -# AuditLogger.log_event( -# request.user, -# 'BILLS_EXPORTED', -# 'MedicalBill', -# None, -# f"Exported {bills.count()} medical bills to CSV" -# ) -# -# return response + # # # # Legacy view functions for backward compatibility diff --git a/blood_bank/__pycache__/forms.cpython-312.pyc b/blood_bank/__pycache__/forms.cpython-312.pyc index 7690112b..03eabeb0 100644 Binary files a/blood_bank/__pycache__/forms.cpython-312.pyc and b/blood_bank/__pycache__/forms.cpython-312.pyc differ diff --git a/blood_bank/forms.py b/blood_bank/forms.py index 6fe1ac3b..dd961287 100644 --- a/blood_bank/forms.py +++ b/blood_bank/forms.py @@ -3,7 +3,7 @@ from accounts.models import User from django.utils import timezone from datetime import timedelta from patients.models import PatientProfile -from core.models import Department +from hr.models import Department from .models import ( BloodGroup, Donor, BloodComponent, BloodUnit, BloodTest, CrossMatch, BloodRequest, BloodIssue, Transfusion, AdverseReaction, InventoryLocation, diff --git a/blood_bank/migrations/0001_initial.py b/blood_bank/migrations/0001_initial.py index 5c595c34..a9612907 100644 --- a/blood_bank/migrations/0001_initial.py +++ b/blood_bank/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-09-04 15:11 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -11,8 +11,6 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ("core", "0001_initial"), - ("patients", "0007_alter_consenttemplate_category"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] @@ -54,6 +52,228 @@ class Migration(migrations.Migration): "ordering": ["name"], }, ), + migrations.CreateModel( + name="BloodTest", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "test_type", + models.CharField( + choices=[ + ("abo_rh", "ABO/Rh Typing"), + ("antibody_screen", "Antibody Screening"), + ("hiv", "HIV"), + ("hbv", "Hepatitis B"), + ("hcv", "Hepatitis C"), + ("syphilis", "Syphilis"), + ("htlv", "HTLV"), + ("cmv", "CMV"), + ("malaria", "Malaria"), + ], + max_length=20, + ), + ), + ( + "result", + models.CharField( + choices=[ + ("positive", "Positive"), + ("negative", "Negative"), + ("indeterminate", "Indeterminate"), + ("pending", "Pending"), + ], + default="pending", + max_length=15, + ), + ), + ("test_date", models.DateTimeField()), + ("equipment_used", models.CharField(blank=True, max_length=100)), + ("lot_number", models.CharField(blank=True, max_length=50)), + ("notes", models.TextField(blank=True)), + ("verified_at", models.DateTimeField(blank=True, null=True)), + ], + options={ + "ordering": ["-test_date"], + }, + ), + migrations.CreateModel( + name="BloodUnit", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("unit_number", models.CharField(max_length=20, unique=True)), + ("collection_date", models.DateTimeField()), + ("expiry_date", models.DateTimeField()), + ("volume_ml", models.PositiveIntegerField()), + ( + "status", + models.CharField( + choices=[ + ("collected", "Collected"), + ("testing", "Testing"), + ("quarantine", "Quarantine"), + ("available", "Available"), + ("reserved", "Reserved"), + ("issued", "Issued"), + ("transfused", "Transfused"), + ("expired", "Expired"), + ("discarded", "Discarded"), + ], + default="collected", + max_length=20, + ), + ), + ("location", models.CharField(max_length=100)), + ("bag_type", models.CharField(max_length=50)), + ("anticoagulant", models.CharField(default="CPDA-1", max_length=50)), + ("collection_site", models.CharField(max_length=100)), + ("notes", models.TextField(blank=True)), + ("created_at", models.DateTimeField(auto_now_add=True)), + ("updated_at", models.DateTimeField(auto_now=True)), + ], + options={ + "ordering": ["-collection_date"], + }, + ), + migrations.CreateModel( + name="CrossMatch", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "test_type", + models.CharField( + choices=[ + ("major", "Major Crossmatch"), + ("minor", "Minor Crossmatch"), + ("immediate_spin", "Immediate Spin"), + ("antiglobulin", "Antiglobulin Test"), + ], + max_length=20, + ), + ), + ( + "compatibility", + models.CharField( + choices=[ + ("compatible", "Compatible"), + ("incompatible", "Incompatible"), + ("pending", "Pending"), + ], + default="pending", + max_length=15, + ), + ), + ("test_date", models.DateTimeField()), + ("temperature", models.CharField(default="37°C", max_length=20)), + ("incubation_time", models.PositiveIntegerField(default=15)), + ("notes", models.TextField(blank=True)), + ("verified_at", models.DateTimeField(blank=True, null=True)), + ], + options={ + "ordering": ["-test_date"], + }, + ), + migrations.CreateModel( + name="Donor", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("donor_id", models.CharField(max_length=20, unique=True)), + ("first_name", models.CharField(max_length=100)), + ("last_name", models.CharField(max_length=100)), + ("date_of_birth", models.DateField()), + ( + "gender", + models.CharField( + choices=[("M", "Male"), ("F", "Female"), ("O", "Other")], + max_length=10, + ), + ), + ("national_id", models.CharField(max_length=10, unique=True)), + ("phone", models.CharField(max_length=20)), + ("email", models.EmailField(blank=True, max_length=254)), + ("address", models.TextField()), + ("emergency_contact_name", models.CharField(max_length=100)), + ("emergency_contact_phone", models.CharField(max_length=20)), + ( + "donor_type", + models.CharField( + choices=[ + ("voluntary", "Voluntary"), + ("replacement", "Replacement"), + ("autologous", "Autologous"), + ("directed", "Directed"), + ], + default="voluntary", + max_length=20, + ), + ), + ( + "status", + models.CharField( + choices=[ + ("active", "Active"), + ("deferred", "Deferred"), + ("permanently_deferred", "Permanently Deferred"), + ("inactive", "Inactive"), + ], + default="active", + max_length=20, + ), + ), + ("registration_date", models.DateTimeField(auto_now_add=True)), + ("last_donation_date", models.DateTimeField(blank=True, null=True)), + ("total_donations", models.PositiveIntegerField(default=0)), + ( + "weight", + models.FloatField( + validators=[django.core.validators.MinValueValidator(45.0)] + ), + ), + ( + "height", + models.FloatField( + validators=[django.core.validators.MinValueValidator(140.0)] + ), + ), + ("notes", models.TextField(blank=True)), + ("created_at", models.DateTimeField(auto_now_add=True)), + ("updated_at", models.DateTimeField(auto_now=True)), + ], + options={ + "ordering": ["-registration_date"], + }, + ), migrations.CreateModel( name="InventoryLocation", fields=[ @@ -91,6 +311,213 @@ class Migration(migrations.Migration): "ordering": ["name"], }, ), + migrations.CreateModel( + name="QualityControl", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "test_type", + models.CharField( + choices=[ + ("temperature_monitoring", "Temperature Monitoring"), + ("equipment_calibration", "Equipment Calibration"), + ("reagent_testing", "Reagent Testing"), + ("proficiency_testing", "Proficiency Testing"), + ("process_validation", "Process Validation"), + ], + max_length=30, + ), + ), + ("test_date", models.DateTimeField()), + ("equipment_tested", models.CharField(blank=True, max_length=100)), + ("parameters_tested", models.TextField()), + ("expected_results", models.TextField()), + ("actual_results", models.TextField()), + ( + "status", + models.CharField( + choices=[ + ("pass", "Pass"), + ("fail", "Fail"), + ("pending", "Pending"), + ], + max_length=10, + ), + ), + ("review_date", models.DateTimeField(blank=True, null=True)), + ("review_notes", models.TextField(blank=True)), + ("corrective_action", models.TextField(blank=True)), + ("next_test_date", models.DateTimeField(blank=True, null=True)), + ("capa_initiated", models.BooleanField(default=False)), + ("capa_number", models.CharField(blank=True, max_length=50)), + ( + "capa_priority", + models.CharField( + blank=True, + choices=[ + ("low", "Low"), + ("medium", "Medium"), + ("high", "High"), + ], + max_length=10, + ), + ), + ("capa_date", models.DateTimeField(blank=True, null=True)), + ("capa_assessment", models.TextField(blank=True)), + ( + "capa_status", + models.CharField( + blank=True, + choices=[ + ("open", "Open"), + ("in_progress", "In Progress"), + ("closed", "Closed"), + ], + max_length=20, + ), + ), + ], + options={ + "ordering": ["-test_date"], + }, + ), + migrations.CreateModel( + name="Transfusion", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("start_time", models.DateTimeField()), + ("end_time", models.DateTimeField(blank=True, null=True)), + ( + "status", + models.CharField( + choices=[ + ("started", "Started"), + ("in_progress", "In Progress"), + ("completed", "Completed"), + ("stopped", "Stopped"), + ("adverse_reaction", "Adverse Reaction"), + ], + default="started", + max_length=20, + ), + ), + ( + "volume_transfused", + models.PositiveIntegerField(blank=True, null=True), + ), + ("transfusion_rate", models.CharField(blank=True, max_length=50)), + ("pre_transfusion_vitals", models.JSONField(default=dict)), + ("post_transfusion_vitals", models.JSONField(default=dict)), + ("vital_signs_history", models.JSONField(default=list)), + ("current_blood_pressure", models.CharField(blank=True, max_length=20)), + ("current_heart_rate", models.IntegerField(blank=True, null=True)), + ("current_temperature", models.FloatField(blank=True, null=True)), + ( + "current_respiratory_rate", + models.IntegerField(blank=True, null=True), + ), + ( + "current_oxygen_saturation", + models.IntegerField(blank=True, null=True), + ), + ("last_vitals_check", models.DateTimeField(blank=True, null=True)), + ("patient_consent", models.BooleanField(default=False)), + ("consent_date", models.DateTimeField(blank=True, null=True)), + ("notes", models.TextField(blank=True)), + ("stop_reason", models.TextField(blank=True)), + ("completion_notes", models.TextField(blank=True)), + ], + options={ + "ordering": ["-start_time"], + }, + ), + migrations.CreateModel( + name="AdverseReaction", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "reaction_type", + models.CharField( + choices=[ + ("febrile", "Febrile Non-Hemolytic"), + ("allergic", "Allergic"), + ("hemolytic_acute", "Acute Hemolytic"), + ("hemolytic_delayed", "Delayed Hemolytic"), + ("anaphylactic", "Anaphylactic"), + ("septic", "Septic"), + ("circulatory_overload", "Circulatory Overload"), + ("lung_injury", "Transfusion-Related Acute Lung Injury"), + ("other", "Other"), + ], + max_length=30, + ), + ), + ( + "severity", + models.CharField( + choices=[ + ("mild", "Mild"), + ("moderate", "Moderate"), + ("severe", "Severe"), + ("life_threatening", "Life Threatening"), + ], + max_length=20, + ), + ), + ("onset_time", models.DateTimeField()), + ("symptoms", models.TextField()), + ("treatment_given", models.TextField()), + ("outcome", models.TextField()), + ("investigation_notes", models.TextField(blank=True)), + ("regulatory_reported", models.BooleanField(default=False)), + ("report_date", models.DateTimeField(blank=True, null=True)), + ( + "investigated_by", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="investigated_reactions", + to=settings.AUTH_USER_MODEL, + ), + ), + ( + "reported_by", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="reported_reactions", + to=settings.AUTH_USER_MODEL, + ), + ), + ], + options={ + "ordering": ["-onset_time"], + }, + ), migrations.CreateModel( name="BloodGroup", fields=[ @@ -122,6 +549,45 @@ class Migration(migrations.Migration): "unique_together": {("abo_type", "rh_factor")}, }, ), + migrations.CreateModel( + name="BloodIssue", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("issue_date", models.DateTimeField(auto_now_add=True)), + ("expiry_time", models.DateTimeField()), + ("returned", models.BooleanField(default=False)), + ("return_date", models.DateTimeField(blank=True, null=True)), + ("return_reason", models.TextField(blank=True)), + ("notes", models.TextField(blank=True)), + ( + "issued_by", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="issued_units", + to=settings.AUTH_USER_MODEL, + ), + ), + ( + "issued_to", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="received_units", + to=settings.AUTH_USER_MODEL, + ), + ), + ], + options={ + "ordering": ["-issue_date"], + }, + ), migrations.CreateModel( name="BloodRequest", fields=[ @@ -195,731 +661,9 @@ class Migration(migrations.Migration): to="blood_bank.bloodcomponent", ), ), - ( - "patient", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="blood_requests", - to="patients.patientprofile", - ), - ), - ( - "patient_blood_group", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to="blood_bank.bloodgroup", - ), - ), - ( - "processed_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="processed_requests", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "requesting_department", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to="core.department", - ), - ), - ( - "requesting_physician", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="blood_requests", - to=settings.AUTH_USER_MODEL, - ), - ), ], options={ "ordering": ["-request_date"], }, ), - migrations.CreateModel( - name="BloodUnit", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("unit_number", models.CharField(max_length=20, unique=True)), - ("collection_date", models.DateTimeField()), - ("expiry_date", models.DateTimeField()), - ("volume_ml", models.PositiveIntegerField()), - ( - "status", - models.CharField( - choices=[ - ("collected", "Collected"), - ("testing", "Testing"), - ("quarantine", "Quarantine"), - ("available", "Available"), - ("reserved", "Reserved"), - ("issued", "Issued"), - ("transfused", "Transfused"), - ("expired", "Expired"), - ("discarded", "Discarded"), - ], - default="collected", - max_length=20, - ), - ), - ("location", models.CharField(max_length=100)), - ("bag_type", models.CharField(max_length=50)), - ("anticoagulant", models.CharField(default="CPDA-1", max_length=50)), - ("collection_site", models.CharField(max_length=100)), - ("notes", models.TextField(blank=True)), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ( - "blood_group", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to="blood_bank.bloodgroup", - ), - ), - ( - "collected_by", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="collected_units", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "component", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to="blood_bank.bloodcomponent", - ), - ), - ], - options={ - "ordering": ["-collection_date"], - }, - ), - migrations.CreateModel( - name="CrossMatch", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "test_type", - models.CharField( - choices=[ - ("major", "Major Crossmatch"), - ("minor", "Minor Crossmatch"), - ("immediate_spin", "Immediate Spin"), - ("antiglobulin", "Antiglobulin Test"), - ], - max_length=20, - ), - ), - ( - "compatibility", - models.CharField( - choices=[ - ("compatible", "Compatible"), - ("incompatible", "Incompatible"), - ("pending", "Pending"), - ], - default="pending", - max_length=15, - ), - ), - ("test_date", models.DateTimeField()), - ("temperature", models.CharField(default="37°C", max_length=20)), - ("incubation_time", models.PositiveIntegerField(default=15)), - ("notes", models.TextField(blank=True)), - ("verified_at", models.DateTimeField(blank=True, null=True)), - ( - "blood_unit", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="crossmatches", - to="blood_bank.bloodunit", - ), - ), - ( - "recipient", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to="patients.patientprofile", - ), - ), - ( - "tested_by", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "verified_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="verified_crossmatches", - to=settings.AUTH_USER_MODEL, - ), - ), - ], - options={ - "ordering": ["-test_date"], - }, - ), - migrations.CreateModel( - name="BloodIssue", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("issue_date", models.DateTimeField(auto_now_add=True)), - ("expiry_time", models.DateTimeField()), - ("returned", models.BooleanField(default=False)), - ("return_date", models.DateTimeField(blank=True, null=True)), - ("return_reason", models.TextField(blank=True)), - ("notes", models.TextField(blank=True)), - ( - "issued_by", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="issued_units", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "issued_to", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="received_units", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "blood_request", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="issues", - to="blood_bank.bloodrequest", - ), - ), - ( - "blood_unit", - models.OneToOneField( - on_delete=django.db.models.deletion.PROTECT, - related_name="issue", - to="blood_bank.bloodunit", - ), - ), - ( - "crossmatch", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - to="blood_bank.crossmatch", - ), - ), - ], - options={ - "ordering": ["-issue_date"], - }, - ), - migrations.CreateModel( - name="Donor", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("donor_id", models.CharField(max_length=20, unique=True)), - ("first_name", models.CharField(max_length=100)), - ("last_name", models.CharField(max_length=100)), - ("date_of_birth", models.DateField()), - ( - "gender", - models.CharField( - choices=[ - ("male", "Male"), - ("female", "Female"), - ("other", "Other"), - ], - max_length=10, - ), - ), - ("phone", models.CharField(max_length=20)), - ("email", models.EmailField(blank=True, max_length=254)), - ("address", models.TextField()), - ("emergency_contact_name", models.CharField(max_length=100)), - ("emergency_contact_phone", models.CharField(max_length=20)), - ( - "donor_type", - models.CharField( - choices=[ - ("voluntary", "Voluntary"), - ("replacement", "Replacement"), - ("autologous", "Autologous"), - ("directed", "Directed"), - ], - default="voluntary", - max_length=20, - ), - ), - ( - "status", - models.CharField( - choices=[ - ("active", "Active"), - ("deferred", "Deferred"), - ("permanently_deferred", "Permanently Deferred"), - ("inactive", "Inactive"), - ], - default="active", - max_length=20, - ), - ), - ("registration_date", models.DateTimeField(auto_now_add=True)), - ("last_donation_date", models.DateTimeField(blank=True, null=True)), - ("total_donations", models.PositiveIntegerField(default=0)), - ( - "weight", - models.FloatField( - validators=[django.core.validators.MinValueValidator(45.0)] - ), - ), - ( - "height", - models.FloatField( - validators=[django.core.validators.MinValueValidator(140.0)] - ), - ), - ("notes", models.TextField(blank=True)), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ( - "blood_group", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to="blood_bank.bloodgroup", - ), - ), - ( - "created_by", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="created_donors", - to=settings.AUTH_USER_MODEL, - ), - ), - ], - options={ - "ordering": ["-registration_date"], - }, - ), - migrations.AddField( - model_name="bloodunit", - name="donor", - field=models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="blood_units", - to="blood_bank.donor", - ), - ), - migrations.CreateModel( - name="QualityControl", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "test_type", - models.CharField( - choices=[ - ("temperature_monitoring", "Temperature Monitoring"), - ("equipment_calibration", "Equipment Calibration"), - ("reagent_testing", "Reagent Testing"), - ("proficiency_testing", "Proficiency Testing"), - ("process_validation", "Process Validation"), - ], - max_length=30, - ), - ), - ("test_date", models.DateTimeField()), - ("equipment_tested", models.CharField(blank=True, max_length=100)), - ("parameters_tested", models.TextField()), - ("expected_results", models.TextField()), - ("actual_results", models.TextField()), - ( - "status", - models.CharField( - choices=[ - ("pass", "Pass"), - ("fail", "Fail"), - ("pending", "Pending"), - ], - max_length=10, - ), - ), - ("review_date", models.DateTimeField(blank=True, null=True)), - ("review_notes", models.TextField(blank=True)), - ("corrective_action", models.TextField(blank=True)), - ("next_test_date", models.DateTimeField(blank=True, null=True)), - ("capa_initiated", models.BooleanField(default=False)), - ("capa_number", models.CharField(blank=True, max_length=50)), - ( - "capa_priority", - models.CharField( - blank=True, - choices=[ - ("low", "Low"), - ("medium", "Medium"), - ("high", "High"), - ], - max_length=10, - ), - ), - ("capa_date", models.DateTimeField(blank=True, null=True)), - ("capa_assessment", models.TextField(blank=True)), - ( - "capa_status", - models.CharField( - blank=True, - choices=[ - ("open", "Open"), - ("in_progress", "In Progress"), - ("closed", "Closed"), - ], - max_length=20, - ), - ), - ( - "capa_initiated_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="initiated_capas", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "performed_by", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="qc_tests", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "reviewed_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="reviewed_qc_tests", - to=settings.AUTH_USER_MODEL, - ), - ), - ], - options={ - "ordering": ["-test_date"], - }, - ), - migrations.CreateModel( - name="Transfusion", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("start_time", models.DateTimeField()), - ("end_time", models.DateTimeField(blank=True, null=True)), - ( - "status", - models.CharField( - choices=[ - ("started", "Started"), - ("in_progress", "In Progress"), - ("completed", "Completed"), - ("stopped", "Stopped"), - ("adverse_reaction", "Adverse Reaction"), - ], - default="started", - max_length=20, - ), - ), - ( - "volume_transfused", - models.PositiveIntegerField(blank=True, null=True), - ), - ("transfusion_rate", models.CharField(blank=True, max_length=50)), - ("pre_transfusion_vitals", models.JSONField(default=dict)), - ("post_transfusion_vitals", models.JSONField(default=dict)), - ("vital_signs_history", models.JSONField(default=list)), - ("current_blood_pressure", models.CharField(blank=True, max_length=20)), - ("current_heart_rate", models.IntegerField(blank=True, null=True)), - ("current_temperature", models.FloatField(blank=True, null=True)), - ( - "current_respiratory_rate", - models.IntegerField(blank=True, null=True), - ), - ( - "current_oxygen_saturation", - models.IntegerField(blank=True, null=True), - ), - ("last_vitals_check", models.DateTimeField(blank=True, null=True)), - ("patient_consent", models.BooleanField(default=False)), - ("consent_date", models.DateTimeField(blank=True, null=True)), - ("notes", models.TextField(blank=True)), - ("stop_reason", models.TextField(blank=True)), - ("completion_notes", models.TextField(blank=True)), - ( - "administered_by", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="administered_transfusions", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "blood_issue", - models.OneToOneField( - on_delete=django.db.models.deletion.PROTECT, - related_name="transfusion", - to="blood_bank.bloodissue", - ), - ), - ( - "completed_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="completed_transfusions", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "stopped_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="stopped_transfusions", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "witnessed_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="witnessed_transfusions", - to=settings.AUTH_USER_MODEL, - ), - ), - ], - options={ - "ordering": ["-start_time"], - }, - ), - migrations.CreateModel( - name="AdverseReaction", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "reaction_type", - models.CharField( - choices=[ - ("febrile", "Febrile Non-Hemolytic"), - ("allergic", "Allergic"), - ("hemolytic_acute", "Acute Hemolytic"), - ("hemolytic_delayed", "Delayed Hemolytic"), - ("anaphylactic", "Anaphylactic"), - ("septic", "Septic"), - ("circulatory_overload", "Circulatory Overload"), - ("lung_injury", "Transfusion-Related Acute Lung Injury"), - ("other", "Other"), - ], - max_length=30, - ), - ), - ( - "severity", - models.CharField( - choices=[ - ("mild", "Mild"), - ("moderate", "Moderate"), - ("severe", "Severe"), - ("life_threatening", "Life Threatening"), - ], - max_length=20, - ), - ), - ("onset_time", models.DateTimeField()), - ("symptoms", models.TextField()), - ("treatment_given", models.TextField()), - ("outcome", models.TextField()), - ("investigation_notes", models.TextField(blank=True)), - ("regulatory_reported", models.BooleanField(default=False)), - ("report_date", models.DateTimeField(blank=True, null=True)), - ( - "investigated_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="investigated_reactions", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "reported_by", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - related_name="reported_reactions", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "transfusion", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="adverse_reactions", - to="blood_bank.transfusion", - ), - ), - ], - options={ - "ordering": ["-onset_time"], - }, - ), - migrations.CreateModel( - name="BloodTest", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "test_type", - models.CharField( - choices=[ - ("abo_rh", "ABO/Rh Typing"), - ("antibody_screen", "Antibody Screening"), - ("hiv", "HIV"), - ("hbv", "Hepatitis B"), - ("hcv", "Hepatitis C"), - ("syphilis", "Syphilis"), - ("htlv", "HTLV"), - ("cmv", "CMV"), - ("malaria", "Malaria"), - ], - max_length=20, - ), - ), - ( - "result", - models.CharField( - choices=[ - ("positive", "Positive"), - ("negative", "Negative"), - ("indeterminate", "Indeterminate"), - ("pending", "Pending"), - ], - default="pending", - max_length=15, - ), - ), - ("test_date", models.DateTimeField()), - ("equipment_used", models.CharField(blank=True, max_length=100)), - ("lot_number", models.CharField(blank=True, max_length=50)), - ("notes", models.TextField(blank=True)), - ("verified_at", models.DateTimeField(blank=True, null=True)), - ( - "tested_by", - models.ForeignKey( - on_delete=django.db.models.deletion.PROTECT, - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "verified_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.PROTECT, - related_name="verified_tests", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "blood_unit", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="tests", - to="blood_bank.bloodunit", - ), - ), - ], - options={ - "ordering": ["-test_date"], - "unique_together": {("blood_unit", "test_type")}, - }, - ), ] diff --git a/blood_bank/migrations/0002_donor_national_id_alter_donor_gender.py b/blood_bank/migrations/0002_donor_national_id_alter_donor_gender.py deleted file mode 100644 index e1bc71a6..00000000 --- a/blood_bank/migrations/0002_donor_national_id_alter_donor_gender.py +++ /dev/null @@ -1,26 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-04 15:30 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("blood_bank", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="donor", - name="national_id", - field=models.CharField(default=1129632798, max_length=10, unique=True), - preserve_default=False, - ), - migrations.AlterField( - model_name="donor", - name="gender", - field=models.CharField( - choices=[("M", "Male"), ("F", "Female"), ("O", "Other")], max_length=10 - ), - ), - ] diff --git a/blood_bank/migrations/0002_initial.py b/blood_bank/migrations/0002_initial.py new file mode 100644 index 00000000..db865fff --- /dev/null +++ b/blood_bank/migrations/0002_initial.py @@ -0,0 +1,297 @@ +# Generated by Django 5.2.6 on 2025-09-08 07:28 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ("blood_bank", "0001_initial"), + ("hr", "0001_initial"), + ("patients", "0001_initial"), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name="bloodrequest", + name="patient", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="blood_requests", + to="patients.patientprofile", + ), + ), + migrations.AddField( + model_name="bloodrequest", + name="patient_blood_group", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, to="blood_bank.bloodgroup" + ), + ), + migrations.AddField( + model_name="bloodrequest", + name="processed_by", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="processed_requests", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="bloodrequest", + name="requesting_department", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, to="hr.department" + ), + ), + migrations.AddField( + model_name="bloodrequest", + name="requesting_physician", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="blood_requests", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="bloodissue", + name="blood_request", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="issues", + to="blood_bank.bloodrequest", + ), + ), + migrations.AddField( + model_name="bloodtest", + name="tested_by", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL + ), + ), + migrations.AddField( + model_name="bloodtest", + name="verified_by", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="verified_tests", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="bloodunit", + name="blood_group", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, to="blood_bank.bloodgroup" + ), + ), + migrations.AddField( + model_name="bloodunit", + name="collected_by", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="collected_units", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="bloodunit", + name="component", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="blood_bank.bloodcomponent", + ), + ), + migrations.AddField( + model_name="bloodtest", + name="blood_unit", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="tests", + to="blood_bank.bloodunit", + ), + ), + migrations.AddField( + model_name="bloodissue", + name="blood_unit", + field=models.OneToOneField( + on_delete=django.db.models.deletion.PROTECT, + related_name="issue", + to="blood_bank.bloodunit", + ), + ), + migrations.AddField( + model_name="crossmatch", + name="blood_unit", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="crossmatches", + to="blood_bank.bloodunit", + ), + ), + migrations.AddField( + model_name="crossmatch", + name="recipient", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="patients.patientprofile", + ), + ), + migrations.AddField( + model_name="crossmatch", + name="tested_by", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL + ), + ), + migrations.AddField( + model_name="crossmatch", + name="verified_by", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="verified_crossmatches", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="bloodissue", + name="crossmatch", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + to="blood_bank.crossmatch", + ), + ), + migrations.AddField( + model_name="donor", + name="blood_group", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, to="blood_bank.bloodgroup" + ), + ), + migrations.AddField( + model_name="donor", + name="created_by", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="created_donors", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="bloodunit", + name="donor", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="blood_units", + to="blood_bank.donor", + ), + ), + migrations.AddField( + model_name="qualitycontrol", + name="capa_initiated_by", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="initiated_capas", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="qualitycontrol", + name="performed_by", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="qc_tests", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="qualitycontrol", + name="reviewed_by", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="reviewed_qc_tests", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="transfusion", + name="administered_by", + field=models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="administered_transfusions", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="transfusion", + name="blood_issue", + field=models.OneToOneField( + on_delete=django.db.models.deletion.PROTECT, + related_name="transfusion", + to="blood_bank.bloodissue", + ), + ), + migrations.AddField( + model_name="transfusion", + name="completed_by", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="completed_transfusions", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="transfusion", + name="stopped_by", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="stopped_transfusions", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="transfusion", + name="witnessed_by", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="witnessed_transfusions", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="adversereaction", + name="transfusion", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="adverse_reactions", + to="blood_bank.transfusion", + ), + ), + migrations.AlterUniqueTogether( + name="bloodtest", + unique_together={("blood_unit", "test_type")}, + ), + ] diff --git a/blood_bank/migrations/__pycache__/0001_initial.cpython-312.pyc b/blood_bank/migrations/__pycache__/0001_initial.cpython-312.pyc index 0f14a3dc..86443b1f 100644 Binary files a/blood_bank/migrations/__pycache__/0001_initial.cpython-312.pyc and b/blood_bank/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/blood_bank/migrations/__pycache__/0002_donor_national_id_alter_donor_gender.cpython-312.pyc b/blood_bank/migrations/__pycache__/0002_donor_national_id_alter_donor_gender.cpython-312.pyc deleted file mode 100644 index 84e96f43..00000000 Binary files a/blood_bank/migrations/__pycache__/0002_donor_national_id_alter_donor_gender.cpython-312.pyc and /dev/null differ diff --git a/blood_bank/migrations/__pycache__/0002_initial.cpython-312.pyc b/blood_bank/migrations/__pycache__/0002_initial.cpython-312.pyc new file mode 100644 index 00000000..eecdbe8e Binary files /dev/null and b/blood_bank/migrations/__pycache__/0002_initial.cpython-312.pyc differ diff --git a/communications/migrations/0001_initial.py b/communications/migrations/0001_initial.py index 880c4add..c5fb5b74 100644 --- a/communications/migrations/0001_initial.py +++ b/communications/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion import uuid diff --git a/communications/migrations/0002_initial.py b/communications/migrations/0002_initial.py index 40c34330..649183af 100644 --- a/communications/migrations/0002_initial.py +++ b/communications/migrations/0002_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion from django.conf import settings diff --git a/communications/migrations/__pycache__/0001_initial.cpython-312.pyc b/communications/migrations/__pycache__/0001_initial.cpython-312.pyc index 17593288..d5497c45 100644 Binary files a/communications/migrations/__pycache__/0001_initial.cpython-312.pyc and b/communications/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/communications/migrations/__pycache__/0002_initial.cpython-312.pyc b/communications/migrations/__pycache__/0002_initial.cpython-312.pyc index d5897022..f8755ded 100644 Binary files a/communications/migrations/__pycache__/0002_initial.cpython-312.pyc and b/communications/migrations/__pycache__/0002_initial.cpython-312.pyc differ diff --git a/core/__pycache__/admin.cpython-312.pyc b/core/__pycache__/admin.cpython-312.pyc index 00b2aa28..f49d80e3 100644 Binary files a/core/__pycache__/admin.cpython-312.pyc and b/core/__pycache__/admin.cpython-312.pyc differ diff --git a/core/__pycache__/forms.cpython-312.pyc b/core/__pycache__/forms.cpython-312.pyc index 2b335ed8..5ec447d9 100644 Binary files a/core/__pycache__/forms.cpython-312.pyc and b/core/__pycache__/forms.cpython-312.pyc differ diff --git a/core/__pycache__/models.cpython-312.pyc b/core/__pycache__/models.cpython-312.pyc index 01ccffd0..90e74eae 100644 Binary files a/core/__pycache__/models.cpython-312.pyc and b/core/__pycache__/models.cpython-312.pyc differ diff --git a/core/__pycache__/urls.cpython-312.pyc b/core/__pycache__/urls.cpython-312.pyc index f5e09338..448a8d90 100644 Binary files a/core/__pycache__/urls.cpython-312.pyc and b/core/__pycache__/urls.cpython-312.pyc differ diff --git a/core/__pycache__/views.cpython-312.pyc b/core/__pycache__/views.cpython-312.pyc index c4cf615b..35db03e8 100644 Binary files a/core/__pycache__/views.cpython-312.pyc and b/core/__pycache__/views.cpython-312.pyc differ diff --git a/core/admin.py b/core/admin.py index 5c7c539f..b7883845 100644 --- a/core/admin.py +++ b/core/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from .models import Tenant, AuditLogEntry, SystemConfiguration, SystemNotification, IntegrationLog, Department +from .models import Tenant, AuditLogEntry, SystemConfiguration, SystemNotification, IntegrationLog @admin.register(Tenant) @@ -29,51 +29,51 @@ class TenantAdmin(admin.ModelAdmin): ) -@admin.register(Department) -class DepartmentAdmin(admin.ModelAdmin): - """Admin interface for Department model""" - list_display = ['name', 'code', 'department_type', 'department_head', 'is_active', 'tenant'] - list_filter = ['department_type', 'is_active', 'tenant', 'created_at'] - search_fields = ['name', 'code', 'description'] - readonly_fields = ['department_id', 'created_at', 'updated_at'] - autocomplete_fields = ['parent_department', 'department_head', 'created_by'] - fieldsets = ( - ('Basic Information', { - 'fields': ('tenant', 'code', 'name', 'description', 'department_type') - }), - ('Organizational Structure', { - 'fields': ('parent_department', 'department_head') - }), - ('Contact Information', { - 'fields': ('phone', 'extension', 'email') - }), - ('Location', { - 'fields': ('building', 'floor', 'wing', 'room_numbers') - }), - ('Operations', { - 'fields': ('is_active', 'is_24_hour', 'operating_hours') - }), - ('Financial', { - 'fields': ('cost_center_code', 'budget_code') - }), - ('Staffing', { - 'fields': ('authorized_positions', 'current_staff_count') - }), - ('Quality & Compliance', { - 'fields': ('accreditation_required', 'accreditation_body', 'last_inspection_date', 'next_inspection_date') - }), - ('Metadata', { - 'fields': ('department_id', 'created_by', 'created_at', 'updated_at'), - 'classes': ('collapse',) - }) - ) - - def get_queryset(self, request): - """Filter by tenant if user has tenant""" - qs = super().get_queryset(request) - if hasattr(request.user, 'tenant') and request.user.tenant: - qs = qs.filter(tenant=request.user.tenant) - return qs +# @admin.register(Department) +# class DepartmentAdmin(admin.ModelAdmin): +# """Admin interface for Department model""" +# list_display = ['name', 'code', 'department_type', 'department_head', 'is_active', 'tenant'] +# list_filter = ['department_type', 'is_active', 'tenant', 'created_at'] +# search_fields = ['name', 'code', 'description'] +# readonly_fields = ['department_id', 'created_at', 'updated_at'] +# autocomplete_fields = ['parent_department', 'department_head', 'created_by'] +# fieldsets = ( +# ('Basic Information', { +# 'fields': ('tenant', 'code', 'name', 'description', 'department_type') +# }), +# ('Organizational Structure', { +# 'fields': ('parent_department', 'department_head') +# }), +# ('Contact Information', { +# 'fields': ('phone', 'extension', 'email') +# }), +# ('Location', { +# 'fields': ('building', 'floor', 'wing', 'room_numbers') +# }), +# ('Operations', { +# 'fields': ('is_active', 'is_24_hour', 'operating_hours') +# }), +# ('Financial', { +# 'fields': ('cost_center_code', 'budget_code') +# }), +# ('Staffing', { +# 'fields': ('authorized_positions', 'current_staff_count') +# }), +# ('Quality & Compliance', { +# 'fields': ('accreditation_required', 'accreditation_body', 'last_inspection_date', 'next_inspection_date') +# }), +# ('Metadata', { +# 'fields': ('department_id', 'created_by', 'created_at', 'updated_at'), +# 'classes': ('collapse',) +# }) +# ) +# +# def get_queryset(self, request): +# """Filter by tenant if user has tenant""" +# qs = super().get_queryset(request) +# if hasattr(request.user, 'tenant') and request.user.tenant: +# qs = qs.filter(tenant=request.user.tenant) +# return qs @admin.register(AuditLogEntry) diff --git a/core/forms.py b/core/forms.py index c38b9b0f..26e4f406 100644 --- a/core/forms.py +++ b/core/forms.py @@ -6,9 +6,9 @@ notifications, departments, and search functionality. from django import forms from django.contrib.auth import get_user_model -from .models import Tenant, SystemConfiguration, SystemNotification, Department - -User = get_user_model() +from .models import Tenant, SystemConfiguration, SystemNotification +from accounts.models import User +from hr.models import Department class TenantForm(forms.ModelForm): @@ -227,106 +227,106 @@ class SystemNotificationForm(forms.ModelForm): ) -class DepartmentForm(forms.ModelForm): - """Form for creating and managing hospital departments.""" - - class Meta: - model = Department - fields = [ - 'name', 'code', 'description', 'department_type', - 'department_head', 'parent_department', 'building', 'floor', - 'wing', 'room_numbers', 'phone', 'extension', - 'email', 'is_active', 'is_24_hour' - ] - widgets = { - 'name': forms.TextInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter department name' - }), - 'code': forms.TextInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter department code' - }), - 'description': forms.Textarea(attrs={ - 'class': 'form-control', - 'rows': 3, - 'placeholder': 'Enter department description' - }), - 'department_type': forms.Select(attrs={ - 'class': 'form-select' - }), - 'department_head': forms.Select(attrs={ - 'class': 'form-select' - }), - 'parent_department': forms.Select(attrs={ - 'class': 'form-select' - }), - 'building': forms.TextInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter building name/number' - }), - 'floor': forms.TextInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter floor' - }), - 'wing': forms.TextInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter wing/section' - }), - 'room_numbers': forms.TextInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter room numbers' - }), - 'phone': forms.TextInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter phone number' - }), - 'extension': forms.TextInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter extension' - }), - 'email': forms.EmailInput(attrs={ - 'class': 'form-control', - 'placeholder': 'Enter email address' - }), - 'is_active': forms.CheckboxInput(attrs={ - 'class': 'form-check-input' - }), - 'is_24_hour': forms.CheckboxInput(attrs={ - 'class': 'form-check-input' - }) - } - - def __init__(self, *args, **kwargs): - self.tenant = kwargs.pop('tenant', None) - super().__init__(*args, **kwargs) - - if self.tenant: - # Filter department head by tenant and medical staff - self.fields['department_head'].queryset = User.objects.filter( - tenant=self.tenant, - is_active=True, - role__in=['DOCTOR', 'NURSE_MANAGER', 'ADMINISTRATOR'] - ) - # Filter parent department by tenant - self.fields['parent_department'].queryset = Department.objects.filter( - tenant=self.tenant, - is_active=True - ) - - def clean_code(self): - """Validate department code uniqueness within tenant.""" - code = self.cleaned_data.get('code') - if code and self.tenant: - queryset = Department.objects.filter( - tenant=self.tenant, - code=code - ) - if self.instance.pk: - queryset = queryset.exclude(pk=self.instance.pk) - if queryset.exists(): - raise forms.ValidationError('A department with this code already exists.') - return code +# class DepartmentForm(forms.ModelForm): +# """Form for creating and managing hospital departments.""" +# +# class Meta: +# model = Department +# fields = [ +# 'name', 'code', 'description', 'department_type', +# 'department_head', 'parent_department', 'building', 'floor', +# 'wing', 'room_numbers', 'phone', 'extension', +# 'email', 'is_active', 'is_24_hour' +# ] +# widgets = { +# 'name': forms.TextInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter department name' +# }), +# 'code': forms.TextInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter department code' +# }), +# 'description': forms.Textarea(attrs={ +# 'class': 'form-control', +# 'rows': 3, +# 'placeholder': 'Enter department description' +# }), +# 'department_type': forms.Select(attrs={ +# 'class': 'form-select' +# }), +# 'department_head': forms.Select(attrs={ +# 'class': 'form-select' +# }), +# 'parent_department': forms.Select(attrs={ +# 'class': 'form-select' +# }), +# 'building': forms.TextInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter building name/number' +# }), +# 'floor': forms.TextInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter floor' +# }), +# 'wing': forms.TextInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter wing/section' +# }), +# 'room_numbers': forms.TextInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter room numbers' +# }), +# 'phone': forms.TextInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter phone number' +# }), +# 'extension': forms.TextInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter extension' +# }), +# 'email': forms.EmailInput(attrs={ +# 'class': 'form-control', +# 'placeholder': 'Enter email address' +# }), +# 'is_active': forms.CheckboxInput(attrs={ +# 'class': 'form-check-input' +# }), +# 'is_24_hour': forms.CheckboxInput(attrs={ +# 'class': 'form-check-input' +# }) +# } +# +# def __init__(self, *args, **kwargs): +# self.tenant = kwargs.pop('tenant', None) +# super().__init__(*args, **kwargs) +# +# if self.tenant: +# # Filter department head by tenant and medical staff +# self.fields['department_head'].queryset = User.objects.filter( +# tenant=self.tenant, +# is_active=True, +# role__in=['DOCTOR', 'NURSE_MANAGER', 'ADMINISTRATOR'] +# ) +# # Filter parent department by tenant +# self.fields['parent_department'].queryset = Department.objects.filter( +# tenant=self.tenant, +# is_active=True +# ) +# +# def clean_code(self): +# """Validate department code uniqueness within tenant.""" +# code = self.cleaned_data.get('code') +# if code and self.tenant: +# queryset = Department.objects.filter( +# tenant=self.tenant, +# code=code +# ) +# if self.instance.pk: +# queryset = queryset.exclude(pk=self.instance.pk) +# if queryset.exists(): +# raise forms.ValidationError('A department with this code already exists.') +# return code class CoreSearchForm(forms.Form): diff --git a/core/migrations/0001_initial.py b/core/migrations/0001_initial.py index 6b0efacd..151abe87 100644 --- a/core/migrations/0001_initial.py +++ b/core/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -97,7 +97,7 @@ class Migration(migrations.Migration): ( "country", models.CharField( - default="United States", help_text="Country", max_length=100 + default="Saudi Arabia", help_text="Country", max_length=100 ), ), ( @@ -173,7 +173,7 @@ class Migration(migrations.Migration): ( "currency", models.CharField( - default="USD", + default="SAR", help_text="Organization currency code", max_length=3, ), @@ -676,277 +676,6 @@ class Migration(migrations.Migration): ], }, ), - migrations.CreateModel( - name="Department", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "department_id", - models.UUIDField( - default=uuid.uuid4, - editable=False, - help_text="Unique department identifier", - unique=True, - ), - ), - ( - "code", - models.CharField( - help_text="Department code (e.g., CARD, EMER, SURG)", - max_length=20, - ), - ), - ("name", models.CharField(help_text="Department name", max_length=100)), - ( - "description", - models.TextField( - blank=True, help_text="Department description", null=True - ), - ), - ( - "department_type", - models.CharField( - choices=[ - ("CLINICAL", "Clinical Department"), - ("ANCILLARY", "Ancillary Services"), - ("SUPPORT", "Support Services"), - ("ADMINISTRATIVE", "Administrative"), - ("DIAGNOSTIC", "Diagnostic Services"), - ("THERAPEUTIC", "Therapeutic Services"), - ("EMERGENCY", "Emergency Services"), - ("SURGICAL", "Surgical Services"), - ("MEDICAL", "Medical Services"), - ("NURSING", "Nursing Services"), - ("PHARMACY", "Pharmacy"), - ("LABORATORY", "Laboratory"), - ("RADIOLOGY", "Radiology"), - ("REHABILITATION", "Rehabilitation"), - ("MENTAL_HEALTH", "Mental Health"), - ("PEDIATRIC", "Pediatric"), - ("OBSTETRIC", "Obstetric"), - ("ONCOLOGY", "Oncology"), - ("CARDIOLOGY", "Cardiology"), - ("NEUROLOGY", "Neurology"), - ("ORTHOPEDIC", "Orthopedic"), - ("OTHER", "Other"), - ], - help_text="Type of department", - max_length=30, - ), - ), - ( - "phone", - models.CharField( - blank=True, - help_text="Department phone number", - max_length=20, - null=True, - ), - ), - ( - "extension", - models.CharField( - blank=True, - help_text="Phone extension", - max_length=10, - null=True, - ), - ), - ( - "email", - models.EmailField( - blank=True, - help_text="Department email", - max_length=254, - null=True, - ), - ), - ( - "building", - models.CharField( - blank=True, - help_text="Building name or number", - max_length=50, - null=True, - ), - ), - ( - "floor", - models.CharField( - blank=True, - help_text="Floor number or name", - max_length=20, - null=True, - ), - ), - ( - "wing", - models.CharField( - blank=True, - help_text="Wing or section", - max_length=20, - null=True, - ), - ), - ( - "room_numbers", - models.CharField( - blank=True, - help_text="Room numbers (e.g., 101-110, 201A-205C)", - max_length=100, - null=True, - ), - ), - ( - "is_active", - models.BooleanField(default=True, help_text="Department is active"), - ), - ( - "is_24_hour", - models.BooleanField( - default=False, help_text="Department operates 24 hours" - ), - ), - ( - "operating_hours", - models.JSONField( - blank=True, - default=dict, - help_text="Operating hours by day of week", - ), - ), - ( - "cost_center_code", - models.CharField( - blank=True, - help_text="Cost center code for financial tracking", - max_length=20, - null=True, - ), - ), - ( - "budget_code", - models.CharField( - blank=True, help_text="Budget code", max_length=20, null=True - ), - ), - ( - "authorized_positions", - models.PositiveIntegerField( - default=0, help_text="Number of authorized positions" - ), - ), - ( - "current_staff_count", - models.PositiveIntegerField( - default=0, help_text="Current number of staff members" - ), - ), - ( - "accreditation_required", - models.BooleanField( - default=False, - help_text="Department requires special accreditation", - ), - ), - ( - "accreditation_body", - models.CharField( - blank=True, - help_text="Accrediting body (e.g., Joint Commission, CAP)", - max_length=100, - null=True, - ), - ), - ( - "last_inspection_date", - models.DateField( - blank=True, help_text="Last inspection date", null=True - ), - ), - ( - "next_inspection_date", - models.DateField( - blank=True, - help_text="Next scheduled inspection date", - null=True, - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ( - "created_by", - models.ForeignKey( - blank=True, - help_text="User who created the department", - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="created_departments", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "department_head", - models.ForeignKey( - blank=True, - help_text="Department head/manager", - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="headed_departments", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "parent_department", - models.ForeignKey( - blank=True, - help_text="Parent department (for hierarchical structure)", - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="sub_departments", - to="core.department", - ), - ), - ( - "tenant", - models.ForeignKey( - help_text="Organization tenant", - on_delete=django.db.models.deletion.CASCADE, - related_name="departments", - to="core.tenant", - ), - ), - ], - options={ - "verbose_name": "Department", - "verbose_name_plural": "Departments", - "db_table": "core_department", - "ordering": ["name"], - "indexes": [ - models.Index( - fields=["tenant", "department_type"], - name="core_depart_tenant__ef3e04_idx", - ), - models.Index(fields=["code"], name="core_depart_code_5a5745_idx"), - models.Index( - fields=["is_active"], name="core_depart_is_acti_ae42f9_idx" - ), - models.Index( - fields=["parent_department"], - name="core_depart_parent__70dda4_idx", - ), - ], - "unique_together": {("tenant", "code")}, - }, - ), migrations.CreateModel( name="AuditLogEntry", fields=[ diff --git a/core/migrations/__pycache__/0001_initial.cpython-312.pyc b/core/migrations/__pycache__/0001_initial.cpython-312.pyc index 7bede659..86a13bac 100644 Binary files a/core/migrations/__pycache__/0001_initial.cpython-312.pyc and b/core/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/core/models.py b/core/models.py index 459657b1..069b2373 100644 --- a/core/models.py +++ b/core/models.py @@ -854,246 +854,246 @@ class IntegrationLog(models.Model): -class Department(models.Model): - """ - Hospital department model for organizational structure. - Represents different departments within a healthcare organization. - """ - - DEPARTMENT_TYPE_CHOICES = [ - ('CLINICAL', 'Clinical Department'), - ('ANCILLARY', 'Ancillary Services'), - ('SUPPORT', 'Support Services'), - ('ADMINISTRATIVE', 'Administrative'), - ('DIAGNOSTIC', 'Diagnostic Services'), - ('THERAPEUTIC', 'Therapeutic Services'), - ('EMERGENCY', 'Emergency Services'), - ('SURGICAL', 'Surgical Services'), - ('MEDICAL', 'Medical Services'), - ('NURSING', 'Nursing Services'), - ('PHARMACY', 'Pharmacy'), - ('LABORATORY', 'Laboratory'), - ('RADIOLOGY', 'Radiology'), - ('REHABILITATION', 'Rehabilitation'), - ('MENTAL_HEALTH', 'Mental Health'), - ('PEDIATRIC', 'Pediatric'), - ('OBSTETRIC', 'Obstetric'), - ('ONCOLOGY', 'Oncology'), - ('CARDIOLOGY', 'Cardiology'), - ('NEUROLOGY', 'Neurology'), - ('ORTHOPEDIC', 'Orthopedic'), - ('OTHER', 'Other'), - ] - - # Tenant relationship - tenant = models.ForeignKey( - Tenant, - on_delete=models.CASCADE, - related_name='core_departments', - help_text='Organization tenant' - ) - - # Department Information - department_id = models.UUIDField( - default=uuid.uuid4, - unique=True, - editable=False, - help_text='Unique department identifier' - ) - code = models.CharField( - max_length=20, - help_text='Department code (e.g., CARD, EMER, SURG)' - ) - name = models.CharField( - max_length=100, - help_text='Department name' - ) - description = models.TextField( - blank=True, - null=True, - help_text='Department description' - ) - - # Department Classification - department_type = models.CharField( - max_length=30, - choices=DEPARTMENT_TYPE_CHOICES, - help_text='Type of department' - ) - - # Organizational Structure - parent_department = models.ForeignKey( - 'self', - on_delete=models.SET_NULL, - null=True, - blank=True, - related_name='sub_departments', - help_text='Parent department (for hierarchical structure)' - ) - - # Management - department_head = models.ForeignKey( - settings.AUTH_USER_MODEL, - on_delete=models.SET_NULL, - null=True, - blank=True, - related_name='headed_departments', - help_text='Department head/manager' - ) - - # Contact Information - phone = models.CharField( - max_length=20, - blank=True, - null=True, - help_text='Department phone number' - ) - extension = models.CharField( - max_length=10, - blank=True, - null=True, - help_text='Phone extension' - ) - email = models.EmailField( - blank=True, - null=True, - help_text='Department email' - ) - - # Location - building = models.CharField( - max_length=50, - blank=True, - null=True, - help_text='Building name or number' - ) - floor = models.CharField( - max_length=20, - blank=True, - null=True, - help_text='Floor number or name' - ) - wing = models.CharField( - max_length=20, - blank=True, - null=True, - help_text='Wing or section' - ) - room_numbers = models.CharField( - max_length=100, - blank=True, - null=True, - help_text='Room numbers (e.g., 101-110, 201A-205C)' - ) - - # Operational Information - is_active = models.BooleanField( - default=True, - help_text='Department is active' - ) - is_24_hour = models.BooleanField( - default=False, - help_text='Department operates 24 hours' - ) - operating_hours = models.JSONField( - default=dict, - blank=True, - help_text='Operating hours by day of week' - ) - - # Budget and Cost Center - cost_center_code = models.CharField( - max_length=20, - blank=True, - null=True, - help_text='Cost center code for financial tracking' - ) - budget_code = models.CharField( - max_length=20, - blank=True, - null=True, - help_text='Budget code' - ) - - # Staffing - authorized_positions = models.PositiveIntegerField( - default=0, - help_text='Number of authorized positions' - ) - current_staff_count = models.PositiveIntegerField( - default=0, - help_text='Current number of staff members' - ) - - # Quality and Compliance - accreditation_required = models.BooleanField( - default=False, - help_text='Department requires special accreditation' - ) - accreditation_body = models.CharField( - max_length=100, - blank=True, - null=True, - help_text='Accrediting body (e.g., Joint Commission, CAP)' - ) - last_inspection_date = models.DateField( - blank=True, - null=True, - help_text='Last inspection date' - ) - next_inspection_date = models.DateField( - blank=True, - null=True, - help_text='Next scheduled inspection date' - ) - - # Metadata - created_at = models.DateTimeField(auto_now_add=True) - updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey( - settings.AUTH_USER_MODEL, - on_delete=models.SET_NULL, - null=True, - blank=True, - related_name='created_departments', - help_text='User who created the department' - ) - - class Meta: - db_table = 'core_department' - verbose_name = 'Department' - verbose_name_plural = 'Departments' - ordering = ['name'] - indexes = [ - models.Index(fields=['tenant', 'department_type']), - models.Index(fields=['code']), - models.Index(fields=['is_active']), - models.Index(fields=['parent_department']), - ] - unique_together = ['tenant', 'code'] - - def __str__(self): - return f"{self.name} ({self.code})" - - @property - def full_name(self): - """Return full department name with parent if applicable""" - if self.parent_department: - return f"{self.parent_department.name} - {self.name}" - return self.name - - @property - def staffing_percentage(self): - """Calculate current staffing percentage""" - if self.authorized_positions > 0: - return (self.current_staff_count / self.authorized_positions) * 100 - return 0 - - def get_all_sub_departments(self): - """Get all sub-departments recursively""" - sub_departments = [] - for sub_dept in self.sub_departments.all(): - sub_departments.append(sub_dept) - sub_departments.extend(sub_dept.get_all_sub_departments()) - return sub_departments +# class Department(models.Model): +# """ +# Hospital department model for organizational structure. +# Represents different departments within a healthcare organization. +# """ +# +# DEPARTMENT_TYPE_CHOICES = [ +# ('CLINICAL', 'Clinical Department'), +# ('ANCILLARY', 'Ancillary Services'), +# ('SUPPORT', 'Support Services'), +# ('ADMINISTRATIVE', 'Administrative'), +# ('DIAGNOSTIC', 'Diagnostic Services'), +# ('THERAPEUTIC', 'Therapeutic Services'), +# ('EMERGENCY', 'Emergency Services'), +# ('SURGICAL', 'Surgical Services'), +# ('MEDICAL', 'Medical Services'), +# ('NURSING', 'Nursing Services'), +# ('PHARMACY', 'Pharmacy'), +# ('LABORATORY', 'Laboratory'), +# ('RADIOLOGY', 'Radiology'), +# ('REHABILITATION', 'Rehabilitation'), +# ('MENTAL_HEALTH', 'Mental Health'), +# ('PEDIATRIC', 'Pediatric'), +# ('OBSTETRIC', 'Obstetric'), +# ('ONCOLOGY', 'Oncology'), +# ('CARDIOLOGY', 'Cardiology'), +# ('NEUROLOGY', 'Neurology'), +# ('ORTHOPEDIC', 'Orthopedic'), +# ('OTHER', 'Other'), +# ] +# +# # Tenant relationship +# tenant = models.ForeignKey( +# Tenant, +# on_delete=models.CASCADE, +# related_name='core_departments', +# help_text='Organization tenant' +# ) +# +# # Department Information +# department_id = models.UUIDField( +# default=uuid.uuid4, +# unique=True, +# editable=False, +# help_text='Unique department identifier' +# ) +# code = models.CharField( +# max_length=20, +# help_text='Department code (e.g., CARD, EMER, SURG)' +# ) +# name = models.CharField( +# max_length=100, +# help_text='Department name' +# ) +# description = models.TextField( +# blank=True, +# null=True, +# help_text='Department description' +# ) +# +# # Department Classification +# department_type = models.CharField( +# max_length=30, +# choices=DEPARTMENT_TYPE_CHOICES, +# help_text='Type of department' +# ) +# +# # Organizational Structure +# parent_department = models.ForeignKey( +# 'self', +# on_delete=models.SET_NULL, +# null=True, +# blank=True, +# related_name='sub_departments', +# help_text='Parent department (for hierarchical structure)' +# ) +# +# # Management +# department_head = models.ForeignKey( +# settings.AUTH_USER_MODEL, +# on_delete=models.SET_NULL, +# null=True, +# blank=True, +# related_name='headed_departments', +# help_text='Department head/manager' +# ) +# +# # Contact Information +# phone = models.CharField( +# max_length=20, +# blank=True, +# null=True, +# help_text='Department phone number' +# ) +# extension = models.CharField( +# max_length=10, +# blank=True, +# null=True, +# help_text='Phone extension' +# ) +# email = models.EmailField( +# blank=True, +# null=True, +# help_text='Department email' +# ) +# +# # Location +# building = models.CharField( +# max_length=50, +# blank=True, +# null=True, +# help_text='Building name or number' +# ) +# floor = models.CharField( +# max_length=20, +# blank=True, +# null=True, +# help_text='Floor number or name' +# ) +# wing = models.CharField( +# max_length=20, +# blank=True, +# null=True, +# help_text='Wing or section' +# ) +# room_numbers = models.CharField( +# max_length=100, +# blank=True, +# null=True, +# help_text='Room numbers (e.g., 101-110, 201A-205C)' +# ) +# +# # Operational Information +# is_active = models.BooleanField( +# default=True, +# help_text='Department is active' +# ) +# is_24_hour = models.BooleanField( +# default=False, +# help_text='Department operates 24 hours' +# ) +# operating_hours = models.JSONField( +# default=dict, +# blank=True, +# help_text='Operating hours by day of week' +# ) +# +# # Budget and Cost Center +# cost_center_code = models.CharField( +# max_length=20, +# blank=True, +# null=True, +# help_text='Cost center code for financial tracking' +# ) +# budget_code = models.CharField( +# max_length=20, +# blank=True, +# null=True, +# help_text='Budget code' +# ) +# +# # Staffing +# authorized_positions = models.PositiveIntegerField( +# default=0, +# help_text='Number of authorized positions' +# ) +# current_staff_count = models.PositiveIntegerField( +# default=0, +# help_text='Current number of staff members' +# ) +# +# # Quality and Compliance +# accreditation_required = models.BooleanField( +# default=False, +# help_text='Department requires special accreditation' +# ) +# accreditation_body = models.CharField( +# max_length=100, +# blank=True, +# null=True, +# help_text='Accrediting body (e.g., Joint Commission, CAP)' +# ) +# last_inspection_date = models.DateField( +# blank=True, +# null=True, +# help_text='Last inspection date' +# ) +# next_inspection_date = models.DateField( +# blank=True, +# null=True, +# help_text='Next scheduled inspection date' +# ) +# +# # Metadata +# created_at = models.DateTimeField(auto_now_add=True) +# updated_at = models.DateTimeField(auto_now=True) +# created_by = models.ForeignKey( +# settings.AUTH_USER_MODEL, +# on_delete=models.SET_NULL, +# null=True, +# blank=True, +# related_name='created_departments', +# help_text='User who created the department' +# ) +# +# class Meta: +# db_table = 'core_department' +# verbose_name = 'Department' +# verbose_name_plural = 'Departments' +# ordering = ['name'] +# indexes = [ +# models.Index(fields=['tenant', 'department_type']), +# models.Index(fields=['code']), +# models.Index(fields=['is_active']), +# models.Index(fields=['parent_department']), +# ] +# unique_together = ['tenant', 'code'] +# +# def __str__(self): +# return f"{self.name} ({self.code})" +# +# @property +# def full_name(self): +# """Return full department name with parent if applicable""" +# if self.parent_department: +# return f"{self.parent_department.name} - {self.name}" +# return self.name +# +# @property +# def staffing_percentage(self): +# """Calculate current staffing percentage""" +# if self.authorized_positions > 0: +# return (self.current_staff_count / self.authorized_positions) * 100 +# return 0 +# +# def get_all_sub_departments(self): +# """Get all sub-departments recursively""" +# sub_departments = [] +# for sub_dept in self.sub_departments.all(): +# sub_departments.append(sub_dept) +# sub_departments.extend(sub_dept.get_all_sub_departments()) +# return sub_departments diff --git a/core/urls.py b/core/urls.py index 0df76f9d..ad06cb8f 100644 --- a/core/urls.py +++ b/core/urls.py @@ -23,24 +23,19 @@ urlpatterns = [ path('tenants//deactivate/', views.deactivate_tenant, name='deactivate_tenant'), # Department CRUD URLs - path('departments/', views.DepartmentListView.as_view(), name='department_list'), - path('departments/create/', views.DepartmentCreateView.as_view(), name='department_create'), - path('departments//', views.DepartmentDetailView.as_view(), name='department_detail'), - path('departments//edit/', views.DepartmentUpdateView.as_view(), name='department_update'), - path('departments//delete/', views.DepartmentDeleteView.as_view(), name='department_delete'), - path('departments//activate/', views.activate_department, name='activate_department'), - path('departments//deactivate/', views.deactivate_department, name='deactivate_department'), - path('departments/bulk-activate/', views.bulk_activate_departments, name='bulk_activate_departments'), - path('departments/bulk-deactivate/', views.bulk_deactivate_departments, name='bulk_deactivate_departments'), - path('departments//assign-head/', views.assign_department_head, name='assign_department_head'), + # path('departments/', views.DepartmentListView.as_view(), name='department_list'), + # path('departments/create/', views.DepartmentCreateView.as_view(), name='department_create'), + # path('departments//', views.DepartmentDetailView.as_view(), name='department_detail'), + # path('departments//edit/', views.DepartmentUpdateView.as_view(), name='department_update'), + # path('departments//delete/', views.DepartmentDeleteView.as_view(), name='department_delete'), + # System Configuration CRUD URLs path('system-configuration/create/', views.SystemConfigurationCreateView.as_view(), name='system_configuration_create'), path('system-configuration//', views.SystemConfigurationDetailView.as_view(), name='system_configuration_detail'), path('system-configuration//edit/', views.SystemConfigurationUpdateView.as_view(), name='system_configuration_update'), path('system-configuration//delete/', views.SystemConfigurationDeleteView.as_view(), name='system_configuration_delete'), - path('api/department-hierarchy/', views.get_department_hierarchy, name='get_department_hierarchy'), - path('htmx/department-tree/', views.department_tree, name='department_tree'), + # System Notification CRUD URLs path('notifications/', views.SystemNotificationListView.as_view(), name='system_notification_list'), @@ -79,14 +74,12 @@ urlpatterns = [ # Search and Filter URLs path('search/', views.CoreSearchView.as_view(), name='search'), path('search/tenants/', views.tenant_search, name='tenant_search'), - path('search/departments/', views.department_search, name='department_search'), path('search/audit-logs/', views.audit_log_search, name='audit_log_search'), # Bulk Operations path('tenants/bulk-activate/', views.bulk_activate_tenants, name='bulk_activate_tenants'), path('tenants/bulk-deactivate/', views.bulk_deactivate_tenants, name='bulk_deactivate_tenants'), - path('departments/bulk-activate/', views.bulk_activate_departments, name='bulk_activate_departments'), - path('departments/bulk-deactivate/', views.bulk_deactivate_departments, name='bulk_deactivate_departments'), + path('audit-log/bulk-export/', views.bulk_export_audit_logs, name='bulk_export_audit_logs'), # API-like endpoints for AJAX diff --git a/core/views.py b/core/views.py index 993a4b39..fee0a085 100644 --- a/core/views.py +++ b/core/views.py @@ -13,19 +13,20 @@ from django.db.models import Count, Q from django.utils import timezone from django.contrib import messages from django.urls import reverse_lazy, reverse -from django.contrib.auth import get_user_model +from accounts.models import User from datetime import timedelta from .models import ( Tenant, AuditLogEntry, SystemConfiguration, SystemNotification, - IntegrationLog, Department + IntegrationLog ) +from hr.models import Department +from hr.forms import DepartmentForm # Create aliases for models to match the views AuditLog = AuditLogEntry -User = get_user_model() + from .forms import ( - TenantForm, SystemConfigurationForm, SystemNotificationForm, - DepartmentForm, CoreSearchForm + TenantForm, SystemConfigurationForm, SystemNotificationForm,CoreSearchForm ) from .utils import AuditLogger @@ -66,10 +67,6 @@ class DashboardView(LoginRequiredMixin, TemplateView): return context -# ============================================================================ -# TENANT VIEWS (FULL CRUD - Master Data) -# ============================================================================ - class TenantListView(LoginRequiredMixin, PermissionRequiredMixin, ListView): """ List all tenants (Super admin only). @@ -226,10 +223,6 @@ class TenantDeleteView(LoginRequiredMixin, PermissionRequiredMixin, DeleteView): return redirect(self.success_url) -# ============================================================================ -# AUDIT LOG VIEWS (READ-ONLY - System Generated) -# ============================================================================ - class AuditLogListView(LoginRequiredMixin, ListView): """ Audit log listing view. @@ -302,10 +295,6 @@ class AuditLogDetailView(LoginRequiredMixin, DetailView): return AuditLogEntry.objects.filter(tenant=tenant) -# ============================================================================ -# SYSTEM CONFIGURATION VIEWS (FULL CRUD - Master Data) -# ============================================================================ - class SystemConfigurationListView(LoginRequiredMixin, ListView): """ System configuration view. @@ -476,10 +465,6 @@ class SystemConfigurationDeleteView(LoginRequiredMixin, PermissionRequiredMixin, return super().delete(request, *args, **kwargs) -# ============================================================================ -# SYSTEM NOTIFICATION VIEWS (FULL CRUD - Operational Data) -# ============================================================================ - class SystemNotificationListView(LoginRequiredMixin, ListView): """ List system notifications. @@ -637,10 +622,6 @@ class SystemNotificationDeleteView(LoginRequiredMixin, PermissionRequiredMixin, return super().delete(request, *args, **kwargs) -# ============================================================================ -# INTEGRATION LOG VIEWS (READ-ONLY - System Generated) -# ============================================================================ - class IntegrationLogListView(LoginRequiredMixin, ListView): """ List integration logs. @@ -708,189 +689,6 @@ class IntegrationLogDetailView(LoginRequiredMixin, DetailView): return IntegrationLog.objects.filter(tenant=tenant) -# ============================================================================ -# DEPARTMENT VIEWS (FULL CRUD - Master Data) -# ============================================================================ - -class DepartmentListView(LoginRequiredMixin, ListView): - """ - List departments. - """ - model = Department - template_name = 'core/department_list.html' - context_object_name = 'departments' - paginate_by = 20 - - def get_queryset(self): - tenant = getattr(self.request, 'tenant', None) - if not tenant: - return Department.objects.none() - - queryset = Department.objects.filter(tenant=tenant).order_by('name') - - # Apply search filter - search = self.request.GET.get('search') - if search: - queryset = queryset.filter( - Q(name__icontains=search) | - Q(description__icontains=search) | - Q(location__icontains=search) - ) - - # Apply status filter - status = self.request.GET.get('status') - if status: - queryset = queryset.filter(is_active=(status == 'active')) - - return queryset - - -class DepartmentDetailView(LoginRequiredMixin, DetailView): - """ - Display department details. - """ - model = Department - template_name = 'core/department_detail.html' - context_object_name = 'department' - - def get_queryset(self): - tenant = getattr(self.request, 'tenant', None) - if not tenant: - return Department.objects.none() - return Department.objects.filter(tenant=tenant) - - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - department = self.object - - # Get department statistics - context.update({ - 'employee_count': department.current_staff_count, - 'recent_activity': AuditLogEntry.objects.filter( - tenant=department.tenant, - object_id=str(department.pk), - content_type__model='department' - ).order_by('-timestamp')[:10], - }) - - return context - - -class DepartmentCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView): - """ - Create new department. - """ - model = Department - form_class = DepartmentForm - template_name = 'core/department_form.html' - permission_required = 'core.add_department' - success_url = reverse_lazy('core:department_list') - - def form_valid(self, form): - # Set tenant - form.instance.tenant = getattr(self.request, 'tenant', None) - response = super().form_valid(form) - - # Log department creation - AuditLogger.log_event( - tenant=form.instance.tenant, - event_type='CREATE', - event_category='SYSTEM_ADMINISTRATION', - action='Create Department', - description=f'Created department: {self.object.name}', - user=self.request.user, - content_object=self.object, - request=self.request - ) - - messages.success(self.request, f'Department "{self.object.name}" created successfully.') - return response - - -class DepartmentUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): - """ - Update department. - """ - model = Department - form_class = DepartmentForm - template_name = 'core/department_form.html' - permission_required = 'core.change_department' - - def get_queryset(self): - tenant = getattr(self.request, 'tenant', None) - if not tenant: - return Department.objects.none() - return Department.objects.filter(tenant=tenant) - - def get_success_url(self): - return reverse('core:department_detail', kwargs={'pk': self.object.pk}) - - def form_valid(self, form): - response = super().form_valid(form) - - # Log department update - AuditLogger.log_event( - tenant=self.object.tenant, - event_type='UPDATE', - event_category='SYSTEM_ADMINISTRATION', - action='Update Department', - description=f'Updated department: {self.object.name}', - user=self.request.user, - content_object=self.object, - request=self.request - ) - - messages.success(self.request, f'Department "{self.object.name}" updated successfully.') - return response - - -class DepartmentDeleteView(LoginRequiredMixin, PermissionRequiredMixin, DeleteView): - """ - Delete department (soft delete to inactive). - """ - model = Department - template_name = 'core/department_confirm_delete.html' - permission_required = 'core.delete_department' - success_url = reverse_lazy('core:department_list') - - def get_queryset(self): - tenant = getattr(self.request, 'tenant', None) - if not tenant: - return Department.objects.none() - return Department.objects.filter(tenant=tenant) - - def delete(self, request, *args, **kwargs): - self.object = self.get_object() - - # Check if department has employees - if self.object.get_employee_count() > 0: - messages.error(request, 'Cannot delete department with active employees.') - return redirect('core:department_detail', pk=self.object.pk) - - # Soft delete - set to inactive - self.object.is_active = False - self.object.save() - - # Log department deletion - AuditLogger.log_event( - tenant=self.object.tenant, - event_type='DELETE', - event_category='SYSTEM_ADMINISTRATION', - action='Deactivate Department', - description=f'Deactivated department: {self.object.name}', - user=request.user, - content_object=self.object, - request=request - ) - - messages.success(request, f'Department "{self.object.name}" deactivated successfully.') - return redirect(self.success_url) - - -# ============================================================================ -# HTMX VIEWS FOR REAL-TIME UPDATES -# ============================================================================ - @login_required def dashboard_stats(request): """ @@ -1064,10 +862,6 @@ def system_health(request): }) -# ============================================================================ -# ACTION VIEWS FOR WORKFLOW OPERATIONS -# ============================================================================ - @login_required def activate_notification(request, pk): """ @@ -1175,9 +969,6 @@ def reset_configuration(request, pk): return redirect('core:system_configuration_detail', pk=pk) - - -# Missing HTMX Views def tenant_stats(request): """ HTMX view for tenant statistics. @@ -1194,20 +985,6 @@ def tenant_stats(request): return render(request, 'core/partials/tenant_stats.html', {'stats': stats}) -def department_tree(request): - """ - HTMX view for department tree structure. - """ - departments = Department.objects.filter( - tenant=request.user.tenant, - parent=None - ).prefetch_related('children') - - return render(request, 'core/partials/department_tree.html', { - 'departments': departments - }) - - def configuration_search(request): """ HTMX view for configuration search. @@ -1240,7 +1017,6 @@ def audit_log_list_htmx(request): }) -# Missing Action Views def activate_tenant(request, pk): """ Activate a tenant. @@ -1265,30 +1041,6 @@ def deactivate_tenant(request, pk): return redirect('core:tenant_detail', pk=pk) -def activate_department(request, pk): - """ - Activate a department. - """ - department = get_object_or_404(Department, department_id=pk) - department.is_active = True - department.save() - - messages.success(request, f'Department "{department.name}" has been activated.') - return redirect('core:department_detail', pk=pk) - - -def deactivate_department(request, pk): - """ - Deactivate a department. - """ - department = get_object_or_404(Department, department_id=pk) - department.is_active = False - department.save() - - messages.success(request, f'Department "{department.name}" has been deactivated.') - return redirect('core:department_detail', pk=pk) - - def reset_system_configuration(request): """ Reset system configuration to defaults. @@ -1302,7 +1054,7 @@ def reset_system_configuration(request): messages.success(request, 'System configuration has been reset to defaults.') return redirect('core:system_configuration_list') - return render(request, 'core/reset_configuration_confirm.html') + return render(request, 'core/configurations/reset_configuration_confirm.html') def export_audit_log(request): @@ -1335,7 +1087,6 @@ def export_audit_log(request): return response -# Missing Search Views class CoreSearchView(ListView): """ Generic search view for core models. @@ -1396,23 +1147,6 @@ def tenant_search(request): return JsonResponse({'tenants': list(tenants)}) -def department_search(request): - """ - AJAX search for departments. - """ - query = request.GET.get('q', '') - departments = [] - - if query: - departments = Department.objects.filter( - tenant=request.user.tenant, - name__icontains=query - ).values('department_id', 'name', 'department_type')[:10] - - return JsonResponse({'departments': list(departments)}) - - -# Missing Bulk Operation Views def bulk_activate_tenants(request): """ Bulk activate tenants. @@ -1443,38 +1177,6 @@ def bulk_deactivate_tenants(request): return redirect('core:tenant_list') -def bulk_activate_departments(request): - """ - Bulk activate departments. - """ - if request.method == 'POST': - department_ids = request.POST.getlist('department_ids') - count = Department.objects.filter( - tenant=request.user.tenant, - department_id__in=department_ids - ).update(is_active=True) - - messages.success(request, f'{count} departments have been activated.') - - return redirect('core:department_list') - - -def bulk_deactivate_departments(request): - """ - Bulk deactivate departments. - """ - if request.method == 'POST': - department_ids = request.POST.getlist('department_ids') - count = Department.objects.filter( - tenant=request.user.tenant, - department_id__in=department_ids - ).update(is_active=False) - - messages.success(request, f'{count} departments have been deactivated.') - - return redirect('core:department_list') - - def bulk_export_audit_logs(request): """ Bulk export audit logs. @@ -1511,7 +1213,6 @@ def bulk_export_audit_logs(request): return redirect('core:audit_log_list') -# Missing API Views def validate_tenant_data(request): """ AJAX validation for tenant data. @@ -1528,31 +1229,6 @@ def validate_tenant_data(request): return JsonResponse({'valid': len(errors) == 0, 'errors': errors}) -def get_department_hierarchy(request): - """ - Get department hierarchy as JSON. - """ - departments = Department.objects.filter( - tenant=request.user.tenant, - is_active=True - ).select_related('parent') - - def build_tree(parent=None): - children = [] - for dept in departments: - if dept.parent == parent: - children.append({ - 'id': str(dept.department_id), - 'name': dept.name, - 'type': dept.department_type, - 'children': build_tree(dept) - }) - return children - - hierarchy = build_tree() - return JsonResponse({'hierarchy': hierarchy}) - - def get_system_status(request): """ Get system status information. @@ -1604,8 +1280,6 @@ def backup_configuration(request): return response - - def restore_configuration(request): """ Restore system configuration from backup. @@ -1644,111 +1318,184 @@ def restore_configuration(request): return render(request, 'core/restore_configuration.html') -@login_required -def assign_department_head(request, pk): - """ - Assign a department head to a department. - """ - department = get_object_or_404(Department, pk=pk, tenant=request.user.tenant) - - if request.method == 'POST': - user_id = request.POST.get('user_id') - - if user_id: - try: - user = User.objects.get(id=user_id, tenant=request.user.tenant) - - # Remove current department head if exists - if department.department_head: - old_head = department.department_head - AuditLogger.log_event( - request=request, - event_type='UPDATE', - event_category='SYSTEM_ADMINISTRATION', - action=f'Removed department head from {department.name}', - description=f'Removed {old_head.get_full_name()} as head of {department.name}', - content_object=department, - additional_data={ - 'old_department_head_id': old_head.id, - 'old_department_head_name': old_head.get_full_name() - } - ) - - # Assign new department head - department.department_head = user - department.save() - - # Log the assignment - AuditLogger.log_event( - request=request, - event_type='UPDATE', - event_category='SYSTEM_ADMINISTRATION', - action=f'Assigned department head to {department.name}', - description=f'Assigned {user.get_full_name()} as head of {department.name}', - content_object=department, - additional_data={ - 'new_department_head_id': user.id, - 'new_department_head_name': user.get_full_name() - } - ) - - messages.success( - request, - f'{user.get_full_name()} has been assigned as head of {department.name}.' - ) - return redirect('core:department_detail', pk=department.pk) - - except User.DoesNotExist: - messages.error(request, 'Selected user not found.') - else: - # Remove department head - if department.department_head: - old_head = department.department_head - department.department_head = None - department.save() - - # Log the removal - AuditLogger.log_event( - request=request, - event_type='UPDATE', - event_category='SYSTEM_ADMINISTRATION', - action=f'Removed department head from {department.name}', - description=f'Removed {old_head.get_full_name()} as head of {department.name}', - content_object=department, - additional_data={ - 'removed_department_head_id': old_head.id, - 'removed_department_head_name': old_head.get_full_name() - } - ) - - messages.success( - request, - f'Department head has been removed from {department.name}.' - ) - else: - messages.info(request, 'No department head was assigned.') - - return redirect('core:department_detail', pk=department.pk) - - # Get eligible users (staff members who can be department heads) - eligible_users = User.objects.filter( - tenant=request.user.tenant, - is_active=True, - is_staff=True - ).exclude( - id=department.department_head.id if department.department_head else None - ).order_by('first_name', 'last_name') - - context = { - 'department': department, - 'eligible_users': eligible_users, - 'current_head': department.department_head, - } - - return render(request, 'core/assign_department_head.html', context) +# Department Views + +# class DepartmentListView(LoginRequiredMixin, ListView): +# """ +# List departments. +# """ +# model = Department +# template_name = 'core/department_list.html' +# context_object_name = 'departments' +# paginate_by = 20 +# +# def get_queryset(self): +# tenant = getattr(self.request, 'tenant', None) +# if not tenant: +# return Department.objects.none() +# +# queryset = Department.objects.filter(tenant=tenant).order_by('name') +# +# # Apply search filter +# search = self.request.GET.get('search') +# if search: +# queryset = queryset.filter( +# Q(name__icontains=search) | +# Q(description__icontains=search) | +# Q(location__icontains=search) +# ) +# +# # Apply status filter +# status = self.request.GET.get('status') +# if status: +# queryset = queryset.filter(is_active=(status == 'active')) +# +# return queryset +# +# +# class DepartmentDetailView(LoginRequiredMixin, DetailView): +# """ +# Display department details. +# """ +# model = Department +# template_name = 'core/department_detail.html' +# context_object_name = 'department' +# +# def get_queryset(self): +# tenant = getattr(self.request, 'tenant', None) +# if not tenant: +# return Department.objects.none() +# return Department.objects.filter(tenant=tenant) +# +# def get_context_data(self, **kwargs): +# context = super().get_context_data(**kwargs) +# department = self.object +# +# # Get department statistics +# context.update({ +# 'employee_count': department.current_staff_count, +# 'recent_activity': AuditLogEntry.objects.filter( +# tenant=department.tenant, +# object_id=str(department.pk), +# content_type__model='department' +# ).order_by('-timestamp')[:10], +# }) +# +# return context +# +# +# class DepartmentCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView): +# """ +# Create new department. +# """ +# model = Department +# form_class = DepartmentForm +# template_name = 'core/department_form.html' +# permission_required = 'core.add_department' +# success_url = reverse_lazy('core:department_list') +# +# def form_valid(self, form): +# # Set tenant +# form.instance.tenant = getattr(self.request, 'tenant', None) +# response = super().form_valid(form) +# +# # Log department creation +# AuditLogger.log_event( +# tenant=form.instance.tenant, +# event_type='CREATE', +# event_category='SYSTEM_ADMINISTRATION', +# action='Create Department', +# description=f'Created department: {self.object.name}', +# user=self.request.user, +# content_object=self.object, +# request=self.request +# ) +# +# messages.success(self.request, f'Department "{self.object.name}" created successfully.') +# return response +# +# +# class DepartmentUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): +# """ +# Update department. +# """ +# model = Department +# form_class = DepartmentForm +# template_name = 'core/department_form.html' +# permission_required = 'core.change_department' +# +# def get_queryset(self): +# tenant = getattr(self.request, 'tenant', None) +# if not tenant: +# return Department.objects.none() +# return Department.objects.filter(tenant=tenant) +# +# def get_success_url(self): +# return reverse('core:department_detail', kwargs={'pk': self.object.pk}) +# +# def form_valid(self, form): +# response = super().form_valid(form) +# +# # Log department update +# AuditLogger.log_event( +# tenant=self.object.tenant, +# event_type='UPDATE', +# event_category='SYSTEM_ADMINISTRATION', +# action='Update Department', +# description=f'Updated department: {self.object.name}', +# user=self.request.user, +# content_object=self.object, +# request=self.request +# ) +# +# messages.success(self.request, f'Department "{self.object.name}" updated successfully.') +# return response +# +# +# class DepartmentDeleteView(LoginRequiredMixin, PermissionRequiredMixin, DeleteView): +# """ +# Delete department (soft delete to inactive). +# """ +# model = Department +# template_name = 'core/department_confirm_delete.html' +# permission_required = 'core.delete_department' +# success_url = reverse_lazy('core:department_list') +# +# def get_queryset(self): +# tenant = getattr(self.request, 'tenant', None) +# if not tenant: +# return Department.objects.none() +# return Department.objects.filter(tenant=tenant) +# +# def delete(self, request, *args, **kwargs): +# self.object = self.get_object() +# +# # Check if department has employees +# if self.object.get_employee_count() > 0: +# messages.error(request, 'Cannot delete department with active employees.') +# return redirect('core:department_detail', pk=self.object.pk) +# +# # Soft delete - set to inactive +# self.object.is_active = False +# self.object.save() +# +# # Log department deletion +# AuditLogger.log_event( +# tenant=self.object.tenant, +# event_type='DELETE', +# event_category='SYSTEM_ADMINISTRATION', +# action='Deactivate Department', +# description=f'Deactivated department: {self.object.name}', +# user=request.user, +# content_object=self.object, +# request=request +# ) +# +# messages.success(request, f'Department "{self.object.name}" deactivated successfully.') +# return redirect(self.success_url) # # import json # diff --git a/core_data.py b/core_data.py index a34eb5e7..3a154b9e 100644 --- a/core_data.py +++ b/core_data.py @@ -7,13 +7,12 @@ django.setup() import random from datetime import datetime, timedelta, timezone -from django.contrib.auth import get_user_model +from accounts.models import User from django.utils import timezone as django_timezone -from core.models import Tenant, AuditLogEntry, SystemConfiguration, SystemNotification, IntegrationLog, Department +from core.models import Tenant, AuditLogEntry, SystemConfiguration, SystemNotification, IntegrationLog import uuid import json -User = get_user_model() # Saudi-specific data constants SAUDI_CITIES = [ @@ -119,64 +118,64 @@ def create_super_user(): tenant=tenant1 # assumes your User model has a ForeignKey to Tenant named `tenant` ) -def create_saudi_departments(tenants, departments_per_tenant=15): - """Create Saudi healthcare departments""" - departments = [] - - department_types = [ - ('clinical', 'Clinical Department'), - ('support', 'Support Department'), - ('administrative', 'Administrative Department'), - ('diagnostic', 'Diagnostic Department') - ] - - for tenant in tenants: - # Create main departments - for specialty in SAUDI_MEDICAL_SPECIALTIES[:departments_per_tenant]: - dept_type = random.choice(department_types) - - department = Department.objects.create( - tenant=tenant, - department_id=uuid.uuid4(), - code=specialty.replace(' ', '').upper()[:10], - name=f"Department of {specialty}", - description=f"Specialized {specialty.lower()} department providing comprehensive medical care", - department_type=dept_type[0], - parent_department=None, # Main departments - phone=f"+966-{random.randint(1, 9)}-{random.randint(100, 999)}-{random.randint(1000, 9999)}", - extension=f"{random.randint(1000, 9999)}", - email=f"{specialty.lower().replace(' ', '').replace('and', '')}@{tenant.name.lower().replace(' ', '').replace('-', '')}.sa", - building=f"Building {random.choice(['A', 'B', 'C', 'D', 'Medical Tower'])}", - floor=f"Floor {random.randint(1, 10)}", - wing=random.choice(['North Wing', 'South Wing', 'East Wing', 'West Wing', 'Central Wing']), - room_numbers=f"{random.randint(100, 999)}-{random.randint(100, 999)}", - is_active=True, - is_24_hour=specialty in ['Emergency Medicine', 'Internal Medicine', 'Cardiology'], - operating_hours={ - "sunday": {"open": "07:00", "close": "20:00"}, - "monday": {"open": "07:00", "close": "20:00"}, - "tuesday": {"open": "07:00", "close": "20:00"}, - "wednesday": {"open": "07:00", "close": "20:00"}, - "thursday": {"open": "07:00", "close": "20:00"}, - "friday": {"open": "14:00", "close": "20:00"}, # Friday afternoon - "saturday": {"open": "07:00", "close": "20:00"} - }, - cost_center_code=f"CC-{random.randint(1000, 9999)}", - budget_code=f"BG-{specialty.replace(' ', '').upper()[:6]}", - authorized_positions=random.randint(5, 50), - current_staff_count=random.randint(3, 45), - accreditation_required=True, - accreditation_body="CBAHI", - last_inspection_date=django_timezone.now() - timedelta(days=random.randint(30, 365)), - next_inspection_date=django_timezone.now() + timedelta(days=random.randint(30, 365)), - created_at=django_timezone.now() - timedelta(days=random.randint(1, 180)), - updated_at=django_timezone.now() - ) - departments.append(department) - - print(f"Created {departments_per_tenant} departments for {tenant.name}") - - return departments +# def create_saudi_departments(tenants, departments_per_tenant=15): +# """Create Saudi healthcare departments""" +# departments = [] +# +# department_types = [ +# ('clinical', 'Clinical Department'), +# ('support', 'Support Department'), +# ('administrative', 'Administrative Department'), +# ('diagnostic', 'Diagnostic Department') +# ] +# +# for tenant in tenants: +# # Create main departments +# for specialty in SAUDI_MEDICAL_SPECIALTIES[:departments_per_tenant]: +# dept_type = random.choice(department_types) +# +# department = Department.objects.create( +# tenant=tenant, +# department_id=uuid.uuid4(), +# code=specialty.replace(' ', '').upper()[:10], +# name=f"Department of {specialty}", +# description=f"Specialized {specialty.lower()} department providing comprehensive medical care", +# department_type=dept_type[0], +# parent_department=None, # Main departments +# phone=f"+966-{random.randint(1, 9)}-{random.randint(100, 999)}-{random.randint(1000, 9999)}", +# extension=f"{random.randint(1000, 9999)}", +# email=f"{specialty.lower().replace(' ', '').replace('and', '')}@{tenant.name.lower().replace(' ', '').replace('-', '')}.sa", +# building=f"Building {random.choice(['A', 'B', 'C', 'D', 'Medical Tower'])}", +# floor=f"Floor {random.randint(1, 10)}", +# wing=random.choice(['North Wing', 'South Wing', 'East Wing', 'West Wing', 'Central Wing']), +# room_numbers=f"{random.randint(100, 999)}-{random.randint(100, 999)}", +# is_active=True, +# is_24_hour=specialty in ['Emergency Medicine', 'Internal Medicine', 'Cardiology'], +# operating_hours={ +# "sunday": {"open": "07:00", "close": "20:00"}, +# "monday": {"open": "07:00", "close": "20:00"}, +# "tuesday": {"open": "07:00", "close": "20:00"}, +# "wednesday": {"open": "07:00", "close": "20:00"}, +# "thursday": {"open": "07:00", "close": "20:00"}, +# "friday": {"open": "14:00", "close": "20:00"}, # Friday afternoon +# "saturday": {"open": "07:00", "close": "20:00"} +# }, +# cost_center_code=f"CC-{random.randint(1000, 9999)}", +# budget_code=f"BG-{specialty.replace(' ', '').upper()[:6]}", +# authorized_positions=random.randint(5, 50), +# current_staff_count=random.randint(3, 45), +# accreditation_required=True, +# accreditation_body="CBAHI", +# last_inspection_date=django_timezone.now() - timedelta(days=random.randint(30, 365)), +# next_inspection_date=django_timezone.now() + timedelta(days=random.randint(30, 365)), +# created_at=django_timezone.now() - timedelta(days=random.randint(1, 180)), +# updated_at=django_timezone.now() +# ) +# departments.append(department) +# +# print(f"Created {departments_per_tenant} departments for {tenant.name}") +# +# return departments def create_saudi_system_configurations(tenants): @@ -439,8 +438,8 @@ def main(): create_super_user() # Create departments - print("\n2. Creating Saudi Medical Departments...") - departments = create_saudi_departments(tenants, 12) + # print("\n2. Creating Saudi Medical Departments...") + # departments = create_saudi_departments(tenants, 12) # Create system configurations print("\n3. Creating Saudi System Configurations...") @@ -461,7 +460,7 @@ def main(): print(f"\n✅ Saudi Healthcare Data Generation Complete!") print(f"📊 Summary:") print(f" - Tenants: {len(tenants)}") - print(f" - Departments: {len(departments)}") + # print(f" - Departments: {len(departments)}") print(f" - System Configurations: {len(configurations)}") print(f" - Notifications: {len(notifications)}") print(f" - Audit Logs: {len(audit_logs)}") @@ -469,7 +468,7 @@ def main(): return { 'tenants': tenants, - 'departments': departments, + # 'departments': departments, 'configurations': configurations, 'notifications': notifications, 'audit_logs': audit_logs, diff --git a/db.sqlite3 b/db.sqlite3 index 80274949..da7081a6 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/emr/migrations/0001_initial.py b/emr/migrations/0001_initial.py index 19fad943..191ce14f 100644 --- a/emr/migrations/0001_initial.py +++ b/emr/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion diff --git a/emr/migrations/__pycache__/0001_initial.cpython-312.pyc b/emr/migrations/__pycache__/0001_initial.cpython-312.pyc index e9d31645..d5cab213 100644 Binary files a/emr/migrations/__pycache__/0001_initial.cpython-312.pyc and b/emr/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/emr_data.py b/emr_data.py index ed79e1ba..65684cdd 100644 --- a/emr_data.py +++ b/emr_data.py @@ -537,7 +537,7 @@ def create_encounters(tenants, days_back=30): suitable_admissions = [ adm for adm in admissions if adm.patient == patient and - adm.admission_date <= encounter_date + adm.admission_datetime <= start_datetime ] if suitable_admissions: linked_admission = random.choice(suitable_admissions) diff --git a/hr/__pycache__/admin.cpython-312.pyc b/hr/__pycache__/admin.cpython-312.pyc index 3e087212..f63ca15c 100644 Binary files a/hr/__pycache__/admin.cpython-312.pyc and b/hr/__pycache__/admin.cpython-312.pyc differ diff --git a/hr/__pycache__/forms.cpython-312.pyc b/hr/__pycache__/forms.cpython-312.pyc index 8de8784f..bc3914af 100644 Binary files a/hr/__pycache__/forms.cpython-312.pyc and b/hr/__pycache__/forms.cpython-312.pyc differ diff --git a/hr/__pycache__/models.cpython-312.pyc b/hr/__pycache__/models.cpython-312.pyc index 21574f34..dfc522a7 100644 Binary files a/hr/__pycache__/models.cpython-312.pyc and b/hr/__pycache__/models.cpython-312.pyc differ diff --git a/hr/__pycache__/urls.cpython-312.pyc b/hr/__pycache__/urls.cpython-312.pyc index 8ff4cc55..b73a3b6b 100644 Binary files a/hr/__pycache__/urls.cpython-312.pyc and b/hr/__pycache__/urls.cpython-312.pyc differ diff --git a/hr/__pycache__/views.cpython-312.pyc b/hr/__pycache__/views.cpython-312.pyc index cedb4c60..e794151f 100644 Binary files a/hr/__pycache__/views.cpython-312.pyc and b/hr/__pycache__/views.cpython-312.pyc differ diff --git a/hr/admin.py b/hr/admin.py index 2fa4cdf9..1bdb189d 100644 --- a/hr/admin.py +++ b/hr/admin.py @@ -213,7 +213,7 @@ class DepartmentAdmin(admin.ModelAdmin): Admin interface for departments. """ list_display = [ - 'department_code', 'name', 'department_type', + 'code', 'name', 'department_type', 'department_head', 'employee_count_display', 'total_fte_display', 'is_active' ] @@ -221,7 +221,7 @@ class DepartmentAdmin(admin.ModelAdmin): 'tenant', 'department_type', 'is_active' ] search_fields = [ - 'department_code', 'name', 'description' + 'code', 'name', 'description' ] readonly_fields = [ 'department_id', 'employee_count', 'total_fte', @@ -230,7 +230,7 @@ class DepartmentAdmin(admin.ModelAdmin): fieldsets = [ ('Department Information', { 'fields': [ - 'department_id', 'tenant', 'department_code', 'name', 'description' + 'department_id', 'tenant', 'code', 'name', 'description' ] }), ('Department Type', { diff --git a/hr/forms.py b/hr/forms.py index 3c08887e..97df5df5 100644 --- a/hr/forms.py +++ b/hr/forms.py @@ -274,7 +274,7 @@ class DepartmentForm(forms.ModelForm): class Meta: model = Department fields = [ - 'name', 'department_code', 'description', 'department_type', + 'name', 'code', 'description', 'department_type', 'parent_department', 'department_head', 'annual_budget', 'cost_center', 'location', 'is_active', 'notes' ] diff --git a/hr/migrations/0001_initial.py b/hr/migrations/0001_initial.py index 30be61eb..a3bdf169 100644 --- a/hr/migrations/0001_initial.py +++ b/hr/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -40,8 +40,11 @@ class Migration(migrations.Migration): ), ), ( - "department_code", - models.CharField(help_text="Department code", max_length=20), + "code", + models.CharField( + help_text="Department code (e.g., CARD, EMER, SURG)", + max_length=20, + ), ), ("name", models.CharField(help_text="Department name", max_length=100)), ( @@ -64,6 +67,33 @@ class Migration(migrations.Migration): max_length=20, ), ), + ( + "phone", + models.CharField( + blank=True, + help_text="Department phone number", + max_length=20, + null=True, + ), + ), + ( + "extension", + models.CharField( + blank=True, + help_text="Phone extension", + max_length=10, + null=True, + ), + ), + ( + "email", + models.EmailField( + blank=True, + help_text="Department email", + max_length=254, + null=True, + ), + ), ( "annual_budget", models.DecimalField( @@ -83,6 +113,12 @@ class Migration(migrations.Migration): null=True, ), ), + ( + "authorized_positions", + models.PositiveIntegerField( + default=0, help_text="Number of authorized positions" + ), + ), ( "location", models.CharField( @@ -96,6 +132,50 @@ class Migration(migrations.Migration): "is_active", models.BooleanField(default=True, help_text="Department is active"), ), + ( + "is_24_hour", + models.BooleanField( + default=False, help_text="Department operates 24 hours" + ), + ), + ( + "operating_hours", + models.JSONField( + blank=True, + default=dict, + help_text="Operating hours by day of week", + ), + ), + ( + "accreditation_required", + models.BooleanField( + default=False, + help_text="Department requires special accreditation", + ), + ), + ( + "accreditation_body", + models.CharField( + blank=True, + help_text="Accrediting body (e.g., Joint Commission, CAP)", + max_length=100, + null=True, + ), + ), + ( + "last_inspection_date", + models.DateField( + blank=True, help_text="Last inspection date", null=True + ), + ), + ( + "next_inspection_date", + models.DateField( + blank=True, + help_text="Next scheduled inspection date", + null=True, + ), + ), ( "notes", models.TextField( @@ -122,7 +202,7 @@ class Migration(migrations.Migration): help_text="Parent department", null=True, on_delete=django.db.models.deletion.CASCADE, - related_name="child_departments", + related_name="sub_departments", to="hr.department", ), ), @@ -131,7 +211,7 @@ class Migration(migrations.Migration): models.ForeignKey( help_text="Organization tenant", on_delete=django.db.models.deletion.CASCADE, - related_name="hr_departments", + related_name="departments", to="core.tenant", ), ), @@ -248,6 +328,16 @@ class Migration(migrations.Migration): blank=True, help_text="Country", max_length=50, null=True ), ), + ( + "national_id", + models.CharField( + blank=True, + help_text="National ID", + max_length=10, + null=True, + unique=True, + ), + ), ( "date_of_birth", models.DateField(blank=True, help_text="Date of birth", null=True), @@ -1193,6 +1283,12 @@ class Migration(migrations.Migration): "passed", models.BooleanField(default=False, help_text="Training passed"), ), + ( + "is_certified", + models.BooleanField( + default=False, help_text="Training is certified" + ), + ), ( "certificate_number", models.CharField( @@ -1299,9 +1395,7 @@ class Migration(migrations.Migration): ), migrations.AddIndex( model_name="department", - index=models.Index( - fields=["department_code"], name="hr_departme_departm_078f94_idx" - ), + index=models.Index(fields=["code"], name="hr_departme_code_d27daf_idx"), ), migrations.AddIndex( model_name="department", @@ -1315,7 +1409,7 @@ class Migration(migrations.Migration): ), migrations.AlterUniqueTogether( name="department", - unique_together={("tenant", "department_code")}, + unique_together={("tenant", "code")}, ), migrations.AddIndex( model_name="performancereview", diff --git a/hr/migrations/0002_trainingrecord_is_certified.py b/hr/migrations/0002_trainingrecord_is_certified.py deleted file mode 100644 index e80a416d..00000000 --- a/hr/migrations/0002_trainingrecord_is_certified.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-07 14:29 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("hr", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="trainingrecord", - name="is_certified", - field=models.BooleanField(default=False, help_text="Training is certified"), - ), - ] diff --git a/hr/migrations/__pycache__/0001_initial.cpython-312.pyc b/hr/migrations/__pycache__/0001_initial.cpython-312.pyc index b4d4aeb9..631b8912 100644 Binary files a/hr/migrations/__pycache__/0001_initial.cpython-312.pyc and b/hr/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/hr/migrations/__pycache__/0002_trainingrecord_is_certified.cpython-312.pyc b/hr/migrations/__pycache__/0002_trainingrecord_is_certified.cpython-312.pyc deleted file mode 100644 index 5d772d29..00000000 Binary files a/hr/migrations/__pycache__/0002_trainingrecord_is_certified.cpython-312.pyc and /dev/null differ diff --git a/hr/models.py b/hr/models.py index a1240a65..e66aef26 100644 --- a/hr/models.py +++ b/hr/models.py @@ -422,7 +422,7 @@ class Department(models.Model): editable=False, help_text='Unique department identifier' ) - department_code = models.CharField( + code = models.CharField( max_length=20, help_text='Department code (e.g., CARD, EMER, SURG)' ) @@ -570,14 +570,14 @@ class Department(models.Model): ordering = ['name'] indexes = [ models.Index(fields=['tenant', 'department_type']), - models.Index(fields=['department_code']), + models.Index(fields=['code']), models.Index(fields=['name']), models.Index(fields=['is_active']), ] - unique_together = ['tenant', 'department_code'] + unique_together = ['tenant', 'code'] def __str__(self): - return f"{self.department_code} - {self.name}" + return f"{self.code} - {self.name}" @property def full_name(self): diff --git a/hr/urls.py b/hr/urls.py index f1b272b4..d7cdf06c 100644 --- a/hr/urls.py +++ b/hr/urls.py @@ -30,7 +30,15 @@ urlpatterns = [ path('departments//', views.DepartmentDetailView.as_view(), name='department_detail'), path('departments//update/', views.DepartmentUpdateView.as_view(), name='department_update'), path('departments//delete/', views.DepartmentDeleteView.as_view(), name='department_delete'), - + path('departments//activate/', views.activate_department, name='activate_department'), + path('departments//deactivate/', views.deactivate_department, name='deactivate_department'), + path('departments/bulk-activate/', views.bulk_activate_departments, name='bulk_activate_departments'), + path('departments/bulk-deactivate/', views.bulk_deactivate_departments, name='bulk_deactivate_departments'), + path('departments//assign-head/', views.assign_department_head, name='assign_department_head'), + path('api/department-hierarchy/', views.get_department_hierarchy, name='get_department_hierarchy'), + path('htmx/department-tree/', views.department_tree, name='department_tree'), + path('search/departments/', views.department_search, name='department_search'), + # ============================================================================ # SCHEDULE URLS (LIMITED CRUD - Operational Data) # ============================================================================ diff --git a/hr/views.py b/hr/views.py index f09cf856..2a5c699a 100644 --- a/hr/views.py +++ b/hr/views.py @@ -17,7 +17,7 @@ from django.core.paginator import Paginator from django.db import transaction from datetime import datetime, timedelta, date import json - +from accounts.models import User from .models import ( Employee, Department, Schedule, ScheduleAssignment, TimeEntry, PerformanceReview, TrainingRecord @@ -26,6 +26,7 @@ from .forms import ( EmployeeForm, DepartmentForm, ScheduleForm, ScheduleAssignmentForm, TimeEntryForm, PerformanceReviewForm, TrainingRecordForm ) +from core.utils import AuditLogger class HRDashboardView(LoginRequiredMixin, TemplateView): @@ -1284,6 +1285,222 @@ def api_department_list(request): return JsonResponse({'departments': list(departments)}) +def department_tree(request): + """ + HTMX view for department tree structure. + """ + departments = Department.objects.filter( + tenant=request.user.tenant, + parent=None + ).prefetch_related('children') + + return render(request, 'core/partials/department_tree.html', { + 'departments': departments + }) + + +def activate_department(request, pk): + """ + Activate a department. + """ + department = get_object_or_404(Department, department_id=pk) + department.is_active = True + department.save() + + messages.success(request, f'Department "{department.name}" has been activated.') + return redirect('hr:department_detail', pk=pk) + + +def deactivate_department(request, pk): + """ + Deactivate a department. + """ + department = get_object_or_404(Department, department_id=pk) + department.is_active = False + department.save() + + messages.success(request, f'Department "{department.name}" has been deactivated.') + return redirect('hr:department_detail', pk=pk) + + +def department_search(request): + """ + AJAX search for departments. + """ + query = request.GET.get('q', '') + departments = [] + + if query: + departments = Department.objects.filter( + tenant=request.user.tenant, + name__icontains=query + ).values('department_id', 'name', 'department_type')[:10] + + return JsonResponse({'departments': list(departments)}) + + +def bulk_activate_departments(request): + """ + Bulk activate departments. + """ + if request.method == 'POST': + department_ids = request.POST.getlist('department_ids') + count = Department.objects.filter( + tenant=request.user.tenant, + department_id__in=department_ids + ).update(is_active=True) + + messages.success(request, f'{count} departments have been activated.') + + return redirect('hr:department_list') + + +def bulk_deactivate_departments(request): + """ + Bulk deactivate departments. + """ + if request.method == 'POST': + department_ids = request.POST.getlist('department_ids') + count = Department.objects.filter( + tenant=request.user.tenant, + department_id__in=department_ids + ).update(is_active=False) + + messages.success(request, f'{count} departments have been deactivated.') + + return redirect('hr:department_list') + + +def get_department_hierarchy(request): + """ + Get department hierarchy as JSON. + """ + departments = Department.objects.filter( + tenant=request.user.tenant, + is_active=True + ).select_related('parent') + + def build_tree(parent=None): + children = [] + for dept in departments: + if dept.parent == parent: + children.append({ + 'id': str(dept.department_id), + 'name': dept.name, + 'type': dept.department_type, + 'children': build_tree(dept) + }) + return children + + hierarchy = build_tree() + return JsonResponse({'hierarchy': hierarchy}) + + +@login_required +def assign_department_head(request, pk): + """ + Assign a department head to a department. + """ + department = get_object_or_404(Department, pk=pk, tenant=request.user.tenant) + + if request.method == 'POST': + user_id = request.POST.get('user_id') + + if user_id: + try: + user = User.objects.get(id=user_id, tenant=request.user.tenant) + + # Remove current department head if exists + if department.department_head: + old_head = department.department_head + AuditLogger.log_event( + request=request, + event_type='UPDATE', + event_category='SYSTEM_ADMINISTRATION', + action=f'Removed department head from {department.name}', + description=f'Removed {old_head.get_full_name()} as head of {department.name}', + content_object=department, + additional_data={ + 'old_department_head_id': old_head.id, + 'old_department_head_name': old_head.get_full_name() + } + ) + + # Assign new department head + department.department_head = user + department.save() + + # Log the assignment + AuditLogger.log_event( + request=request, + event_type='UPDATE', + event_category='SYSTEM_ADMINISTRATION', + action=f'Assigned department head to {department.name}', + description=f'Assigned {user.get_full_name()} as head of {department.name}', + content_object=department, + additional_data={ + 'new_department_head_id': user.id, + 'new_department_head_name': user.get_full_name() + } + ) + + messages.success( + request, + f'{user.get_full_name()} has been assigned as head of {department.name}.' + ) + return redirect('core:department_detail', pk=department.pk) + + except User.DoesNotExist: + messages.error(request, 'Selected user not found.') + else: + # Remove department head + if department.department_head: + old_head = department.department_head + department.department_head = None + department.save() + + # Log the removal + AuditLogger.log_event( + request=request, + event_type='UPDATE', + event_category='SYSTEM_ADMINISTRATION', + action=f'Removed department head from {department.name}', + description=f'Removed {old_head.get_full_name()} as head of {department.name}', + content_object=department, + additional_data={ + 'removed_department_head_id': old_head.id, + 'removed_department_head_name': old_head.get_full_name() + } + ) + + messages.success( + request, + f'Department head has been removed from {department.name}.' + ) + else: + messages.info(request, 'No department head was assigned.') + + return redirect('core:department_detail', pk=department.pk) + + # Get eligible users (staff members who can be department heads) + eligible_users = User.objects.filter( + tenant=request.user.tenant, + is_active=True, + is_staff=True + ).exclude( + id=department.department_head.id if department.department_head else None + ).order_by('first_name', 'last_name') + + context = { + 'department': department, + 'eligible_users': eligible_users, + 'current_head': department.department_head, + } + + return render(request, 'hr/departments/assign_department_head.html', context) + + + # Query patterns to use if needed # # All upcoming sessions for a tenant (next 30 days) # TrainingSession.objects.filter( diff --git a/hr_data.py b/hr_data.py index 58e4935a..605ab5e8 100644 --- a/hr_data.py +++ b/hr_data.py @@ -106,7 +106,7 @@ def create_saudi_departments(tenants): for tenant in tenants: # Check for existing departments to avoid duplicates existing_dept_codes = set( - Department.objects.filter(tenant=tenant).values_list('department_code', flat=True) + Department.objects.filter(tenant=tenant).values_list('code', flat=True) ) for dept_code, dept_name, dept_desc in SAUDI_DEPARTMENTS: @@ -129,7 +129,7 @@ def create_saudi_departments(tenants): try: department = Department.objects.create( tenant=tenant, - department_code=dept_code, + code=dept_code, name=dept_name, description=dept_desc, department_type=dept_type, diff --git a/inpatients/migrations/0001_initial.py b/inpatients/migrations/0001_initial.py index 77360ea7..6d3943af 100644 --- a/inpatients/migrations/0001_initial.py +++ b/inpatients/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -403,6 +403,15 @@ class Migration(migrations.Migration): max_length=30, ), ), + ( + "is_operational", + models.BooleanField(default=True, help_text="Operational status"), + ), + ( + "is_active", + models.BooleanField(default=True, help_text="Active status"), + ), + ("is_active_out_of_service", models.BooleanField(default=True)), ( "room_type", models.CharField( @@ -518,10 +527,12 @@ class Migration(migrations.Migration): models.CharField( blank=True, choices=[ - ("WINDOW", "Window Side"), - ("DOOR", "Door Side"), - ("CENTER", "Center"), - ("CORNER", "Corner"), + ("A", "A"), + ("B", "B"), + ("C", "C"), + ("D", "D"), + ("E", "E"), + ("F", "F"), ], help_text="Position within room", max_length=20, @@ -619,7 +630,7 @@ class Migration(migrations.Migration): ), ( "ward_id", - models.CharField(help_text="Unique ward identifier", max_length=20), + models.CharField(help_text="Unique ward identifier", max_length=50), ), ("name", models.CharField(help_text="Ward name", max_length=200)), ( diff --git a/inpatients/migrations/0002_alter_ward_ward_id.py b/inpatients/migrations/0002_alter_ward_ward_id.py deleted file mode 100644 index 00faa022..00000000 --- a/inpatients/migrations/0002_alter_ward_ward_id.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.2.4 on 2025-08-19 15:11 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("inpatients", "0001_initial"), - ] - - operations = [ - migrations.AlterField( - model_name="ward", - name="ward_id", - field=models.CharField(help_text="Unique ward identifier", max_length=50), - ), - ] diff --git a/inpatients/migrations/0003_alter_bed_bed_position.py b/inpatients/migrations/0003_alter_bed_bed_position.py deleted file mode 100644 index 491d7479..00000000 --- a/inpatients/migrations/0003_alter_bed_bed_position.py +++ /dev/null @@ -1,31 +0,0 @@ -# Generated by Django 5.2.4 on 2025-08-19 19:40 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("inpatients", "0002_alter_ward_ward_id"), - ] - - operations = [ - migrations.AlterField( - model_name="bed", - name="bed_position", - field=models.CharField( - blank=True, - choices=[ - ("A", "A"), - ("B", "B"), - ("C", "C"), - ("D", "D"), - ("E", "E"), - ("F", "F"), - ], - help_text="Position within room", - max_length=20, - null=True, - ), - ), - ] diff --git a/inpatients/migrations/0004_bed_is_active_bed_is_active_out_of_service_and_more.py b/inpatients/migrations/0004_bed_is_active_bed_is_active_out_of_service_and_more.py deleted file mode 100644 index 8e22d5bb..00000000 --- a/inpatients/migrations/0004_bed_is_active_bed_is_active_out_of_service_and_more.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-03 15:57 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("inpatients", "0003_alter_bed_bed_position"), - ] - - operations = [ - migrations.AddField( - model_name="bed", - name="is_active", - field=models.BooleanField(default=True, help_text="Active status"), - ), - migrations.AddField( - model_name="bed", - name="is_active_out_of_service", - field=models.BooleanField(default=True), - ), - migrations.AddField( - model_name="bed", - name="is_operational", - field=models.BooleanField(default=True, help_text="Operational status"), - ), - ] diff --git a/inpatients/migrations/__pycache__/0001_initial.cpython-312.pyc b/inpatients/migrations/__pycache__/0001_initial.cpython-312.pyc index aebed849..ad44e29d 100644 Binary files a/inpatients/migrations/__pycache__/0001_initial.cpython-312.pyc and b/inpatients/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/inpatients/migrations/__pycache__/0002_alter_ward_ward_id.cpython-312.pyc b/inpatients/migrations/__pycache__/0002_alter_ward_ward_id.cpython-312.pyc deleted file mode 100644 index 08e78b7c..00000000 Binary files a/inpatients/migrations/__pycache__/0002_alter_ward_ward_id.cpython-312.pyc and /dev/null differ diff --git a/inpatients/migrations/__pycache__/0003_alter_bed_bed_position.cpython-312.pyc b/inpatients/migrations/__pycache__/0003_alter_bed_bed_position.cpython-312.pyc deleted file mode 100644 index 30aff1b1..00000000 Binary files a/inpatients/migrations/__pycache__/0003_alter_bed_bed_position.cpython-312.pyc and /dev/null differ diff --git a/inpatients/migrations/__pycache__/0004_bed_is_active_bed_is_active_out_of_service_and_more.cpython-312.pyc b/inpatients/migrations/__pycache__/0004_bed_is_active_bed_is_active_out_of_service_and_more.cpython-312.pyc deleted file mode 100644 index d4470ef8..00000000 Binary files a/inpatients/migrations/__pycache__/0004_bed_is_active_bed_is_active_out_of_service_and_more.cpython-312.pyc and /dev/null differ diff --git a/integration/migrations/0001_initial.py b/integration/migrations/0001_initial.py index ef482f1a..80354a47 100644 --- a/integration/migrations/0001_initial.py +++ b/integration/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion diff --git a/integration/migrations/__pycache__/0001_initial.cpython-312.pyc b/integration/migrations/__pycache__/0001_initial.cpython-312.pyc index 197aa51c..49482075 100644 Binary files a/integration/migrations/__pycache__/0001_initial.cpython-312.pyc and b/integration/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/inventory/migrations/0001_initial.py b/inventory/migrations/0001_initial.py index bb93bc52..dd6e0eb8 100644 --- a/inventory/migrations/0001_initial.py +++ b/inventory/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -325,6 +325,12 @@ class Migration(migrations.Migration): default=0, help_text="Reorder quantity" ), ), + ( + "min_stock_level", + models.PositiveIntegerField( + blank=True, help_text="Minimum stock level", null=True + ), + ), ( "max_stock_level", models.PositiveIntegerField( diff --git a/inventory/migrations/0002_inventoryitem_min_stock_level.py b/inventory/migrations/0002_inventoryitem_min_stock_level.py deleted file mode 100644 index 1a7c20fe..00000000 --- a/inventory/migrations/0002_inventoryitem_min_stock_level.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 5.2.4 on 2025-08-05 13:32 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("inventory", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="inventoryitem", - name="min_stock_level", - field=models.PositiveIntegerField( - blank=True, help_text="Minimum stock level", null=True - ), - ), - ] diff --git a/inventory/migrations/__pycache__/0001_initial.cpython-312.pyc b/inventory/migrations/__pycache__/0001_initial.cpython-312.pyc index 21925cdb..e31922f0 100644 Binary files a/inventory/migrations/__pycache__/0001_initial.cpython-312.pyc and b/inventory/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/inventory/migrations/__pycache__/0002_inventoryitem_min_stock_level.cpython-312.pyc b/inventory/migrations/__pycache__/0002_inventoryitem_min_stock_level.cpython-312.pyc deleted file mode 100644 index 00d49f54..00000000 Binary files a/inventory/migrations/__pycache__/0002_inventoryitem_min_stock_level.cpython-312.pyc and /dev/null differ diff --git a/laboratory/migrations/0001_initial.py b/laboratory/migrations/0001_initial.py index 4b824699..7a68c943 100644 --- a/laboratory/migrations/0001_initial.py +++ b/laboratory/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion import django.utils.timezone @@ -19,6 +19,177 @@ class Migration(migrations.Migration): ] operations = [ + migrations.CreateModel( + name="LabOrder", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "order_id", + models.UUIDField( + default=uuid.uuid4, + editable=False, + help_text="Unique order identifier", + unique=True, + ), + ), + ( + "order_number", + models.CharField( + help_text="Lab order number", max_length=20, unique=True + ), + ), + ( + "order_datetime", + models.DateTimeField( + default=django.utils.timezone.now, + help_text="Date and time order was placed", + ), + ), + ( + "priority", + models.CharField( + choices=[ + ("ROUTINE", "Routine"), + ("URGENT", "Urgent"), + ("STAT", "STAT"), + ("ASAP", "ASAP"), + ("TIMED", "Timed"), + ], + default="ROUTINE", + help_text="Order priority", + max_length=20, + ), + ), + ( + "clinical_indication", + models.TextField( + blank=True, help_text="Clinical indication for tests", null=True + ), + ), + ( + "diagnosis_code", + models.CharField( + blank=True, + help_text="ICD-10 diagnosis code", + max_length=20, + null=True, + ), + ), + ( + "clinical_notes", + models.TextField(blank=True, help_text="Clinical notes", null=True), + ), + ( + "collection_datetime", + models.DateTimeField( + blank=True, + help_text="Requested collection date and time", + null=True, + ), + ), + ( + "collection_location", + models.CharField( + blank=True, + help_text="Collection location", + max_length=100, + null=True, + ), + ), + ( + "fasting_status", + models.CharField( + choices=[ + ("FASTING", "Fasting"), + ("NON_FASTING", "Non-Fasting"), + ("UNKNOWN", "Unknown"), + ], + default="UNKNOWN", + help_text="Patient fasting status", + max_length=20, + ), + ), + ( + "status", + models.CharField( + choices=[ + ("PENDING", "Pending"), + ("SCHEDULED", "Scheduled"), + ("COLLECTED", "Collected"), + ("IN_PROGRESS", "In Progress"), + ("COMPLETED", "Completed"), + ("CANCELLED", "Cancelled"), + ("ON_HOLD", "On Hold"), + ], + default="PENDING", + help_text="Order status", + max_length=20, + ), + ), + ( + "special_instructions", + models.TextField( + blank=True, + help_text="Special instructions for collection or processing", + null=True, + ), + ), + ("created_at", models.DateTimeField(auto_now_add=True)), + ("updated_at", models.DateTimeField(auto_now=True)), + ( + "encounter", + models.ForeignKey( + blank=True, + help_text="Related encounter", + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="lab_orders", + to="emr.encounter", + ), + ), + ( + "ordering_provider", + models.ForeignKey( + help_text="Ordering provider", + on_delete=django.db.models.deletion.CASCADE, + related_name="ordered_lab_tests", + to=settings.AUTH_USER_MODEL, + ), + ), + ( + "patient", + models.ForeignKey( + help_text="Patient", + on_delete=django.db.models.deletion.CASCADE, + related_name="lab_orders", + to="patients.patientprofile", + ), + ), + ( + "tenant", + models.ForeignKey( + help_text="Organization tenant", + on_delete=django.db.models.deletion.CASCADE, + related_name="lab_orders", + to="core.tenant", + ), + ), + ], + options={ + "verbose_name": "Lab Order", + "verbose_name_plural": "Lab Orders", + "db_table": "laboratory_lab_order", + "ordering": ["-order_datetime"], + }, + ), migrations.CreateModel( name="LabTest", fields=[ @@ -352,7 +523,7 @@ class Migration(migrations.Migration): }, ), migrations.CreateModel( - name="LabOrder", + name="LabResult", fields=[ ( "id", @@ -364,89 +535,123 @@ class Migration(migrations.Migration): ), ), ( - "order_id", + "result_id", models.UUIDField( default=uuid.uuid4, editable=False, - help_text="Unique order identifier", + help_text="Unique result identifier", unique=True, ), ), ( - "order_number", + "result_value", + models.TextField( + blank=True, help_text="Test result value", null=True + ), + ), + ( + "result_unit", models.CharField( - help_text="Lab order number", max_length=20, unique=True + blank=True, + help_text="Result unit of measure", + max_length=20, + null=True, ), ), ( - "order_datetime", - models.DateTimeField( - default=django.utils.timezone.now, - help_text="Date and time order was placed", - ), - ), - ( - "priority", + "result_type", models.CharField( choices=[ - ("ROUTINE", "Routine"), - ("URGENT", "Urgent"), - ("STAT", "STAT"), - ("ASAP", "ASAP"), - ("TIMED", "Timed"), + ("NUMERIC", "Numeric"), + ("TEXT", "Text"), + ("CODED", "Coded"), + ("NARRATIVE", "Narrative"), ], - default="ROUTINE", - help_text="Order priority", + default="NUMERIC", + help_text="Type of result", max_length=20, ), ), ( - "clinical_indication", - models.TextField( - blank=True, help_text="Clinical indication for tests", null=True - ), - ), - ( - "diagnosis_code", + "reference_range", models.CharField( blank=True, - help_text="ICD-10 diagnosis code", - max_length=20, - null=True, - ), - ), - ( - "clinical_notes", - models.TextField(blank=True, help_text="Clinical notes", null=True), - ), - ( - "collection_datetime", - models.DateTimeField( - blank=True, - help_text="Requested collection date and time", - null=True, - ), - ), - ( - "collection_location", - models.CharField( - blank=True, - help_text="Collection location", + help_text="Reference range", max_length=100, null=True, ), ), ( - "fasting_status", + "abnormal_flag", models.CharField( + blank=True, choices=[ - ("FASTING", "Fasting"), - ("NON_FASTING", "Non-Fasting"), - ("UNKNOWN", "Unknown"), + ("N", "Normal"), + ("H", "High"), + ("L", "Low"), + ("HH", "Critical High"), + ("LL", "Critical Low"), + ("A", "Abnormal"), ], - default="UNKNOWN", - help_text="Patient fasting status", - max_length=20, + help_text="Abnormal flag", + max_length=10, + null=True, + ), + ), + ( + "is_critical", + models.BooleanField( + default=False, help_text="Result is critical value" + ), + ), + ( + "critical_called", + models.BooleanField( + default=False, help_text="Critical value was called to provider" + ), + ), + ( + "critical_called_datetime", + models.DateTimeField( + blank=True, + help_text="Date and time critical value was called", + null=True, + ), + ), + ( + "critical_called_to", + models.CharField( + blank=True, + help_text="Person critical value was called to", + max_length=100, + null=True, + ), + ), + ( + "analyzed_datetime", + models.DateTimeField( + blank=True, help_text="Date and time analyzed", null=True + ), + ), + ( + "analyzer", + models.CharField( + blank=True, + help_text="Analyzer/instrument used", + max_length=100, + null=True, + ), + ), + ( + "verified", + models.BooleanField( + default=False, help_text="Result has been verified" + ), + ), + ( + "verified_datetime", + models.DateTimeField( + blank=True, help_text="Date and time of verification", null=True ), ), ( @@ -454,82 +659,108 @@ class Migration(migrations.Migration): models.CharField( choices=[ ("PENDING", "Pending"), - ("SCHEDULED", "Scheduled"), - ("COLLECTED", "Collected"), ("IN_PROGRESS", "In Progress"), ("COMPLETED", "Completed"), + ("VERIFIED", "Verified"), + ("AMENDED", "Amended"), ("CANCELLED", "Cancelled"), - ("ON_HOLD", "On Hold"), ], default="PENDING", - help_text="Order status", + help_text="Result status", max_length=20, ), ), ( - "special_instructions", + "technician_comments", models.TextField( + blank=True, help_text="Technician comments", null=True + ), + ), + ( + "pathologist_comments", + models.TextField( + blank=True, help_text="Pathologist comments", null=True + ), + ), + ( + "qc_passed", + models.BooleanField( + default=True, help_text="Quality control passed" + ), + ), + ( + "qc_notes", + models.TextField( + blank=True, help_text="Quality control notes", null=True + ), + ), + ( + "reported_datetime", + models.DateTimeField( blank=True, - help_text="Special instructions for collection or processing", + help_text="Date and time result was reported", null=True, ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ("updated_at", models.DateTimeField(auto_now=True)), ( - "encounter", + "analyzed_by", models.ForeignKey( blank=True, - help_text="Related encounter", + help_text="Lab technician who analyzed", null=True, on_delete=django.db.models.deletion.SET_NULL, - related_name="lab_orders", - to="emr.encounter", - ), - ), - ( - "ordering_provider", - models.ForeignKey( - help_text="Ordering provider", - on_delete=django.db.models.deletion.CASCADE, - related_name="ordered_lab_tests", + related_name="analyzed_results", to=settings.AUTH_USER_MODEL, ), ), ( - "patient", + "order", models.ForeignKey( - help_text="Patient", + help_text="Related lab order", on_delete=django.db.models.deletion.CASCADE, - related_name="lab_orders", - to="patients.patientprofile", + related_name="results", + to="laboratory.laborder", ), ), ( - "tenant", + "verified_by", models.ForeignKey( - help_text="Organization tenant", - on_delete=django.db.models.deletion.CASCADE, - related_name="lab_orders", - to="core.tenant", + blank=True, + help_text="Lab professional who verified result", + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="verified_results", + to=settings.AUTH_USER_MODEL, ), ), ( - "tests", - models.ManyToManyField( - help_text="Ordered tests", - related_name="orders", + "test", + models.ForeignKey( + help_text="Lab test", + on_delete=django.db.models.deletion.CASCADE, + related_name="results", to="laboratory.labtest", ), ), ], options={ - "verbose_name": "Lab Order", - "verbose_name_plural": "Lab Orders", - "db_table": "laboratory_lab_order", - "ordering": ["-order_datetime"], + "verbose_name": "Lab Result", + "verbose_name_plural": "Lab Results", + "db_table": "laboratory_lab_result", + "ordering": ["-analyzed_datetime"], }, ), + migrations.AddField( + model_name="laborder", + name="tests", + field=models.ManyToManyField( + help_text="Ordered tests", + related_name="orders", + to="laboratory.labtest", + ), + ), migrations.CreateModel( name="QualityControl", fields=[ @@ -647,6 +878,14 @@ class Migration(migrations.Migration): to=settings.AUTH_USER_MODEL, ), ), + ( + "result", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="quality_controls", + to="laboratory.labresult", + ), + ), ( "reviewed_by", models.ForeignKey( @@ -1033,244 +1272,15 @@ class Migration(migrations.Migration): "ordering": ["-collected_datetime"], }, ), - migrations.CreateModel( - name="LabResult", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "result_id", - models.UUIDField( - default=uuid.uuid4, - editable=False, - help_text="Unique result identifier", - unique=True, - ), - ), - ( - "result_value", - models.TextField( - blank=True, help_text="Test result value", null=True - ), - ), - ( - "result_unit", - models.CharField( - blank=True, - help_text="Result unit of measure", - max_length=20, - null=True, - ), - ), - ( - "result_type", - models.CharField( - choices=[ - ("NUMERIC", "Numeric"), - ("TEXT", "Text"), - ("CODED", "Coded"), - ("NARRATIVE", "Narrative"), - ], - default="NUMERIC", - help_text="Type of result", - max_length=20, - ), - ), - ( - "reference_range", - models.CharField( - blank=True, - help_text="Reference range", - max_length=100, - null=True, - ), - ), - ( - "abnormal_flag", - models.CharField( - blank=True, - choices=[ - ("N", "Normal"), - ("H", "High"), - ("L", "Low"), - ("HH", "Critical High"), - ("LL", "Critical Low"), - ("A", "Abnormal"), - ], - help_text="Abnormal flag", - max_length=10, - null=True, - ), - ), - ( - "is_critical", - models.BooleanField( - default=False, help_text="Result is critical value" - ), - ), - ( - "critical_called", - models.BooleanField( - default=False, help_text="Critical value was called to provider" - ), - ), - ( - "critical_called_datetime", - models.DateTimeField( - blank=True, - help_text="Date and time critical value was called", - null=True, - ), - ), - ( - "critical_called_to", - models.CharField( - blank=True, - help_text="Person critical value was called to", - max_length=100, - null=True, - ), - ), - ( - "analyzed_datetime", - models.DateTimeField( - blank=True, help_text="Date and time analyzed", null=True - ), - ), - ( - "analyzer", - models.CharField( - blank=True, - help_text="Analyzer/instrument used", - max_length=100, - null=True, - ), - ), - ( - "verified", - models.BooleanField( - default=False, help_text="Result has been verified" - ), - ), - ( - "verified_datetime", - models.DateTimeField( - blank=True, help_text="Date and time of verification", null=True - ), - ), - ( - "status", - models.CharField( - choices=[ - ("PENDING", "Pending"), - ("IN_PROGRESS", "In Progress"), - ("COMPLETED", "Completed"), - ("VERIFIED", "Verified"), - ("AMENDED", "Amended"), - ("CANCELLED", "Cancelled"), - ], - default="PENDING", - help_text="Result status", - max_length=20, - ), - ), - ( - "technician_comments", - models.TextField( - blank=True, help_text="Technician comments", null=True - ), - ), - ( - "pathologist_comments", - models.TextField( - blank=True, help_text="Pathologist comments", null=True - ), - ), - ( - "qc_passed", - models.BooleanField( - default=True, help_text="Quality control passed" - ), - ), - ( - "qc_notes", - models.TextField( - blank=True, help_text="Quality control notes", null=True - ), - ), - ( - "reported_datetime", - models.DateTimeField( - blank=True, - help_text="Date and time result was reported", - null=True, - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ( - "analyzed_by", - models.ForeignKey( - blank=True, - help_text="Lab technician who analyzed", - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="analyzed_results", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "order", - models.ForeignKey( - help_text="Related lab order", - on_delete=django.db.models.deletion.CASCADE, - related_name="results", - to="laboratory.laborder", - ), - ), - ( - "verified_by", - models.ForeignKey( - blank=True, - help_text="Lab professional who verified result", - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="verified_results", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "test", - models.ForeignKey( - help_text="Lab test", - on_delete=django.db.models.deletion.CASCADE, - related_name="results", - to="laboratory.labtest", - ), - ), - ( - "specimen", - models.ForeignKey( - help_text="Specimen used for test", - on_delete=django.db.models.deletion.CASCADE, - related_name="results", - to="laboratory.specimen", - ), - ), - ], - options={ - "verbose_name": "Lab Result", - "verbose_name_plural": "Lab Results", - "db_table": "laboratory_lab_result", - "ordering": ["-analyzed_datetime"], - }, + migrations.AddField( + model_name="labresult", + name="specimen", + field=models.ForeignKey( + help_text="Specimen used for test", + on_delete=django.db.models.deletion.CASCADE, + related_name="results", + to="laboratory.specimen", + ), ), migrations.AddIndex( model_name="labtest", diff --git a/laboratory/migrations/0002_qualitycontrol_result.py b/laboratory/migrations/0002_qualitycontrol_result.py deleted file mode 100644 index 89a99628..00000000 --- a/laboratory/migrations/0002_qualitycontrol_result.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 5.2.4 on 2025-08-28 19:46 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("laboratory", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="qualitycontrol", - name="result", - field=models.ForeignKey( - default=1, - on_delete=django.db.models.deletion.CASCADE, - related_name="quality_controls", - to="laboratory.labresult", - ), - preserve_default=False, - ), - ] diff --git a/laboratory/migrations/__pycache__/0001_initial.cpython-312.pyc b/laboratory/migrations/__pycache__/0001_initial.cpython-312.pyc index 3410b391..1d9bed0b 100644 Binary files a/laboratory/migrations/__pycache__/0001_initial.cpython-312.pyc and b/laboratory/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/laboratory/migrations/__pycache__/0002_qualitycontrol_result.cpython-312.pyc b/laboratory/migrations/__pycache__/0002_qualitycontrol_result.cpython-312.pyc deleted file mode 100644 index 7e3fd1af..00000000 Binary files a/laboratory/migrations/__pycache__/0002_qualitycontrol_result.cpython-312.pyc and /dev/null differ diff --git a/logs/hospital_management.log b/logs/hospital_management.log index 30ff10a4..1b1932ce 100644 --- a/logs/hospital_management.log +++ b/logs/hospital_management.log @@ -189602,3 +189602,8302 @@ INFO 2025-09-08 00:14:29,485 autoreload 15863 8747049152 Watching for file chang INFO 2025-09-08 01:20:56,549 autoreload 15863 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/hospital_management/settings.py changed, reloading. INFO 2025-09-08 01:20:56,938 autoreload 42555 8747049152 Watching for file changes with StatReloader INFO 2025-09-08 02:59:34,343 autoreload 86776 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 03:01:17,404 autoreload 87744 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 03:01:23,011 basehttp 87744 6134018048 "GET /en/blood-bank/ HTTP/1.1" 200 121063 +INFO 2025-09-08 03:01:23,077 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:01:44,799 basehttp 87744 6134018048 "GET /en/blood-bank/donors/ HTTP/1.1" 200 82651 +INFO 2025-09-08 03:01:44,843 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:01:47,498 basehttp 87744 6134018048 "GET /en/blood-bank/donors/34/eligibility/ HTTP/1.1" 200 34004 +INFO 2025-09-08 03:01:47,535 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:02:47,540 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:03:47,552 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:04:47,549 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:05:47,561 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:06:47,557 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:07:47,571 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:08:47,578 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:09:47,572 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:10:47,587 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:11:47,593 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:12:47,993 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:13:49,983 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:14:59,996 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:17:05,172 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:19:05,174 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:20:05,175 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:38:01,778 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:39:01,767 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:41:01,758 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:42:01,780 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:44:01,780 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:45:01,772 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:51:01,681 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:52:01,491 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:54:01,487 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:55:01,487 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:57:01,484 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 03:58:01,480 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:00:01,483 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:01:01,489 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:03:01,478 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:04:01,478 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:06:01,474 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:07:01,476 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:09:01,496 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:10:01,486 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:11:01,439 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:11:58,754 basehttp 87744 6134018048 "GET / HTTP/1.1" 302 0 +INFO 2025-09-08 04:11:58,784 basehttp 87744 6150844416 "GET /en/ HTTP/1.1" 200 49800 +INFO 2025-09-08 04:11:58,856 basehttp 87744 6150844416 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:11:58,868 basehttp 87744 6167670784 "GET /en/htmx/system-health/ HTTP/1.1" 200 1356 +INFO 2025-09-08 04:11:58,868 basehttp 87744 13438578688 "GET /en/htmx/tenant-info/ HTTP/1.1" 200 1043 +INFO 2025-09-08 04:11:58,871 basehttp 87744 6134018048 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 04:12:15,397 basehttp 87744 6134018048 "GET /en/appointments/create/ HTTP/1.1" 200 36462 +INFO 2025-09-08 04:12:15,433 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:13:15,433 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:14:15,448 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:15:15,448 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:16:15,482 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:17:15,442 basehttp 87744 6134018048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:17:56,012 autoreload 87744 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:17:56,551 autoreload 12537 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:18:15,506 basehttp 12537 6122647552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:19:15,449 basehttp 12537 6122647552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:19:54,512 basehttp 12537 6122647552 "GET /en/appointments/create/ HTTP/1.1" 200 36462 +INFO 2025-09-08 04:19:54,543 basehttp 12537 6122647552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:19:55,982 basehttp 12537 6122647552 "GET /en/appointments/create/ HTTP/1.1" 200 36462 +INFO 2025-09-08 04:19:56,021 basehttp 12537 6122647552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:20:46,196 basehttp 12537 6122647552 "GET /en/appointments/create/ HTTP/1.1" 200 36462 +INFO 2025-09-08 04:20:46,232 basehttp 12537 6122647552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:21:46,235 basehttp 12537 6122647552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:22:46,259 basehttp 12537 6122647552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:22:53,423 basehttp 12537 6122647552 "GET /en/appointments/create/ HTTP/1.1" 200 36462 +INFO 2025-09-08 04:22:53,458 basehttp 12537 6122647552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:23:39,628 autoreload 12537 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:23:40,220 autoreload 15079 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:23:45,701 autoreload 15079 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:23:46,061 autoreload 15163 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:23:53,533 basehttp 15163 6191181824 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:24:05,491 basehttp 15163 6191181824 "GET /en/appointments/create/ HTTP/1.1" 200 36462 +INFO 2025-09-08 04:24:05,521 basehttp 15163 6191181824 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:24:07,327 basehttp 15163 6191181824 "GET /en/ HTTP/1.1" 200 49800 +INFO 2025-09-08 04:24:07,373 basehttp 15163 6191181824 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:24:07,379 basehttp 15163 6224834560 "GET /en/htmx/system-health/ HTTP/1.1" 200 1356 +INFO 2025-09-08 04:24:07,379 basehttp 15163 6241660928 "GET /en/htmx/tenant-info/ HTTP/1.1" 200 1043 +INFO 2025-09-08 04:24:07,381 basehttp 15163 6208008192 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 04:24:37,370 basehttp 15163 6208008192 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 04:25:07,367 basehttp 15163 6208008192 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:25:19,974 autoreload 16288 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:25:22,244 basehttp 16288 6170832896 "GET / HTTP/1.1" 302 0 +INFO 2025-09-08 04:25:22,310 basehttp 16288 6187659264 "GET /en/ HTTP/1.1" 200 49800 +INFO 2025-09-08 04:25:22,361 basehttp 16288 6187659264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:25:22,368 basehttp 16288 6221312000 "GET /en/htmx/tenant-info/ HTTP/1.1" 200 1043 +INFO 2025-09-08 04:25:22,369 basehttp 16288 6204485632 "GET /en/htmx/system-health/ HTTP/1.1" 200 1356 +INFO 2025-09-08 04:25:22,372 basehttp 16288 6170832896 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 04:25:33,099 basehttp 16288 6170832896 "GET /en/appointments/create/ HTTP/1.1" 200 36462 +INFO 2025-09-08 04:25:33,135 basehttp 16288 6170832896 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:26:33,138 basehttp 16288 6170832896 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:27:33,145 basehttp 16288 6170832896 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +ERROR 2025-09-08 04:28:08,231 log 16288 6170832896 Internal Server Error: /en/appointments/create/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'appointment_request_list' not found. 'appointment_request_list' is not a valid view function or pattern name. +ERROR 2025-09-08 04:28:08,234 basehttp 16288 6170832896 "GET /en/appointments/create/ HTTP/1.1" 500 178404 +INFO 2025-09-08 04:28:22,144 basehttp 16288 6170832896 "GET /en/appointments/create/ HTTP/1.1" 200 36414 +INFO 2025-09-08 04:28:22,173 basehttp 16288 6170832896 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:28:37,517 basehttp 16288 6170832896 "GET /en/appointments/list/ HTTP/1.1" 200 128770 +INFO 2025-09-08 04:28:37,557 basehttp 16288 6170832896 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:28:51,857 basehttp 16288 6170832896 "POST /appointments/reschedule/2220/ HTTP/1.1" 302 0 +WARNING 2025-09-08 04:28:51,872 log 16288 6204485632 Not Found: /en/appointments/reschedule/2220/ +WARNING 2025-09-08 04:28:51,872 basehttp 16288 6204485632 "GET /en/appointments/reschedule/2220/ HTTP/1.1" 404 33138 +WARNING 2025-09-08 04:28:56,328 log 16288 6204485632 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:28:56,329 basehttp 16288 6204485632 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:29:37,575 basehttp 16288 6170832896 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:30:30,368 autoreload 16288 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:30:30,716 autoreload 18531 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:30:36,752 basehttp 18531 6129938432 "GET /en/appointments/list/ HTTP/1.1" 200 128770 +WARNING 2025-09-08 04:30:36,770 log 18531 6129938432 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:30:36,770 basehttp 18531 6129938432 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:30:36,853 basehttp 18531 6129938432 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:30:45,819 basehttp 18531 6129938432 "POST /appointments/reschedule/2219/ HTTP/1.1" 302 0 +WARNING 2025-09-08 04:30:45,833 log 18531 6146764800 Not Found: /en/appointments/reschedule/2219/ +WARNING 2025-09-08 04:30:45,834 basehttp 18531 6146764800 "GET /en/appointments/reschedule/2219/ HTTP/1.1" 404 33138 +INFO 2025-09-08 04:31:36,867 basehttp 18531 6146764800 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:32:21,509 autoreload 18531 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:32:21,849 autoreload 19378 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:32:25,101 basehttp 19378 6195408896 "GET /en/appointments/list/ HTTP/1.1" 200 128770 +WARNING 2025-09-08 04:32:25,119 log 19378 6195408896 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:32:25,119 basehttp 19378 6195408896 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:32:25,195 basehttp 19378 6195408896 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:32:32,075 basehttp 19378 6195408896 "POST /appointments/reschedule/2219/ HTTP/1.1" 302 0 +WARNING 2025-09-08 04:32:32,090 log 19378 6212235264 Not Found: /en/appointments/reschedule/2219/ +WARNING 2025-09-08 04:32:32,090 basehttp 19378 6212235264 "GET /en/appointments/reschedule/2219/ HTTP/1.1" 404 33138 +INFO 2025-09-08 04:33:25,216 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:34:25,213 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:35:25,217 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:36:25,219 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:37:25,221 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:38:25,348 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:39:25,350 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:40:25,346 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:41:25,356 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:42:25,353 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:43:25,370 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:44:25,360 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:44:43,110 basehttp 19378 6212235264 "GET /en/appointments/queue/ HTTP/1.1" 200 44796 +WARNING 2025-09-08 04:44:43,129 log 19378 6212235264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:44:43,129 basehttp 19378 6212235264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:44:43,254 basehttp 19378 6212235264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 04:44:43,262 log 19378 6195408896 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 04:44:43,263 basehttp 19378 6195408896 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:44:43,269 log 19378 6279540736 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 04:44:43,272 basehttp 19378 6279540736 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:44:43,276 log 19378 6212235264 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 04:44:43,277 basehttp 19378 6212235264 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 31091 +INFO 2025-09-08 04:44:43,282 basehttp 19378 6262714368 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 04:44:43,285 basehttp 19378 6245888000 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 04:44:43,288 log 19378 6195408896 Not Found: /en/appointments/queue/6/status/ +INFO 2025-09-08 04:44:43,289 basehttp 19378 6229061632 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 04:44:43,291 basehttp 19378 6195408896 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:44:43,295 log 19378 6279540736 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 04:44:43,296 basehttp 19378 6279540736 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:44:43,299 log 19378 6212235264 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 04:44:43,300 basehttp 19378 6212235264 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:44:43,305 log 19378 6262714368 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 04:44:43,305 basehttp 19378 6262714368 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 31088 +INFO 2025-09-08 04:44:43,326 basehttp 19378 6245888000 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 04:44:43,332 log 19378 6279540736 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 04:44:43,334 basehttp 19378 6279540736 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 31091 +INFO 2025-09-08 04:44:43,339 basehttp 19378 6229061632 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 04:44:43,339 basehttp 19378 6195408896 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 04:44:58,922 log 19378 6195408896 Forbidden (CSRF token missing.): /en/appointments/queue/10/call-next/ +WARNING 2025-09-08 04:44:58,922 basehttp 19378 6195408896 "POST /en/appointments/queue/10/call-next/ HTTP/1.1" 403 2491 +WARNING 2025-09-08 04:45:13,283 log 19378 6195408896 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 04:45:13,285 basehttp 19378 6195408896 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:13,288 log 19378 6212235264 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 04:45:13,290 log 19378 6262714368 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 04:45:13,292 basehttp 19378 6212235264 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 31091 +WARNING 2025-09-08 04:45:13,292 basehttp 19378 6262714368 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 31088 +INFO 2025-09-08 04:45:13,304 basehttp 19378 6229061632 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 04:45:13,304 basehttp 19378 6245888000 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 04:45:13,305 basehttp 19378 6279540736 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 04:45:13,308 log 19378 6195408896 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 04:45:13,308 basehttp 19378 6195408896 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:13,313 log 19378 6262714368 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 04:45:13,314 basehttp 19378 6262714368 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:13,319 log 19378 6212235264 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 04:45:13,319 basehttp 19378 6212235264 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:13,371 log 19378 6262714368 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 04:45:13,374 basehttp 19378 6262714368 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 31091 +WARNING 2025-09-08 04:45:13,376 log 19378 6229061632 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 04:45:13,378 basehttp 19378 6229061632 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 31088 +INFO 2025-09-08 04:45:13,385 basehttp 19378 6195408896 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 04:45:13,386 basehttp 19378 6279540736 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 04:45:13,387 basehttp 19378 6245888000 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 04:45:43,259 basehttp 19378 6245888000 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 04:45:43,276 log 19378 6279540736 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 04:45:43,278 basehttp 19378 6279540736 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:43,284 log 19378 6212235264 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 04:45:43,285 basehttp 19378 6212235264 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:43,298 log 19378 6245888000 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 04:45:43,301 basehttp 19378 6245888000 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 31091 +INFO 2025-09-08 04:45:43,304 basehttp 19378 6229061632 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 04:45:43,309 log 19378 6279540736 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 04:45:43,310 basehttp 19378 6279540736 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 31088 +INFO 2025-09-08 04:45:43,312 basehttp 19378 6195408896 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 04:45:43,312 basehttp 19378 6262714368 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 04:45:43,317 log 19378 6212235264 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 04:45:43,318 basehttp 19378 6212235264 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:43,321 log 19378 6245888000 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 04:45:43,321 basehttp 19378 6245888000 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:43,342 log 19378 6229061632 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 04:45:43,342 basehttp 19378 6229061632 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:45:43,368 log 19378 6212235264 Not Found: /en/appointments/queue/14/status/ +INFO 2025-09-08 04:45:43,370 basehttp 19378 6279540736 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 04:45:43,370 basehttp 19378 6212235264 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 31091 +INFO 2025-09-08 04:45:43,373 basehttp 19378 6195408896 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 04:45:43,374 basehttp 19378 6262714368 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 04:46:13,292 log 19378 6262714368 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 04:46:13,293 basehttp 19378 6262714368 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:13,295 log 19378 6229061632 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 04:46:13,296 basehttp 19378 6229061632 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:13,298 log 19378 6245888000 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 04:46:13,300 basehttp 19378 6245888000 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 31091 +INFO 2025-09-08 04:46:13,308 basehttp 19378 6195408896 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 04:46:13,311 basehttp 19378 6279540736 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 04:46:13,316 log 19378 6262714368 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 04:46:13,317 basehttp 19378 6262714368 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 31088 +INFO 2025-09-08 04:46:13,317 basehttp 19378 6212235264 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 04:46:13,330 log 19378 6229061632 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 04:46:13,330 basehttp 19378 6229061632 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:13,343 log 19378 6245888000 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 04:46:13,343 basehttp 19378 6245888000 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:13,368 log 19378 6195408896 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 04:46:13,369 basehttp 19378 6195408896 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:13,378 log 19378 6229061632 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 04:46:13,380 basehttp 19378 6229061632 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 31091 +INFO 2025-09-08 04:46:13,386 basehttp 19378 6262714368 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 04:46:13,387 basehttp 19378 6212235264 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 04:46:13,388 basehttp 19378 6279540736 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 04:46:43,258 basehttp 19378 6279540736 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 04:46:43,285 log 19378 6212235264 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 04:46:43,286 basehttp 19378 6212235264 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:43,295 log 19378 6245888000 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 04:46:43,298 basehttp 19378 6245888000 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:43,306 log 19378 6279540736 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 04:46:43,308 basehttp 19378 6279540736 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 31091 +WARNING 2025-09-08 04:46:43,319 log 19378 6212235264 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 04:46:43,321 basehttp 19378 6212235264 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 31088 +INFO 2025-09-08 04:46:43,322 basehttp 19378 6262714368 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 04:46:43,329 log 19378 6245888000 Not Found: /en/appointments/queue/3/status/ +INFO 2025-09-08 04:46:43,329 basehttp 19378 6229061632 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 04:46:43,330 basehttp 19378 6195408896 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 04:46:43,334 log 19378 6279540736 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 04:46:43,334 basehttp 19378 6245888000 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:43,335 basehttp 19378 6279540736 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 31088 +WARNING 2025-09-08 04:46:43,340 log 19378 6212235264 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 04:46:43,340 basehttp 19378 6212235264 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 31088 +INFO 2025-09-08 04:46:43,354 basehttp 19378 6262714368 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 04:46:43,374 log 19378 6245888000 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 04:46:43,375 basehttp 19378 6245888000 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 31091 +INFO 2025-09-08 04:46:43,378 basehttp 19378 6229061632 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 04:46:43,378 basehttp 19378 6195408896 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 04:47:01,280 basehttp 19378 6195408896 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 38827 +WARNING 2025-09-08 04:47:01,348 log 19378 6195408896 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:47:01,349 basehttp 19378 6195408896 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:49:23,846 autoreload 19378 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:49:24,325 autoreload 26902 8747049152 Watching for file changes with StatReloader +WARNING 2025-09-08 04:49:25,123 log 26902 6164738048 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:49:25,123 basehttp 26902 6164738048 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 04:49:25,134 log 26902 6164738048 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:49:25,134 basehttp 26902 6164738048 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:49:26,618 basehttp 26902 6164738048 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 30282 +WARNING 2025-09-08 04:49:26,634 log 26902 13572796416 Not Found: /.well-known/appspecific/com.chrome.devtools.json +INFO 2025-09-08 04:49:26,634 basehttp 26902 13589622784 "GET /static/plugins/%40fullcalendar/bootstrap/index.global.js HTTP/1.1" 200 2075 +WARNING 2025-09-08 04:49:26,635 basehttp 26902 13572796416 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:49:26,638 basehttp 26902 13589622784 "GET /static/plugins/%40fullcalendar/list/index.global.js HTTP/1.1" 200 18635 +INFO 2025-09-08 04:49:26,640 basehttp 26902 13606449152 "GET /static/plugins/%40fullcalendar/daygrid/index.global.js HTTP/1.1" 200 58461 +INFO 2025-09-08 04:49:26,640 basehttp 26902 13640101888 "GET /static/plugins/%40fullcalendar/interaction/index.global.js HTTP/1.1" 200 99452 +INFO 2025-09-08 04:49:26,641 basehttp 26902 13623275520 "GET /static/plugins/%40fullcalendar/timegrid/index.global.js HTTP/1.1" 200 68582 +INFO 2025-09-08 04:49:26,643 basehttp 26902 6164738048 "GET /static/plugins/%40fullcalendar/core/index.global.js HTTP/1.1" 200 444856 +INFO 2025-09-08 04:49:26,717 basehttp 26902 6164738048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:49:26,724 basehttp 26902 6164738048 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 30282 +INFO 2025-09-08 04:49:55,883 basehttp 26902 6164738048 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 30288 +WARNING 2025-09-08 04:49:55,895 log 26902 6164738048 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:49:55,895 basehttp 26902 6164738048 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:49:55,984 basehttp 26902 6164738048 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:49:55,991 basehttp 26902 13623275520 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 30288 +INFO 2025-09-08 04:50:56,000 basehttp 26902 13623275520 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +ERROR 2025-09-08 04:51:44,763 log 26902 13623275520 Internal Server Error: /en/appointments/create/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: appointments/appointment_request_form.html +ERROR 2025-09-08 04:51:44,764 basehttp 26902 13623275520 "GET /en/appointments/create/ HTTP/1.1" 500 84276 +WARNING 2025-09-08 04:51:44,782 log 26902 13623275520 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:51:44,782 basehttp 26902 13623275520 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:52:23,806 autoreload 26902 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:52:24,238 autoreload 28213 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:52:25,254 basehttp 28213 6159822848 "GET /en/appointments/create/ HTTP/1.1" 200 54178 +WARNING 2025-09-08 04:52:25,270 log 28213 6159822848 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:52:25,270 basehttp 28213 6159822848 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:52:25,362 basehttp 28213 6159822848 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:53:25,382 basehttp 28213 6159822848 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:54:25,370 basehttp 28213 6159822848 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:54:36,672 autoreload 28213 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:54:37,034 autoreload 29138 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:54:38,882 basehttp 29138 6191771648 "GET /en/appointments/create/ HTTP/1.1" 200 54178 +WARNING 2025-09-08 04:54:38,910 log 29138 6191771648 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:54:38,911 basehttp 29138 6191771648 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:54:38,982 basehttp 29138 6191771648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:55:38,998 basehttp 29138 6191771648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:56:39,003 basehttp 29138 6191771648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:57:03,299 basehttp 29138 6191771648 "POST /en/appointments/create/ HTTP/1.1" 200 54620 +WARNING 2025-09-08 04:57:03,322 log 29138 6191771648 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:57:03,322 basehttp 29138 6191771648 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:57:03,392 basehttp 29138 6191771648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:57:08,230 basehttp 29138 6191771648 "GET /en/appointments/create/ HTTP/1.1" 200 54178 +WARNING 2025-09-08 04:57:08,254 log 29138 6191771648 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:57:08,254 basehttp 29138 6191771648 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:57:11,118 basehttp 29138 6191771648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 04:57:11,126 log 29138 6191771648 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:57:11,126 basehttp 29138 6191771648 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 04:57:11,173 log 29138 6191771648 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:57:11,174 basehttp 29138 6191771648 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:58:11,118 basehttp 29138 6191771648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:59:11,130 basehttp 29138 6191771648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:59:36,491 autoreload 29138 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 04:59:36,824 autoreload 31375 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 04:59:37,733 basehttp 31375 6136688640 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 30288 +WARNING 2025-09-08 04:59:37,771 log 31375 6136688640 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:59:37,771 basehttp 31375 6136688640 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:59:37,832 basehttp 31375 6136688640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 04:59:37,839 basehttp 31375 6136688640 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 30288 +INFO 2025-09-08 04:59:45,295 basehttp 31375 6136688640 "GET /en/appointments/create/ HTTP/1.1" 200 54178 +WARNING 2025-09-08 04:59:45,329 log 31375 6136688640 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 04:59:45,329 basehttp 31375 6136688640 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 04:59:45,389 basehttp 31375 6136688640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:00:40,750 autoreload 31375 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 05:00:41,125 autoreload 31840 8747049152 Watching for file changes with StatReloader +WARNING 2025-09-08 05:00:42,009 log 31840 6214840320 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:00:42,009 basehttp 31840 6214840320 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 05:00:42,037 log 31840 6214840320 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:00:42,073 basehttp 31840 6214840320 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:00:42,094 basehttp 31840 6198013952 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:00:42,096 basehttp 31840 6214840320 - Broken pipe from ('127.0.0.1', 51422) +INFO 2025-09-08 05:00:42,667 basehttp 31840 6198013952 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 38827 +WARNING 2025-09-08 05:00:42,686 log 31840 6198013952 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:00:42,687 basehttp 31840 6198013952 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:03:34,341 autoreload 31840 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 05:03:34,741 autoreload 33068 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 05:03:35,624 basehttp 33068 6169882624 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 52552 +WARNING 2025-09-08 05:03:35,641 log 33068 6169882624 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:03:35,641 basehttp 33068 6169882624 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:03:35,707 basehttp 33068 6169882624 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:03:35,736 basehttp 33068 6186708992 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 52552 +INFO 2025-09-08 05:04:35,731 basehttp 33068 6186708992 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:05:35,716 basehttp 33068 6186708992 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:06:06,186 basehttp 33068 6186708992 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 57168 +WARNING 2025-09-08 05:06:06,198 log 33068 6186708992 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:06:06,198 basehttp 33068 6186708992 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:06:06,243 basehttp 33068 6186708992 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:06:06,286 basehttp 33068 6186708992 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 57168 +INFO 2025-09-08 05:07:06,261 basehttp 33068 6186708992 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:08:06,251 basehttp 33068 6186708992 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:08:26,902 autoreload 33068 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 05:08:27,407 autoreload 35272 8747049152 Watching for file changes with StatReloader +WARNING 2025-09-08 05:08:28,637 log 35272 6133411840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:08:28,637 basehttp 35272 6133411840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 05:08:28,647 log 35272 6133411840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:08:28,648 basehttp 35272 6133411840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:08:29,424 basehttp 35272 6133411840 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 61543 +WARNING 2025-09-08 05:08:29,443 log 35272 6133411840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:08:29,443 basehttp 35272 6133411840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:08:29,498 basehttp 35272 6133411840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:08:29,535 basehttp 35272 6150238208 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 61543 +INFO 2025-09-08 05:09:29,555 basehttp 35272 6150238208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:10:29,557 basehttp 35272 6150238208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:11:20,827 autoreload 35272 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 05:11:21,187 autoreload 36576 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 05:11:23,707 log 36576 6134951936 Internal Server Error: /en/appointments/calendar/appointments/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1411, in calendar_appointments + return render(request, 'appointments/calendar_appointments.html', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 199, in render + len_values = len(values) + ^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 366, in __len__ + self._fetch_all() + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 1949, in _fetch_all + self._result_cache = list(self._iterable_class(self)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 91, in __iter__ + results = compiler.execute_sql( + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1610, in execute_sql + sql, params = self.as_sql() + ^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 815, in as_sql + distinct_result, distinct_params = self.connection.ops.distinct_sql( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/backends/base/operations.py", line 204, in distinct_sql + raise NotSupportedError( +django.db.utils.NotSupportedError: DISTINCT ON fields is not supported by this database backend +ERROR 2025-09-08 05:11:23,720 basehttp 36576 6134951936 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 500 191574 +WARNING 2025-09-08 05:11:23,744 log 36576 6134951936 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:11:23,746 basehttp 36576 6134951936 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:11:35,264 autoreload 36576 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 05:11:35,698 autoreload 36665 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 05:11:36,502 basehttp 36665 6124974080 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 61543 +WARNING 2025-09-08 05:11:36,512 log 36665 6124974080 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:11:36,513 basehttp 36665 6124974080 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:11:36,585 basehttp 36665 6124974080 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:11:36,622 basehttp 36665 6124974080 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 61543 +INFO 2025-09-08 05:11:37,618 basehttp 36665 6124974080 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 61543 +WARNING 2025-09-08 05:11:37,631 log 36665 6124974080 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:11:37,631 basehttp 36665 6124974080 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:11:37,681 basehttp 36665 6124974080 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:11:37,718 basehttp 36665 6124974080 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 61543 +INFO 2025-09-08 05:12:37,688 basehttp 36665 6124974080 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:13:25,286 autoreload 36665 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 05:13:25,636 autoreload 37438 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 05:13:26,474 basehttp 37438 6133919744 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 57168 +WARNING 2025-09-08 05:13:26,488 log 37438 6133919744 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:13:26,489 basehttp 37438 6133919744 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:13:26,535 basehttp 37438 6133919744 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:13:26,564 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 57168 +INFO 2025-09-08 05:14:11,311 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 57168 +WARNING 2025-09-08 05:14:11,326 log 37438 6150746112 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:14:11,326 basehttp 37438 6150746112 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:14:11,372 basehttp 37438 6150746112 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:14:11,415 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 57168 +INFO 2025-09-08 05:15:01,265 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 57168 +WARNING 2025-09-08 05:15:01,277 log 37438 6150746112 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:15:01,277 basehttp 37438 6150746112 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:15:01,323 basehttp 37438 6150746112 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:15:01,370 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 57168 +INFO 2025-09-08 05:16:01,326 basehttp 37438 6150746112 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:16:18,420 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 57168 +WARNING 2025-09-08 05:16:18,435 log 37438 6150746112 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:16:18,435 basehttp 37438 6150746112 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:16:18,482 basehttp 37438 6150746112 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:16:18,527 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 57168 +INFO 2025-09-08 05:16:26,469 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 57168 +WARNING 2025-09-08 05:16:26,485 log 37438 6150746112 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:16:26,485 basehttp 37438 6150746112 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:16:26,527 basehttp 37438 6150746112 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:16:26,571 basehttp 37438 6150746112 "GET /en/appointments/calendar/appointments/?format=json&start=2025-08-31T00:00:00+03:00&end=2025-10-12T00:00:00+03:00 HTTP/1.1" 200 57168 +INFO 2025-09-08 05:17:26,545 basehttp 37438 6150746112 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:17:48,616 basehttp 37438 6150746112 "GET /en/appointments/slots/available/ HTTP/1.1" 200 450 +WARNING 2025-09-08 05:17:48,637 log 37438 6150746112 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:17:48,637 basehttp 37438 6150746112 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 05:17:53,677 log 37438 6150746112 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:17:53,677 basehttp 37438 6150746112 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 05:17:53,698 log 37438 6150746112 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:17:53,698 basehttp 37438 6150746112 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:18:09,730 basehttp 37438 6150746112 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 21561 +WARNING 2025-09-08 05:18:09,747 log 37438 6150746112 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:18:09,747 basehttp 37438 6150746112 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:18:09,771 basehttp 37438 6150746112 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:19:07,002 autoreload 37438 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/urls.py changed, reloading. +INFO 2025-09-08 05:19:07,350 autoreload 40010 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 05:19:09,822 basehttp 40010 6134083584 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:19:14,370 basehttp 40010 6134083584 "GET /en/appointments/calendar/ HTTP/1.1" 200 21934 +WARNING 2025-09-08 05:19:14,389 log 40010 6134083584 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:19:14,390 basehttp 40010 6134083584 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:19:14,421 basehttp 40010 6134083584 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:19:14,425 basehttp 40010 6167736320 "GET /en/appointments/slots/available/ HTTP/1.1" 200 450 +INFO 2025-09-08 05:19:14,450 basehttp 40010 6150909952 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 57181 +INFO 2025-09-08 05:19:14,469 basehttp 40010 6150909952 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:19:43,111 autoreload 40010 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 05:19:43,470 autoreload 40245 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 05:19:43,811 basehttp 40245 6164901888 "GET /en/appointments/calendar/ HTTP/1.1" 200 21934 +WARNING 2025-09-08 05:19:43,827 log 40245 6164901888 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:19:43,827 basehttp 40245 6164901888 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:19:43,894 basehttp 40245 6198554624 "GET /en/appointments/slots/available/ HTTP/1.1" 200 450 +INFO 2025-09-08 05:19:43,896 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:19:43,921 basehttp 40245 6181728256 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 38827 +INFO 2025-09-08 05:19:58,860 basehttp 40245 6181728256 "GET /en/appointments/calendar/ HTTP/1.1" 200 21934 +INFO 2025-09-08 05:19:58,882 basehttp 40245 6215380992 "GET /static/css/custom.css HTTP/1.1" 200 2063 +WARNING 2025-09-08 05:19:58,886 log 40245 6198554624 Not Found: /.well-known/appspecific/com.chrome.devtools.json +INFO 2025-09-08 05:19:58,887 basehttp 40245 6249033728 "GET /static/img/user/user-4.jpg HTTP/1.1" 200 5916 +WARNING 2025-09-08 05:19:58,887 basehttp 40245 6198554624 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:19:58,888 basehttp 40245 6232207360 "GET /static/js/htmx.min.js HTTP/1.1" 200 50917 +INFO 2025-09-08 05:19:58,892 basehttp 40245 6181728256 "GET /static/css/vendor.min.css HTTP/1.1" 200 177466 +INFO 2025-09-08 05:19:58,896 basehttp 40245 6249033728 "GET /static/js/app.min.js HTTP/1.1" 200 110394 +INFO 2025-09-08 05:19:58,898 basehttp 40245 6164901888 "GET /static/css/default/app.min.css HTTP/1.1" 200 893480 +INFO 2025-09-08 05:19:58,902 basehttp 40245 6215380992 "GET /static/js/vendor.min.js HTTP/1.1" 200 1091361 +INFO 2025-09-08 05:19:59,045 basehttp 40245 6232207360 "GET /static/img/theme/material.jpg HTTP/1.1" 200 28774 +INFO 2025-09-08 05:19:59,045 basehttp 40245 6164901888 "GET /static/img/theme/default.jpg HTTP/1.1" 200 26964 +INFO 2025-09-08 05:19:59,047 basehttp 40245 6249033728 "GET /static/img/theme/transparent.jpg HTTP/1.1" 200 32747 +INFO 2025-09-08 05:19:59,047 basehttp 40245 6198554624 "GET /static/img/theme/facebook.jpg HTTP/1.1" 200 27881 +INFO 2025-09-08 05:19:59,049 basehttp 40245 6181728256 "GET /static/img/theme/apple.jpg HTTP/1.1" 200 28822 +INFO 2025-09-08 05:19:59,052 basehttp 40245 6164901888 "GET /static/webfonts/fa-solid-900.woff2 HTTP/1.1" 200 158220 +INFO 2025-09-08 05:19:59,054 basehttp 40245 6181728256 "GET /static/img/theme/google.jpg HTTP/1.1" 200 86013 +INFO 2025-09-08 05:19:59,065 basehttp 40245 6164901888 "GET /static/img/version/html.jpg HTTP/1.1" 200 17325 +INFO 2025-09-08 05:19:59,068 basehttp 40245 6181728256 "GET /static/img/version/ajax.jpg HTTP/1.1" 200 20223 +INFO 2025-09-08 05:19:59,068 basehttp 40245 6164901888 "GET /static/img/version/angular1x.jpg HTTP/1.1" 200 22869 +INFO 2025-09-08 05:19:59,072 basehttp 40245 6181728256 "GET /static/img/version/angular10x.jpg HTTP/1.1" 200 24580 +INFO 2025-09-08 05:19:59,072 basehttp 40245 6215380992 "GET /static/css/default/app.min.css.map HTTP/1.1" 200 1957526 +INFO 2025-09-08 05:19:59,075 basehttp 40245 6164901888 "GET /static/img/version/svelte.jpg HTTP/1.1" 200 25060 +INFO 2025-09-08 05:19:59,075 basehttp 40245 6181728256 "GET /static/img/version/laravel.jpg HTTP/1.1" 200 26040 +INFO 2025-09-08 05:19:59,075 basehttp 40245 6215380992 "GET /static/img/version/django.jpg HTTP/1.1" 200 20935 +INFO 2025-09-08 05:19:59,080 basehttp 40245 6181728256 "GET /static/img/version/reactjs.jpg HTTP/1.1" 200 26850 +INFO 2025-09-08 05:19:59,081 basehttp 40245 6198554624 "GET /en/appointments/slots/available/ HTTP/1.1" 200 450 +INFO 2025-09-08 05:19:59,081 basehttp 40245 6164901888 "GET /static/img/version/vuejs.jpg HTTP/1.1" 200 22518 +INFO 2025-09-08 05:19:59,083 basehttp 40245 6232207360 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:19:59,084 basehttp 40245 6215380992 "GET /static/img/version/dotnet.jpg HTTP/1.1" 200 24791 +INFO 2025-09-08 05:19:59,087 basehttp 40245 6181728256 "GET /static/img/version/nextjs.jpg HTTP/1.1" 200 20152 +INFO 2025-09-08 05:19:59,088 basehttp 40245 6232207360 "GET /static/img/theme/blog.jpg HTTP/1.1" 200 32334 +INFO 2025-09-08 05:19:59,089 basehttp 40245 6164901888 "GET /static/img/theme/e-commerce.jpg HTTP/1.1" 200 37734 +INFO 2025-09-08 05:19:59,089 basehttp 40245 6215380992 "GET /static/img/theme/forum.jpg HTTP/1.1" 200 28744 +INFO 2025-09-08 05:19:59,089 basehttp 40245 6198554624 "GET /static/img/theme/one-page-parallax.jpg HTTP/1.1" 200 22474 +INFO 2025-09-08 05:19:59,091 basehttp 40245 6181728256 "GET /static/img/theme/corporate.jpg HTTP/1.1" 200 38911 +INFO 2025-09-08 05:19:59,114 basehttp 40245 6249033728 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 38827 +WARNING 2025-09-08 05:19:59,162 log 40245 6249033728 Not Found: /favicon.ico +WARNING 2025-09-08 05:19:59,162 basehttp 40245 6249033728 "GET /favicon.ico HTTP/1.1" 404 2557 +INFO 2025-09-08 05:20:59,048 basehttp 40245 6249033728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:21:59,059 basehttp 40245 6249033728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:22:59,064 basehttp 40245 6249033728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:23:59,069 basehttp 40245 6249033728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:24:25,243 basehttp 40245 6249033728 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 21561 +WARNING 2025-09-08 05:24:25,261 log 40245 6249033728 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 05:24:25,261 basehttp 40245 6249033728 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 05:25:51,242 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:26:52,246 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:27:53,244 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 05:44:31,662 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:01:25,274 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:15:56,460 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:31:52,856 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:48:16,462 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:50:16,461 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:52:16,457 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:54:16,475 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:56:16,490 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:58:16,468 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 06:59:16,478 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:01:16,467 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:03:16,457 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:05:16,552 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:07:16,566 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:09:16,563 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:11:16,559 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:13:16,561 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:15:16,577 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:17:16,563 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:19:16,436 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:20:16,466 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:22:16,444 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:24:16,433 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:25:16,449 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:26:16,448 basehttp 40245 6164901888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:26:59,549 autoreload 40245 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 07:26:59,994 autoreload 62874 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 07:27:03,513 basehttp 62874 6136115200 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 21561 +WARNING 2025-09-08 07:27:03,535 log 62874 6136115200 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:27:03,536 basehttp 62874 6136115200 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 07:27:03,603 basehttp 62874 6136115200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:28:03,610 basehttp 62874 6136115200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:28:31,715 autoreload 62874 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 07:28:32,128 autoreload 63571 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 07:28:32,871 log 63571 13052751872 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'cancel_telemedicine_session' not found. 'cancel_telemedicine_session' is not a valid view function or pattern name. +ERROR 2025-09-08 07:28:32,895 basehttp 63571 13052751872 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 270487 +WARNING 2025-09-08 07:28:32,915 log 63571 13052751872 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:28:32,915 basehttp 63571 13052751872 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 07:38:12,282 autoreload 63571 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/urls.py changed, reloading. +INFO 2025-09-08 07:38:12,681 autoreload 67816 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 07:38:14,659 log 67816 6195474432 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'cancel_telemedicine_session' with arguments '(285,)' not found. 1 pattern(s) tried: ['en/appointments/telemedicine/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/cancel/\\Z'] +ERROR 2025-09-08 07:38:14,690 basehttp 67816 6195474432 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 274352 +WARNING 2025-09-08 07:38:14,711 log 67816 6195474432 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:38:14,711 basehttp 67816 6195474432 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 07:39:10,072 autoreload 67816 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 07:39:10,433 autoreload 68286 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 07:39:12,460 log 68286 6195015680 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'cancel_telemedicine_session' with arguments '(285,)' not found. 1 pattern(s) tried: ['en/appointments/telemedicine/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/cancel/\\Z'] +ERROR 2025-09-08 07:39:12,477 basehttp 68286 6195015680 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 274352 +WARNING 2025-09-08 07:39:12,493 log 68286 6195015680 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:39:12,493 basehttp 68286 6195015680 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 07:39:14,095 log 68286 6195015680 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'cancel_telemedicine_session' with arguments '(285,)' not found. 1 pattern(s) tried: ['en/appointments/telemedicine/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/cancel/\\Z'] +ERROR 2025-09-08 07:39:14,096 basehttp 68286 6195015680 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 274352 +WARNING 2025-09-08 07:39:14,113 log 68286 6195015680 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:39:14,113 basehttp 68286 6195015680 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 07:39:54,741 log 68286 6195015680 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'start_telemedicine_session' with arguments '(283,)' not found. 1 pattern(s) tried: ['en/appointments/telemedicine/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/start/\\Z'] +ERROR 2025-09-08 07:39:54,742 basehttp 68286 6195015680 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 277408 +WARNING 2025-09-08 07:39:54,760 log 68286 6195015680 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:39:54,761 basehttp 68286 6195015680 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 07:39:56,059 log 68286 6195015680 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'start_telemedicine_session' with arguments '(283,)' not found. 1 pattern(s) tried: ['en/appointments/telemedicine/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/start/\\Z'] +ERROR 2025-09-08 07:39:56,060 basehttp 68286 6195015680 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 277408 +WARNING 2025-09-08 07:39:56,078 log 68286 6195015680 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:39:56,078 basehttp 68286 6195015680 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 07:41:06,764 autoreload 68286 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 07:41:07,170 autoreload 69183 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 07:41:09,315 log 69183 6128496640 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'start_telemedicine_session' with arguments '(283,)' not found. 1 pattern(s) tried: ['en/appointments/telemedicine/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/start/\\Z'] +ERROR 2025-09-08 07:41:09,327 basehttp 69183 6128496640 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 277408 +WARNING 2025-09-08 07:41:09,347 log 69183 6128496640 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:41:09,347 basehttp 69183 6128496640 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 07:41:10,325 log 69183 6128496640 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'start_telemedicine_session' with arguments '(283,)' not found. 1 pattern(s) tried: ['en/appointments/telemedicine/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/start/\\Z'] +ERROR 2025-09-08 07:41:10,328 basehttp 69183 6128496640 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 277408 +WARNING 2025-09-08 07:41:10,345 log 69183 6128496640 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:41:10,345 basehttp 69183 6128496640 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 07:42:18,520 basehttp 69183 6128496640 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 855808 +WARNING 2025-09-08 07:42:18,540 log 69183 6128496640 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:42:18,541 basehttp 69183 6128496640 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 07:42:18,677 basehttp 69183 6128496640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 07:42:56,667 log 69183 6128496640 Forbidden (CSRF token missing.): /en/appointments/telemedicine/0950dc4c-c554-4ec8-a3d1-87cad901b025/start/ +WARNING 2025-09-08 07:42:56,667 basehttp 69183 6128496640 "POST /en/appointments/telemedicine/0950dc4c-c554-4ec8-a3d1-87cad901b025/start/ HTTP/1.1" 403 2491 +INFO 2025-09-08 07:43:18,692 basehttp 69183 6128496640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:44:18,706 basehttp 69183 6128496640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:45:18,699 basehttp 69183 6128496640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:45:36,499 basehttp 69183 6128496640 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 868980 +WARNING 2025-09-08 07:45:36,519 log 69183 6128496640 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 07:45:36,520 basehttp 69183 6128496640 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 07:45:36,606 basehttp 69183 6128496640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +ERROR 2025-09-08 07:45:39,688 log 69183 6128496640 Internal Server Error: /en/appointments/telemedicine/0950dc4c-c554-4ec8-a3d1-87cad901b025/start/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1633, in start_telemedicine_session + return redirect('appointments:telemedicine_session_detail', session_id=session_id) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 51, in redirect + resolve_url(to, *args, **kwargs), + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 184, in resolve_url + return reverse(to, args=args, kwargs=kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'telemedicine_session_detail' not found. 'telemedicine_session_detail' is not a valid view function or pattern name. +ERROR 2025-09-08 07:45:39,689 basehttp 69183 6128496640 "POST /en/appointments/telemedicine/0950dc4c-c554-4ec8-a3d1-87cad901b025/start/ HTTP/1.1" 500 94648 +INFO 2025-09-08 07:46:36,621 basehttp 69183 6128496640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:47:36,633 basehttp 69183 6128496640 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:48:26,017 autoreload 69183 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/urls.py changed, reloading. +INFO 2025-09-08 07:48:26,355 autoreload 72407 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 07:56:33,332 autoreload 72407 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 07:56:33,791 autoreload 75963 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 07:56:36,714 basehttp 75963 6190542848 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:57:35,504 autoreload 75963 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 07:57:35,968 autoreload 76433 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 07:57:36,616 basehttp 76433 6122467328 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:58:36,571 basehttp 76433 6122467328 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 07:59:36,590 basehttp 76433 6122467328 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:00:36,587 basehttp 76433 6122467328 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:01:35,960 autoreload 76433 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 08:01:36,403 autoreload 78216 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 08:01:52,624 basehttp 78216 6190952448 "GET /en/admin/appointments/telemedicinesession/ HTTP/1.1" 200 152073 +INFO 2025-09-08 08:01:52,644 basehttp 78216 6207778816 "GET /static/admin/css/dark_mode.css HTTP/1.1" 200 2808 +INFO 2025-09-08 08:01:52,645 basehttp 78216 6224605184 "GET /static/admin/css/nav_sidebar.css HTTP/1.1" 200 2810 +INFO 2025-09-08 08:01:52,645 basehttp 78216 6190952448 "GET /static/admin/css/base.css HTTP/1.1" 200 22120 +INFO 2025-09-08 08:01:52,645 basehttp 78216 6241431552 "GET /static/admin/css/changelists.css HTTP/1.1" 200 6878 +INFO 2025-09-08 08:01:52,646 basehttp 78216 6258257920 "GET /static/admin/js/theme.js HTTP/1.1" 200 1653 +INFO 2025-09-08 08:01:52,647 basehttp 78216 6207778816 "GET /static/admin/css/responsive.css HTTP/1.1" 200 16565 +INFO 2025-09-08 08:01:52,648 basehttp 78216 6190952448 "GET /static/admin/js/jquery.init.js HTTP/1.1" 200 347 +INFO 2025-09-08 08:01:52,648 basehttp 78216 6241431552 "GET /static/admin/js/core.js HTTP/1.1" 200 6208 +INFO 2025-09-08 08:01:52,648 basehttp 78216 6207778816 "GET /static/admin/js/actions.js HTTP/1.1" 200 8076 +INFO 2025-09-08 08:01:52,649 basehttp 78216 6258257920 "GET /static/admin/js/admin/RelatedObjectLookups.js HTTP/1.1" 200 9777 +INFO 2025-09-08 08:01:52,652 basehttp 78216 6190952448 "GET /static/admin/js/urlify.js HTTP/1.1" 200 7887 +INFO 2025-09-08 08:01:52,652 basehttp 78216 6241431552 "GET /static/admin/js/prepopulate.js HTTP/1.1" 200 1531 +INFO 2025-09-08 08:01:52,652 basehttp 78216 6258257920 "GET /static/admin/img/search.svg HTTP/1.1" 200 458 +INFO 2025-09-08 08:01:52,654 basehttp 78216 6241431552 "GET /static/admin/img/icon-no.svg HTTP/1.1" 200 560 +INFO 2025-09-08 08:01:52,654 basehttp 78216 6224605184 "GET /static/admin/js/vendor/jquery/jquery.js HTTP/1.1" 200 285314 +INFO 2025-09-08 08:01:52,655 basehttp 78216 6275084288 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +INFO 2025-09-08 08:01:52,656 basehttp 78216 6275084288 "GET /static/admin/js/nav_sidebar.js HTTP/1.1" 200 3063 +INFO 2025-09-08 08:01:52,656 basehttp 78216 6207778816 "GET /static/admin/js/vendor/xregexp/xregexp.js HTTP/1.1" 200 325171 +INFO 2025-09-08 08:01:52,659 basehttp 78216 6207778816 "GET /static/admin/js/filters.js HTTP/1.1" 200 978 +INFO 2025-09-08 08:01:52,659 basehttp 78216 6275084288 "GET /static/admin/img/icon-yes.svg HTTP/1.1" 200 436 +INFO 2025-09-08 08:01:52,668 basehttp 78216 6275084288 "GET /static/admin/img/icon-addlink.svg HTTP/1.1" 200 331 +INFO 2025-09-08 08:01:52,668 basehttp 78216 6275084288 "GET /static/admin/img/tooltag-add.svg HTTP/1.1" 200 331 +INFO 2025-09-08 08:01:52,668 basehttp 78216 6207778816 "GET /static/admin/img/sorting-icons.svg HTTP/1.1" 200 1097 +INFO 2025-09-08 08:01:52,669 basehttp 78216 6207778816 "GET /static/admin/img/icon-viewlink.svg HTTP/1.1" 200 581 +INFO 2025-09-08 08:01:57,194 basehttp 78216 6207778816 "GET /en/admin/appointments/telemedicinesession/282/change/ HTTP/1.1" 200 266586 +INFO 2025-09-08 08:01:57,208 basehttp 78216 6207778816 "GET /static/admin/css/forms.css HTTP/1.1" 200 8525 +INFO 2025-09-08 08:01:57,211 basehttp 78216 6275084288 "GET /static/admin/js/calendar.js HTTP/1.1" 200 9141 +INFO 2025-09-08 08:01:57,211 basehttp 78216 6241431552 "GET /static/admin/js/prepopulate_init.js HTTP/1.1" 200 586 +INFO 2025-09-08 08:01:57,211 basehttp 78216 6190952448 "GET /static/admin/css/widgets.css HTTP/1.1" 200 11991 +INFO 2025-09-08 08:01:57,211 basehttp 78216 6224605184 "GET /static/admin/js/admin/DateTimeShortcuts.js HTTP/1.1" 200 19319 +INFO 2025-09-08 08:01:57,212 basehttp 78216 6224605184 "GET /static/admin/img/icon-changelink.svg HTTP/1.1" 200 380 +INFO 2025-09-08 08:01:57,214 basehttp 78216 6224605184 "GET /static/admin/img/icon-deletelink.svg HTTP/1.1" 200 392 +INFO 2025-09-08 08:01:57,215 basehttp 78216 6207778816 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +INFO 2025-09-08 08:01:57,215 basehttp 78216 6224605184 "GET /static/admin/js/change_form.js HTTP/1.1" 200 606 +INFO 2025-09-08 08:01:57,255 basehttp 78216 6207778816 "GET /static/admin/img/icon-clock.svg HTTP/1.1" 200 677 +INFO 2025-09-08 08:01:57,255 basehttp 78216 6224605184 "GET /static/admin/img/icon-calendar.svg HTTP/1.1" 200 1086 +INFO 2025-09-08 08:02:26,804 basehttp 78216 6207778816 "GET /en/admin/appointments/queueentry/ HTTP/1.1" 200 95319 +INFO 2025-09-08 08:02:26,819 basehttp 78216 6207778816 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +INFO 2025-09-08 08:02:31,541 basehttp 78216 6224605184 "GET /en/admin/appointments/telemedicinesession/ HTTP/1.1" 200 151925 +INFO 2025-09-08 08:02:31,733 basehttp 78216 6207778816 "GET /en/admin/appointments/telemedicinesession/282/change/ HTTP/1.1" 200 266586 +INFO 2025-09-08 08:02:31,734 basehttp 78216 6207778816 - Broken pipe from ('127.0.0.1', 61410) +INFO 2025-09-08 08:02:37,216 basehttp 78216 6224605184 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:02:46,657 basehttp 78216 6224605184 "POST /en/appointments/telemedicine/0950dc4c-c554-4ec8-a3d1-87cad901b025/start/ HTTP/1.1" 302 0 +ERROR 2025-09-08 08:02:46,698 log 78216 6224605184 Internal Server Error: /en/appointments/telemedicine/0950dc4c-c554-4ec8-a3d1-87cad901b025/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/mixins.py", line 73, in dispatch + return super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 144, in dispatch + return handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/detail.py", line 112, in get + self.object = self.get_object() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/detail.py", line 46, in get_object + raise AttributeError( +AttributeError: Generic detail view TelemedicineSessionDetailView must be called with either an object pk or a slug in the URLconf. +ERROR 2025-09-08 08:02:46,698 basehttp 78216 6224605184 "GET /en/appointments/telemedicine/0950dc4c-c554-4ec8-a3d1-87cad901b025/ HTTP/1.1" 500 88915 +INFO 2025-09-08 08:03:37,219 basehttp 78216 6224605184 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:04:37,213 basehttp 78216 6224605184 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:05:37,234 basehttp 78216 6224605184 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:05:38,549 autoreload 78216 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 08:05:39,078 autoreload 79990 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 08:05:41,845 log 79990 6158987264 Internal Server Error: /en/appointments/telemedicine/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 243, in render + nodelist.append(node.render_annotated(context)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'cancel_telemedicine_session' with arguments '(UUID('1ec61172-71fd-44ed-8059-5eea14678cd8'),)' not found. 1 pattern(s) tried: ['en/appointments/telemedicine/(?P[0-9]+)/cancel/\\Z'] +ERROR 2025-09-08 08:05:41,847 basehttp 79990 6158987264 "GET /en/appointments/telemedicine/ HTTP/1.1" 500 274657 +WARNING 2025-09-08 08:05:41,886 log 79990 6158987264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:05:41,886 basehttp 79990 6158987264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:06:09,415 basehttp 79990 6158987264 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 858363 +WARNING 2025-09-08 08:06:09,433 log 79990 6158987264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:06:09,433 basehttp 79990 6158987264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:06:09,538 basehttp 79990 6158987264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:06:27,157 basehttp 79990 6158987264 "POST /en/appointments/telemedicine/278/start/ HTTP/1.1" 302 0 +INFO 2025-09-08 08:06:27,167 basehttp 79990 6158987264 "GET /en/appointments/telemedicine/278/ HTTP/1.1" 200 123 +INFO 2025-09-08 08:07:10,247 basehttp 79990 6158987264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:08:11,245 basehttp 79990 6158987264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:09:12,239 basehttp 79990 6158987264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:10:13,228 basehttp 79990 6158987264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:11:14,257 basehttp 79990 6158987264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:12:00,323 log 79990 6158987264 Not Found: /en/appointments/telemedicine/284/detail +WARNING 2025-09-08 08:12:00,323 basehttp 79990 6158987264 "GET /en/appointments/telemedicine/284/detail HTTP/1.1" 404 37723 +WARNING 2025-09-08 08:12:00,345 log 79990 6158987264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:12:00,345 basehttp 79990 6158987264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:12:13,025 log 79990 6158987264 Internal Server Error: /en/appointments/telemedicine/284/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 134, in render + compiled_parent = self.get_parent(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 131, in get_parent + return self.find_template(parent, context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 109, in find_template + template, origin = context.template.engine.find_template( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/engine.py", line 163, in find_template + raise TemplateDoesNotExist(name, tried=tried) +django.template.exceptions.TemplateDoesNotExist: base/base.html + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 109, in render + reraise(exc, self.backend) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 130, in reraise + raise new from exc +django.template.exceptions.TemplateDoesNotExist: base/base.html +ERROR 2025-09-08 08:12:13,026 basehttp 79990 6158987264 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 500 130236 +WARNING 2025-09-08 08:12:13,041 log 79990 6158987264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:12:13,041 basehttp 79990 6158987264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:12:33,071 log 79990 6158987264 Internal Server Error: /en/appointments/telemedicine/284/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 81, in reverse + extra, resolver = resolver.namespace_dict[ns] + ~~~~~~~~~~~~~~~~~~~~~~~^^^^ +KeyError: 'telemedicine' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: 'telemedicine' is not a registered namespace +ERROR 2025-09-08 08:12:33,072 basehttp 79990 6158987264 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 500 173223 +WARNING 2025-09-08 08:12:33,087 log 79990 6158987264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:12:33,087 basehttp 79990 6158987264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:15:32,862 autoreload 79990 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/urls.py changed, reloading. +INFO 2025-09-08 08:15:33,294 autoreload 84314 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 08:15:53,866 log 84314 6127398912 Internal Server Error: /en/appointments/telemedicine/284/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 81, in reverse + extra, resolver = resolver.namespace_dict[ns] + ~~~~~~~~~~~~~~~~~~~~~~~^^^^ +KeyError: 'telemedicine' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: 'telemedicine' is not a registered namespace +ERROR 2025-09-08 08:15:53,868 basehttp 84314 6127398912 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 500 172985 +WARNING 2025-09-08 08:15:53,885 log 84314 6127398912 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:15:53,885 basehttp 84314 6127398912 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:15:55,315 log 84314 6127398912 Internal Server Error: /en/appointments/telemedicine/284/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 81, in reverse + extra, resolver = resolver.namespace_dict[ns] + ~~~~~~~~~~~~~~~~~~~~~~~^^^^ +KeyError: 'telemedicine' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: 'telemedicine' is not a registered namespace +ERROR 2025-09-08 08:15:55,317 basehttp 84314 6127398912 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 500 172985 +WARNING 2025-09-08 08:15:55,330 log 84314 6127398912 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:15:55,331 basehttp 84314 6127398912 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:16:55,347 log 84314 6127398912 Internal Server Error: /en/appointments/telemedicine/284/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 81, in reverse + extra, resolver = resolver.namespace_dict[ns] + ~~~~~~~~~~~~~~~~~~~~~~~^^^^ +KeyError: 'telemedicine' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: 'telemedicine' is not a registered namespace +ERROR 2025-09-08 08:16:55,349 basehttp 84314 6127398912 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 500 172985 +WARNING 2025-09-08 08:16:55,364 log 84314 6127398912 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:16:55,365 basehttp 84314 6127398912 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:16:56,617 log 84314 6127398912 Internal Server Error: /en/appointments/telemedicine/284/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 81, in reverse + extra, resolver = resolver.namespace_dict[ns] + ~~~~~~~~~~~~~~~~~~~~~~~^^^^ +KeyError: 'telemedicine' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: 'telemedicine' is not a registered namespace +ERROR 2025-09-08 08:16:56,618 basehttp 84314 6127398912 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 500 172985 +WARNING 2025-09-08 08:16:56,632 log 84314 6127398912 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:16:56,632 basehttp 84314 6127398912 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:17:19,969 log 84314 6127398912 Internal Server Error: /en/appointments/telemedicine/284/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 81, in reverse + extra, resolver = resolver.namespace_dict[ns] + ~~~~~~~~~~~~~~~~~~~~~~~^^^^ +KeyError: 'staff' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: 'staff' is not a registered namespace +ERROR 2025-09-08 08:17:19,971 basehttp 84314 6127398912 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 500 189078 +WARNING 2025-09-08 08:17:19,985 log 84314 6127398912 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:17:19,985 basehttp 84314 6127398912 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:18:41,843 basehttp 84314 6127398912 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 200 39004 +WARNING 2025-09-08 08:18:41,854 log 84314 6127398912 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:18:41,855 basehttp 84314 6127398912 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:18:41,925 basehttp 84314 6127398912 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:19:41,955 basehttp 84314 6127398912 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:20:41,942 basehttp 84314 6127398912 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:21:10,001 basehttp 84314 6127398912 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 857619 +WARNING 2025-09-08 08:21:10,019 log 84314 6127398912 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:21:10,020 basehttp 84314 6127398912 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:21:10,146 basehttp 84314 6127398912 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:22:10,171 basehttp 84314 6127398912 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:22:25,766 autoreload 84314 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 08:22:26,238 autoreload 87352 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 08:22:26,887 basehttp 87352 6137622528 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 82703 +WARNING 2025-09-08 08:22:26,904 log 87352 6137622528 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:22:26,904 basehttp 87352 6137622528 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:22:26,945 basehttp 87352 6137622528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:23:26,963 basehttp 87352 6137622528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:24:26,961 basehttp 87352 6137622528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:25:26,967 basehttp 87352 6137622528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:26:27,190 basehttp 87352 6137622528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:27:52,818 basehttp 87352 6137622528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:40:01,237 basehttp 87352 6137622528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:40:25,502 basehttp 87352 6137622528 "GET /en/appointments/telemedicine/ HTTP/1.1" 200 82703 +INFO 2025-09-08 08:40:25,517 basehttp 87352 13035925504 "GET /static/css/custom.css HTTP/1.1" 200 2063 +INFO 2025-09-08 08:40:25,519 basehttp 87352 13069578240 "GET /static/img/user/user-4.jpg HTTP/1.1" 200 5916 +WARNING 2025-09-08 08:40:25,521 log 87352 6137622528 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:40:25,521 basehttp 87352 6137622528 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:40:25,523 basehttp 87352 13052751872 "GET /static/js/htmx.min.js HTTP/1.1" 200 50917 +INFO 2025-09-08 08:40:25,528 basehttp 87352 6154448896 "GET /static/css/vendor.min.css HTTP/1.1" 200 177466 +INFO 2025-09-08 08:40:25,529 basehttp 87352 13069578240 "GET /static/js/app.min.js HTTP/1.1" 200 110394 +INFO 2025-09-08 08:40:25,530 basehttp 87352 6171275264 "GET /static/css/default/app.min.css HTTP/1.1" 200 893480 +INFO 2025-09-08 08:40:25,535 basehttp 87352 13035925504 "GET /static/js/vendor.min.js HTTP/1.1" 200 1091361 +INFO 2025-09-08 08:40:26,771 basehttp 87352 13035925504 "GET /static/css/default/app.min.css.map HTTP/1.1" 200 1957526 +INFO 2025-09-08 08:40:26,796 basehttp 87352 13052751872 "GET /static/img/theme/facebook.jpg HTTP/1.1" 200 27881 +INFO 2025-09-08 08:40:26,797 basehttp 87352 6154448896 "GET /static/img/theme/material.jpg HTTP/1.1" 200 28774 +INFO 2025-09-08 08:40:26,798 basehttp 87352 6171275264 "GET /static/img/theme/transparent.jpg HTTP/1.1" 200 32747 +INFO 2025-09-08 08:40:26,799 basehttp 87352 13035925504 "GET /static/img/theme/default.jpg HTTP/1.1" 200 26964 +INFO 2025-09-08 08:40:26,799 basehttp 87352 13069578240 "GET /static/img/theme/apple.jpg HTTP/1.1" 200 28822 +INFO 2025-09-08 08:40:26,803 basehttp 87352 6137622528 "GET /static/img/theme/google.jpg HTTP/1.1" 200 86013 +INFO 2025-09-08 08:40:26,805 basehttp 87352 13035925504 "GET /static/img/version/ajax.jpg HTTP/1.1" 200 20223 +INFO 2025-09-08 08:40:26,805 basehttp 87352 13069578240 "GET /static/img/version/angular1x.jpg HTTP/1.1" 200 22869 +INFO 2025-09-08 08:40:26,806 basehttp 87352 6137622528 "GET /static/img/version/angular10x.jpg HTTP/1.1" 200 24580 +INFO 2025-09-08 08:40:26,807 basehttp 87352 13052751872 "GET /static/webfonts/fa-solid-900.woff2 HTTP/1.1" 200 158220 +INFO 2025-09-08 08:40:26,807 basehttp 87352 13069578240 "GET /static/img/version/laravel.jpg HTTP/1.1" 200 26040 +INFO 2025-09-08 08:40:26,808 basehttp 87352 6171275264 "GET /static/img/version/html.jpg HTTP/1.1" 200 17325 +INFO 2025-09-08 08:40:26,808 basehttp 87352 13035925504 "GET /static/img/version/svelte.jpg HTTP/1.1" 200 25060 +INFO 2025-09-08 08:40:26,809 basehttp 87352 6137622528 "GET /static/img/version/django.jpg HTTP/1.1" 200 20935 +INFO 2025-09-08 08:40:26,812 basehttp 87352 6171275264 "GET /static/img/version/vuejs.jpg HTTP/1.1" 200 22518 +INFO 2025-09-08 08:40:26,812 basehttp 87352 13069578240 "GET /static/img/version/dotnet.jpg HTTP/1.1" 200 24791 +INFO 2025-09-08 08:40:26,812 basehttp 87352 13035925504 "GET /static/img/version/reactjs.jpg HTTP/1.1" 200 26850 +INFO 2025-09-08 08:40:26,813 basehttp 87352 13052751872 "GET /static/img/version/nextjs.jpg HTTP/1.1" 200 20152 +INFO 2025-09-08 08:40:26,814 basehttp 87352 6154448896 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:40:26,815 basehttp 87352 13035925504 "GET /static/img/theme/blog.jpg HTTP/1.1" 200 32334 +INFO 2025-09-08 08:40:26,816 basehttp 87352 6137622528 "GET /static/img/theme/one-page-parallax.jpg HTTP/1.1" 200 22474 +INFO 2025-09-08 08:40:26,816 basehttp 87352 13052751872 "GET /static/img/theme/corporate.jpg HTTP/1.1" 200 38911 +INFO 2025-09-08 08:40:26,816 basehttp 87352 13069578240 "GET /static/img/theme/forum.jpg HTTP/1.1" 200 28744 +INFO 2025-09-08 08:40:26,816 basehttp 87352 6171275264 "GET /static/img/theme/e-commerce.jpg HTTP/1.1" 200 37734 +WARNING 2025-09-08 08:40:27,037 log 87352 13052751872 Not Found: /favicon.ico +WARNING 2025-09-08 08:40:27,037 basehttp 87352 13052751872 "GET /favicon.ico HTTP/1.1" 404 2557 +INFO 2025-09-08 08:40:50,623 basehttp 87352 13052751872 "GET /en/audit-log/ HTTP/1.1" 200 223868 +WARNING 2025-09-08 08:40:50,643 log 87352 13052751872 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:40:50,643 basehttp 87352 13052751872 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:40:50,729 basehttp 87352 13052751872 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:41:10,815 log 87352 13052751872 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:41:10,815 basehttp 87352 13052751872 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:41:10,824 log 87352 13052751872 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:41:10,824 basehttp 87352 13052751872 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:41:11,331 basehttp 87352 13052751872 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 200 39004 +WARNING 2025-09-08 08:41:11,348 log 87352 13052751872 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:41:11,349 basehttp 87352 13052751872 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:41:15,780 log 87352 13052751872 Internal Server Error: /en/appointments/requests/2200/detail/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: appointments/appointment_detail.html +ERROR 2025-09-08 08:41:15,780 basehttp 87352 13052751872 "GET /en/appointments/requests/2200/detail/ HTTP/1.1" 500 84278 +WARNING 2025-09-08 08:41:15,796 log 87352 13052751872 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:41:15,796 basehttp 87352 13052751872 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:41:44,247 autoreload 87352 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 08:41:44,601 autoreload 90734 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 08:41:45,194 basehttp 90734 6194704384 "GET /en/appointments/requests/2200/detail/ HTTP/1.1" 200 22949 +WARNING 2025-09-08 08:41:45,211 log 90734 6194704384 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:41:45,214 basehttp 90734 6194704384 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:41:45,270 basehttp 90734 6194704384 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:42:09,746 autoreload 90734 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 08:42:10,104 autoreload 90989 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 08:42:10,779 log 90989 6200242176 Internal Server Error: /en/appointments/requests/2200/detail/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'appointment_request_list' not found. 'appointment_request_list' is not a valid view function or pattern name. +ERROR 2025-09-08 08:42:10,784 basehttp 90989 6200242176 "GET /en/appointments/requests/2200/detail/ HTTP/1.1" 500 175736 +WARNING 2025-09-08 08:42:10,804 log 90989 6200242176 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:42:10,804 basehttp 90989 6200242176 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:43:01,757 log 90989 6200242176 Internal Server Error: /en/appointments/requests/2200/detail/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'appointment_request_update' not found. 'appointment_request_update' is not a valid view function or pattern name. +ERROR 2025-09-08 08:43:01,760 basehttp 90989 6200242176 "GET /en/appointments/requests/2200/detail/ HTTP/1.1" 500 176067 +WARNING 2025-09-08 08:43:01,771 log 90989 6200242176 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:43:01,771 basehttp 90989 6200242176 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:43:28,202 log 90989 6200242176 Internal Server Error: /en/appointments/requests/2200/detail/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'appointment_update' not found. 'appointment_update' is not a valid view function or pattern name. +ERROR 2025-09-08 08:43:28,204 basehttp 90989 6200242176 "GET /en/appointments/requests/2200/detail/ HTTP/1.1" 500 175835 +WARNING 2025-09-08 08:43:28,218 log 90989 6200242176 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:43:28,218 basehttp 90989 6200242176 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:43:46,548 log 90989 6200242176 Internal Server Error: /en/appointments/requests/2200/detail/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'appointment_delete' not found. 'appointment_delete' is not a valid view function or pattern name. +ERROR 2025-09-08 08:43:46,549 basehttp 90989 6200242176 "GET /en/appointments/requests/2200/detail/ HTTP/1.1" 500 174536 +WARNING 2025-09-08 08:43:46,563 log 90989 6200242176 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:43:46,563 basehttp 90989 6200242176 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:44:16,318 log 90989 6200242176 Internal Server Error: /en/appointments/requests/2200/detail/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'cancel_appointment' not found. 'cancel_appointment' is not a valid view function or pattern name. +ERROR 2025-09-08 08:44:16,319 basehttp 90989 6200242176 "GET /en/appointments/requests/2200/detail/ HTTP/1.1" 500 172232 +WARNING 2025-09-08 08:44:16,332 log 90989 6200242176 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:44:16,332 basehttp 90989 6200242176 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:47:25,829 autoreload 90989 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/urls.py changed, reloading. +INFO 2025-09-08 08:47:26,203 autoreload 93312 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 08:47:28,139 basehttp 93312 6194786304 "GET /en/appointments/requests/2200/detail/ HTTP/1.1" 200 30636 +WARNING 2025-09-08 08:47:28,156 log 93312 6194786304 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:47:28,156 basehttp 93312 6194786304 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:47:28,197 basehttp 93312 6194786304 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:47:51,420 basehttp 93312 6194786304 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:47:51,422 log 93312 6211612672 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:47:51,422 basehttp 93312 6211612672 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:47:51,444 log 93312 6211612672 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:47:51,444 basehttp 93312 6211612672 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:47:53,004 basehttp 93312 6211612672 "GET /en/appointments/telemedicine/284/ HTTP/1.1" 200 39004 +WARNING 2025-09-08 08:47:53,024 log 93312 6211612672 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:47:53,024 basehttp 93312 6211612672 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:47:53,068 basehttp 93312 6211612672 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:48:08,201 basehttp 93312 6211612672 "GET /en/hr/employees/4/ HTTP/1.1" 200 35487 +WARNING 2025-09-08 08:48:08,220 log 93312 6211612672 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:48:08,221 basehttp 93312 6211612672 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:48:08,262 basehttp 93312 6211612672 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:48:54,591 basehttp 93312 6211612672 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:48:54,592 log 93312 6194786304 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:48:54,593 basehttp 93312 6194786304 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:48:54,605 log 93312 6194786304 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:48:54,605 basehttp 93312 6194786304 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:48:55,244 log 93312 6194786304 Not Found: /en/appointments/telemedicine/284/detail +WARNING 2025-09-08 08:48:55,244 basehttp 93312 6194786304 "GET /en/appointments/telemedicine/284/detail HTTP/1.1" 404 38928 +WARNING 2025-09-08 08:48:55,256 log 93312 6194786304 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:48:55,256 basehttp 93312 6194786304 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:48:56,109 log 93312 6194786304 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:48:56,109 basehttp 93312 6194786304 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:49:01,746 basehttp 93312 6194786304 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 38827 +WARNING 2025-09-08 08:49:01,763 log 93312 6194786304 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:49:01,763 basehttp 93312 6194786304 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:49:04,048 basehttp 93312 6194786304 "GET /en/appointments/queue/ HTTP/1.1" 200 44796 +WARNING 2025-09-08 08:49:04,067 log 93312 6194786304 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:49:04,067 basehttp 93312 6194786304 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:49:04,146 log 93312 6194786304 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:49:04,147 basehttp 93312 6194786304 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:49:04,156 log 93312 6278918144 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:49:04,157 basehttp 93312 6278918144 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:49:04,160 log 93312 6262091776 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:49:04,162 basehttp 93312 6262091776 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:49:04,172 basehttp 93312 6228439040 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:49:04,173 basehttp 93312 6245265408 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:49:04,175 log 93312 6194786304 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:49:04,175 basehttp 93312 6194786304 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:49:04,177 basehttp 93312 6211612672 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:49:04,182 log 93312 6278918144 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:49:04,185 log 93312 6262091776 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:49:04,185 basehttp 93312 6278918144 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:49:04,186 basehttp 93312 6262091776 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:49:04,190 log 93312 6228439040 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:49:04,191 basehttp 93312 6228439040 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:49:04,218 log 93312 6278918144 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:49:04,219 basehttp 93312 6278918144 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:49:04,219 basehttp 93312 6194786304 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:49:04,223 basehttp 93312 6211612672 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:49:04,225 basehttp 93312 6245265408 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:49:23,638 log 93312 6245265408 Forbidden (CSRF token missing.): /en/appointments/queue/8/call-next/ +WARNING 2025-09-08 08:49:23,639 basehttp 93312 6245265408 "POST /en/appointments/queue/8/call-next/ HTTP/1.1" 403 2491 +WARNING 2025-09-08 08:49:34,157 log 93312 6245265408 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:49:34,158 basehttp 93312 6245265408 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:49:34,167 log 93312 6262091776 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:49:34,169 basehttp 93312 6262091776 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:49:34,176 log 93312 6228439040 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:49:34,176 basehttp 93312 6228439040 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:49:34,183 log 93312 6245265408 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:49:34,184 basehttp 93312 6245265408 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:49:34,186 basehttp 93312 6278918144 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:49:34,187 basehttp 93312 6194786304 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:49:34,189 basehttp 93312 6211612672 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:49:34,192 log 93312 6262091776 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:49:34,193 basehttp 93312 6262091776 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:49:34,197 log 93312 6228439040 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:49:34,198 basehttp 93312 6228439040 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:49:34,202 log 93312 6245265408 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:49:34,203 basehttp 93312 6245265408 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:49:34,219 basehttp 93312 6278918144 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:49:34,244 log 93312 6262091776 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:49:34,245 basehttp 93312 6262091776 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:49:34,249 basehttp 93312 6194786304 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:49:34,249 basehttp 93312 6211612672 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:50:04,097 basehttp 93312 6211612672 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:50:04,121 log 93312 6194786304 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:50:04,121 basehttp 93312 6194786304 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:04,154 log 93312 6211612672 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:50:04,157 log 93312 6228439040 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:50:04,158 basehttp 93312 6211612672 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:50:04,158 basehttp 93312 6228439040 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:04,161 log 93312 6194786304 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:50:04,162 basehttp 93312 6194786304 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:50:04,166 basehttp 93312 6262091776 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:50:04,167 basehttp 93312 6245265408 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:50:04,169 basehttp 93312 6278918144 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:50:04,175 log 93312 6228439040 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:50:04,175 basehttp 93312 6228439040 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:04,205 log 93312 6211612672 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:50:04,205 basehttp 93312 6211612672 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:04,211 log 93312 6194786304 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:50:04,211 basehttp 93312 6194786304 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:04,240 log 93312 6228439040 Not Found: /en/appointments/queue/14/status/ +INFO 2025-09-08 08:50:04,243 basehttp 93312 6278918144 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 08:50:04,244 basehttp 93312 6228439040 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:50:04,246 basehttp 93312 6245265408 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:50:04,246 basehttp 93312 6262091776 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:50:34,121 log 93312 6262091776 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:50:34,121 basehttp 93312 6262091776 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:34,164 log 93312 6194786304 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:50:34,166 log 93312 6211612672 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:50:34,168 basehttp 93312 6211612672 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:50:34,169 basehttp 93312 6194786304 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:34,170 log 93312 6262091776 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:50:34,172 basehttp 93312 6262091776 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:50:34,173 basehttp 93312 6245265408 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:50:34,177 basehttp 93312 6278918144 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:50:34,179 basehttp 93312 6228439040 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:50:34,234 basehttp 93312 6278918144 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 08:50:34,243 log 93312 6211612672 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:50:34,245 log 93312 6262091776 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:50:34,246 basehttp 93312 6211612672 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:34,248 log 93312 6194786304 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:50:34,248 basehttp 93312 6262091776 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:34,249 basehttp 93312 6194786304 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:34,256 log 93312 6278918144 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:50:34,257 basehttp 93312 6278918144 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:50:34,260 basehttp 93312 6228439040 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:50:34,261 basehttp 93312 6245265408 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:50:38,153 basehttp 93312 6245265408 "GET /en/appointments/queue/ HTTP/1.1" 200 46812 +WARNING 2025-09-08 08:50:38,188 log 93312 6245265408 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:50:38,188 basehttp 93312 6245265408 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:50:38,253 basehttp 93312 6245265408 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:50:38,277 log 93312 6228439040 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:50:38,281 log 93312 6211612672 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:50:38,284 basehttp 93312 6228439040 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:38,284 basehttp 93312 6211612672 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:38,287 log 93312 6245265408 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:50:38,290 basehttp 93312 6245265408 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:50:38,290 basehttp 93312 6194786304 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:50:38,297 basehttp 93312 6262091776 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:50:38,300 basehttp 93312 6278918144 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:50:38,336 log 93312 6228439040 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:50:38,336 basehttp 93312 6228439040 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:38,344 log 93312 6211612672 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:50:38,344 basehttp 93312 6211612672 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:38,351 log 93312 6245265408 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:50:38,352 basehttp 93312 6245265408 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:38,356 log 93312 6194786304 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:50:38,357 basehttp 93312 6194786304 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:38,368 log 93312 6211612672 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:50:38,369 basehttp 93312 6211612672 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:50:38,373 basehttp 93312 6278918144 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:50:38,373 basehttp 93312 6262091776 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:50:38,374 basehttp 93312 6228439040 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:50:43,301 basehttp 93312 6228439040 "POST /en/appointments/queue/8/call-next/ HTTP/1.1" 302 0 +INFO 2025-09-08 08:50:43,314 basehttp 93312 6228439040 "GET /en/appointments/queue/ HTTP/1.1" 200 47203 +INFO 2025-09-08 08:50:43,374 basehttp 93312 6228439040 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:50:43,381 log 93312 6262091776 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:50:43,381 basehttp 93312 6262091776 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:43,390 log 93312 6245265408 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:50:43,392 basehttp 93312 6245265408 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:43,403 log 93312 6228439040 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:50:43,405 basehttp 93312 6228439040 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:50:43,409 log 93312 6262091776 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:50:43,410 basehttp 93312 6262091776 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:43,413 log 93312 6245265408 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:50:43,414 basehttp 93312 6245265408 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:50:43,414 basehttp 93312 6278918144 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:50:43,415 basehttp 93312 6194786304 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:50:43,416 basehttp 93312 6211612672 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:50:43,430 log 93312 6228439040 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:50:43,430 basehttp 93312 6228439040 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:43,474 log 93312 6262091776 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:50:43,475 basehttp 93312 6262091776 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:50:43,480 log 93312 6211612672 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:50:43,481 basehttp 93312 6211612672 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:50:43,486 basehttp 93312 6245265408 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:50:43,489 basehttp 93312 6194786304 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:50:43,490 basehttp 93312 6278918144 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 08:51:13,410 log 93312 6262091776 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:51:13,413 log 93312 6228439040 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:51:13,414 basehttp 93312 6228439040 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:51:13,414 basehttp 93312 6262091776 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:13,416 log 93312 6278918144 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:51:13,418 basehttp 93312 6278918144 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:51:13,426 basehttp 93312 6211612672 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:51:13,427 basehttp 93312 6194786304 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:51:13,429 basehttp 93312 6245265408 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:51:13,433 log 93312 6262091776 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:51:13,434 basehttp 93312 6262091776 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:13,459 log 93312 6228439040 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:51:13,459 basehttp 93312 6228439040 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:13,463 log 93312 6278918144 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:51:13,463 basehttp 93312 6278918144 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:13,479 log 93312 6211612672 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:51:13,480 basehttp 93312 6211612672 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:51:13,496 basehttp 93312 6262091776 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 08:51:13,502 log 93312 6228439040 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:51:13,503 basehttp 93312 6228439040 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:51:13,507 basehttp 93312 6245265408 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:51:13,508 basehttp 93312 6194786304 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:51:43,351 basehttp 93312 6194786304 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:51:43,403 log 93312 6245265408 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:51:43,404 basehttp 93312 6245265408 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:43,409 log 93312 6278918144 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:51:43,410 basehttp 93312 6278918144 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:43,412 log 93312 6194786304 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:51:43,414 basehttp 93312 6194786304 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:51:43,420 basehttp 93312 6262091776 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:51:43,424 basehttp 93312 6228439040 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:51:43,438 basehttp 93312 6211612672 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:51:43,441 log 93312 6245265408 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:51:43,441 basehttp 93312 6245265408 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:43,449 log 93312 6278918144 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:51:43,449 basehttp 93312 6278918144 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:43,455 log 93312 6194786304 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:51:43,455 basehttp 93312 6194786304 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:43,491 log 93312 6262091776 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:51:43,492 basehttp 93312 6262091776 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:51:43,496 log 93312 6278918144 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:51:43,497 basehttp 93312 6278918144 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:51:43,508 basehttp 93312 6194786304 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 08:51:43,513 basehttp 93312 6245265408 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:51:43,513 basehttp 93312 6228439040 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:51:43,514 basehttp 93312 6211612672 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 08:52:13,389 log 93312 6211612672 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:52:13,389 basehttp 93312 6211612672 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:13,414 log 93312 6278918144 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:52:13,422 basehttp 93312 6278918144 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:13,426 log 93312 6262091776 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:52:13,429 basehttp 93312 6262091776 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:52:13,435 log 93312 6211612672 Not Found: /en/appointments/queue/6/status/ +INFO 2025-09-08 08:52:13,437 basehttp 93312 6228439040 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:52:13,437 basehttp 93312 6211612672 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:52:13,442 basehttp 93312 6194786304 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:52:13,445 log 93312 6278918144 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:52:13,446 basehttp 93312 6278918144 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:52:13,448 basehttp 93312 6245265408 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:52:13,452 log 93312 6262091776 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:52:13,453 basehttp 93312 6262091776 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:13,472 log 93312 6228439040 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:52:13,474 basehttp 93312 6228439040 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:52:13,476 basehttp 93312 6211612672 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:52:13,495 log 93312 6245265408 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:52:13,496 basehttp 93312 6245265408 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:52:13,498 basehttp 93312 6194786304 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:52:13,499 basehttp 93312 6278918144 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:52:43,340 basehttp 93312 6278918144 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:52:43,395 log 93312 6194786304 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:52:43,396 basehttp 93312 6194786304 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:43,405 log 93312 6262091776 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:52:43,407 basehttp 93312 6262091776 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:52:43,412 basehttp 93312 6245265408 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:52:43,419 log 93312 6194786304 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:52:43,420 basehttp 93312 6194786304 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:52:43,423 basehttp 93312 6228439040 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:52:43,424 basehttp 93312 6211612672 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:52:43,443 log 93312 6262091776 Not Found: /en/appointments/queue/6/status/ +INFO 2025-09-08 08:52:43,444 basehttp 93312 6278918144 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:52:43,446 basehttp 93312 6262091776 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:43,450 log 93312 6245265408 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:52:43,452 basehttp 93312 6245265408 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:43,454 log 93312 6228439040 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:52:43,455 basehttp 93312 6228439040 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:43,462 log 93312 6194786304 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:52:43,462 basehttp 93312 6194786304 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:52:43,466 basehttp 93312 6211612672 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:52:43,499 log 93312 6245265408 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:52:43,501 basehttp 93312 6245265408 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:52:43,503 basehttp 93312 6262091776 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:52:43,504 basehttp 93312 6278918144 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:52:54,544 basehttp 93312 6278918144 "GET /en/appointments/queue/ HTTP/1.1" 200 46828 +INFO 2025-09-08 08:52:54,637 basehttp 93312 6278918144 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:52:54,664 log 93312 6262091776 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:52:54,667 log 93312 6228439040 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:52:54,668 basehttp 93312 6262091776 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:54,669 basehttp 93312 6228439040 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:54,674 log 93312 6278918144 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:52:54,676 basehttp 93312 6278918144 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:52:54,679 basehttp 93312 6194786304 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:52:54,682 basehttp 93312 6245265408 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:52:54,685 basehttp 93312 6211612672 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:52:54,720 log 93312 6228439040 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:52:54,720 basehttp 93312 6228439040 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:54,725 log 93312 6262091776 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:52:54,725 basehttp 93312 6262091776 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:54,737 log 93312 6278918144 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:52:54,737 basehttp 93312 6278918144 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:54,745 log 93312 6194786304 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:52:54,746 basehttp 93312 6194786304 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:52:54,757 log 93312 6278918144 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:52:54,759 log 93312 6262091776 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:52:54,760 basehttp 93312 6262091776 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:52:54,761 basehttp 93312 6245265408 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:52:54,761 basehttp 93312 6278918144 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:52:54,763 basehttp 93312 6211612672 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:52:54,763 basehttp 93312 6278918144 - Broken pipe from ('127.0.0.1', 54143) +INFO 2025-09-08 08:52:54,765 basehttp 93312 6228439040 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 08:53:24,683 log 93312 6194786304 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:53:24,685 log 93312 6228439040 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:53:24,686 basehttp 93312 6228439040 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:24,686 basehttp 93312 6194786304 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:24,692 log 93312 6278918144 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:53:24,694 basehttp 93312 6278918144 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:53:24,699 basehttp 93312 6211612672 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:53:24,701 basehttp 93312 6245265408 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:53:24,704 basehttp 93312 6262091776 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:53:24,733 log 93312 6228439040 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:53:24,733 basehttp 93312 6228439040 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:24,754 log 93312 6194786304 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:53:24,754 basehttp 93312 6194786304 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:24,773 log 93312 6211612672 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:53:24,775 log 93312 6278918144 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:53:24,776 basehttp 93312 6211612672 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:24,776 basehttp 93312 6278918144 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:24,784 log 93312 6194786304 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:53:24,787 basehttp 93312 6194786304 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:53:24,793 basehttp 93312 6245265408 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:53:24,793 basehttp 93312 6262091776 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:53:24,794 basehttp 93312 6228439040 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:53:54,639 basehttp 93312 6228439040 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:53:54,672 log 93312 6262091776 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:53:54,673 basehttp 93312 6262091776 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:54,682 log 93312 6228439040 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:53:54,684 basehttp 93312 6228439040 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:53:54,687 log 93312 6211612672 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:53:54,688 basehttp 93312 6211612672 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:54,708 log 93312 6262091776 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:53:54,708 basehttp 93312 6262091776 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:53:54,712 basehttp 93312 6245265408 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:53:54,722 log 93312 6228439040 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:53:54,725 basehttp 93312 6228439040 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:54,727 log 93312 6211612672 Not Found: /en/appointments/queue/5/status/ +INFO 2025-09-08 08:53:54,727 basehttp 93312 6278918144 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:53:54,728 basehttp 93312 6194786304 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:53:54,728 basehttp 93312 6211612672 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:53:54,734 log 93312 6262091776 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:53:54,735 basehttp 93312 6262091776 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:53:54,741 basehttp 93312 6245265408 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:53:54,746 basehttp 93312 6228439040 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 08:53:54,757 log 93312 6194786304 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:53:54,759 basehttp 93312 6194786304 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:53:54,771 basehttp 93312 6278918144 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 08:54:24,650 log 93312 6278918144 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:54:24,650 basehttp 93312 6278918144 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:54:24,693 log 93312 6262091776 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:54:24,695 basehttp 93312 6262091776 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:54:24,699 log 93312 6278918144 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:54:24,703 log 93312 6211612672 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:54:24,704 basehttp 93312 6278918144 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:54:24,705 basehttp 93312 6211612672 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:54:24,716 log 93312 6262091776 Not Found: /en/appointments/queue/3/status/ +INFO 2025-09-08 08:54:24,716 basehttp 93312 6194786304 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:54:24,718 basehttp 93312 6262091776 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:54:24,719 basehttp 93312 6228439040 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:54:24,722 basehttp 93312 6245265408 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:54:24,725 log 93312 6211612672 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:54:24,725 basehttp 93312 6211612672 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:54:24,728 log 93312 6278918144 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:54:24,730 basehttp 93312 6278918144 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:54:24,741 basehttp 93312 6262091776 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 08:54:24,755 log 93312 6245265408 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:54:24,757 basehttp 93312 6245265408 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:54:24,760 basehttp 93312 6194786304 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:54:24,760 basehttp 93312 6228439040 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:54:54,646 basehttp 93312 6228439040 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:54:54,686 log 93312 6194786304 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:54:54,688 log 93312 6211612672 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:54:54,688 basehttp 93312 6194786304 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:54:54,688 basehttp 93312 6211612672 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:54:54,698 log 93312 6228439040 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:54:54,699 basehttp 93312 6228439040 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:54:54,708 log 93312 6211612672 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:54:54,709 basehttp 93312 6211612672 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:54:54,719 basehttp 93312 6245265408 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:54:54,723 log 93312 6228439040 Not Found: /en/appointments/queue/5/status/ +INFO 2025-09-08 08:54:54,724 basehttp 93312 6278918144 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:54:54,733 log 93312 6194786304 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:54:54,734 basehttp 93312 6228439040 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:54:54,734 basehttp 93312 6194786304 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:54:54,735 basehttp 93312 6262091776 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:54:54,743 log 93312 6211612672 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:54:54,743 basehttp 93312 6211612672 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:54:54,791 log 93312 6194786304 Not Found: /en/appointments/queue/14/status/ +INFO 2025-09-08 08:54:54,793 basehttp 93312 6245265408 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:54:54,793 basehttp 93312 6194786304 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:54:54,804 basehttp 93312 6278918144 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:54:54,804 basehttp 93312 6228439040 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 08:55:24,690 log 93312 6211612672 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:55:24,691 basehttp 93312 6211612672 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:24,694 log 93312 6262091776 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:55:24,696 log 93312 6228439040 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:55:24,697 basehttp 93312 6262091776 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:55:24,697 basehttp 93312 6228439040 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:55:24,705 basehttp 93312 6194786304 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:55:24,707 basehttp 93312 6245265408 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:55:24,708 basehttp 93312 6278918144 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:55:24,723 log 93312 6211612672 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:55:24,729 basehttp 93312 6211612672 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:24,759 log 93312 6262091776 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:55:24,759 basehttp 93312 6262091776 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:24,768 log 93312 6228439040 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:55:24,768 basehttp 93312 6228439040 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:24,801 log 93312 6194786304 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:55:24,805 log 93312 6262091776 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:55:24,805 basehttp 93312 6194786304 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:24,806 basehttp 93312 6262091776 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:55:24,813 basehttp 93312 6278918144 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:55:24,814 basehttp 93312 6211612672 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:55:24,814 basehttp 93312 6245265408 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:55:54,631 basehttp 93312 6245265408 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:55:54,669 log 93312 6211612672 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:55:54,670 basehttp 93312 6211612672 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:54,688 log 93312 6245265408 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:55:54,691 log 93312 6228439040 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:55:54,691 basehttp 93312 6245265408 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:55:54,693 basehttp 93312 6228439040 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:54,699 log 93312 6211612672 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:55:54,699 basehttp 93312 6211612672 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:55:54,718 basehttp 93312 6278918144 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:55:54,720 basehttp 93312 6262091776 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:55:54,723 basehttp 93312 6194786304 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:55:54,752 log 93312 6211612672 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:55:54,752 basehttp 93312 6211612672 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:54,778 log 93312 6228439040 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:55:54,778 basehttp 93312 6228439040 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:54,790 log 93312 6245265408 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:55:54,792 basehttp 93312 6245265408 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:55:54,801 log 93312 6211612672 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:55:54,803 basehttp 93312 6211612672 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:55:54,808 basehttp 93312 6262091776 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:55:54,809 basehttp 93312 6194786304 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:55:54,809 basehttp 93312 6278918144 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:56:24,659 log 93312 6194786304 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:56:24,659 basehttp 93312 6194786304 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:56:24,669 basehttp 93312 6211612672 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:56:24,681 log 93312 6262091776 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:56:24,683 log 93312 6278918144 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:56:24,686 basehttp 93312 6262091776 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:56:24,687 basehttp 93312 6278918144 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:56:24,703 log 93312 6194786304 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:56:24,703 basehttp 93312 6194786304 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:56:24,709 basehttp 93312 6228439040 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:56:24,716 log 93312 6211612672 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:56:24,716 basehttp 93312 6211612672 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:56:24,718 basehttp 93312 6245265408 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:56:24,741 basehttp 93312 6194786304 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:56:24,755 log 93312 6262091776 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:56:24,755 basehttp 93312 6262091776 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:56:24,763 log 93312 6278918144 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:56:24,764 basehttp 93312 6278918144 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:56:24,771 log 93312 6245265408 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:56:24,772 basehttp 93312 6245265408 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:56:24,776 basehttp 93312 6211612672 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:56:24,776 basehttp 93312 6228439040 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:56:27,477 autoreload 93312 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 08:56:27,884 autoreload 97240 8747049152 Watching for file changes with StatReloader +WARNING 2025-09-08 08:56:29,212 log 97240 6341865472 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:56:29,212 basehttp 97240 6341865472 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:56:30,035 log 97240 6341865472 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:56:30,036 basehttp 97240 6341865472 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 08:56:30,851 basehttp 97240 6341865472 "GET /en/appointments/queue/ HTTP/1.1" 200 46828 +WARNING 2025-09-08 08:56:30,950 log 97240 6358691840 Not Found: /en/appointments/queue/2/status/ +INFO 2025-09-08 08:56:30,953 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:56:30,954 basehttp 97240 6358691840 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:56:30,967 log 97240 6425997312 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:56:30,969 basehttp 97240 6425997312 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:56:30,973 log 97240 6341865472 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:56:30,978 basehttp 97240 6341865472 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:56:31,016 log 97240 6358691840 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:56:31,018 basehttp 97240 6358691840 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:56:31,022 log 97240 6425997312 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:56:31,023 basehttp 97240 6425997312 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:56:31,037 log 97240 6341865472 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:56:31,039 basehttp 97240 6341865472 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:56:31,043 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:56:31,046 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +ERROR 2025-09-08 08:56:31,195 log 97240 6358691840 Internal Server Error: /en/appointments/queue/7/status/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1371, in queue_status + return render(request, 'appointments/partials/queue_status.html', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 198, in render + values = list(values) + ^^^^^^^^^^^^ +TypeError: 'WaitingQueue' object is not iterable +ERROR 2025-09-08 08:56:31,207 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 500 128633 +ERROR 2025-09-08 08:56:31,234 log 97240 6392344576 Internal Server Error: /en/appointments/queue/12/status/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1371, in queue_status + return render(request, 'appointments/partials/queue_status.html', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 198, in render + values = list(values) + ^^^^^^^^^^^^ +TypeError: 'WaitingQueue' object is not iterable +WARNING 2025-09-08 08:56:31,237 log 97240 6358691840 Not Found: /en/appointments/queue/14/status/ +ERROR 2025-09-08 08:56:31,241 basehttp 97240 6392344576 "GET /en/appointments/queue/12/status/ HTTP/1.1" 500 129108 +WARNING 2025-09-08 08:56:31,242 basehttp 97240 6358691840 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:56:31,257 log 97240 6392344576 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:56:31,259 basehttp 97240 6392344576 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 08:56:31,284 log 97240 6375518208 Internal Server Error: /en/appointments/queue/8/status/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1371, in queue_status + return render(request, 'appointments/partials/queue_status.html', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 198, in render + values = list(values) + ^^^^^^^^^^^^ +TypeError: 'WaitingQueue' object is not iterable +ERROR 2025-09-08 08:56:31,290 log 97240 6425997312 Internal Server Error: /en/appointments/queue/10/status/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1371, in queue_status + return render(request, 'appointments/partials/queue_status.html', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 198, in render + values = list(values) + ^^^^^^^^^^^^ +TypeError: 'WaitingQueue' object is not iterable +ERROR 2025-09-08 08:56:31,297 log 97240 6409170944 Internal Server Error: /en/appointments/queue/11/status/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1371, in queue_status + return render(request, 'appointments/partials/queue_status.html', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 198, in render + values = list(values) + ^^^^^^^^^^^^ +TypeError: 'WaitingQueue' object is not iterable +ERROR 2025-09-08 08:56:31,298 basehttp 97240 6375518208 "GET /en/appointments/queue/8/status/ HTTP/1.1" 500 130135 +ERROR 2025-09-08 08:56:31,300 basehttp 97240 6425997312 "GET /en/appointments/queue/10/status/ HTTP/1.1" 500 129182 +ERROR 2025-09-08 08:56:31,305 log 97240 6341865472 Internal Server Error: /en/appointments/queue/9/status/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1371, in queue_status + return render(request, 'appointments/partials/queue_status.html', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 198, in render + values = list(values) + ^^^^^^^^^^^^ +TypeError: 'WaitingQueue' object is not iterable +ERROR 2025-09-08 08:56:31,306 basehttp 97240 6409170944 "GET /en/appointments/queue/11/status/ HTTP/1.1" 500 130366 +ERROR 2025-09-08 08:56:31,306 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 500 129897 +WARNING 2025-09-08 08:57:00,978 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:57:00,980 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:00,985 log 97240 6358691840 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:57:00,987 log 97240 6392344576 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:57:00,988 basehttp 97240 6358691840 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:57:00,989 basehttp 97240 6392344576 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:57:00,999 basehttp 97240 6409170944 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:57:01,001 basehttp 97240 6375518208 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:57:01,005 log 97240 6341865472 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:57:01,007 basehttp 97240 6341865472 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:57:01,024 basehttp 97240 6425997312 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:57:01,045 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:57:01,047 log 97240 6358691840 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:57:01,048 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:01,048 basehttp 97240 6358691840 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:01,074 log 97240 6409170944 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:57:01,076 basehttp 97240 6409170944 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:01,085 log 97240 6392344576 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:57:01,088 basehttp 97240 6392344576 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:57:01,088 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:57:01,091 basehttp 97240 6375518208 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:57:01,092 basehttp 97240 6425997312 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:57:08,187 basehttp 97240 6425997312 "GET /en/appointments/queue/ HTTP/1.1" 200 46828 +INFO 2025-09-08 08:57:08,269 basehttp 97240 6409170944 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:57:08,313 basehttp 97240 6425997312 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:57:08,318 log 97240 6375518208 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:57:08,320 log 97240 6358691840 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:57:08,321 basehttp 97240 6375518208 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:08,322 basehttp 97240 6358691840 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:08,326 log 97240 6409170944 Not Found: /en/appointments/queue/13/status/ +INFO 2025-09-08 08:57:08,326 basehttp 97240 6341865472 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:57:08,328 basehttp 97240 6409170944 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:57:08,331 basehttp 97240 6392344576 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:57:08,333 log 97240 6425997312 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:57:08,333 basehttp 97240 6425997312 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:08,348 log 97240 6375518208 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:57:08,348 basehttp 97240 6375518208 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:08,375 log 97240 6358691840 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:57:08,376 basehttp 97240 6358691840 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:08,387 log 97240 6341865472 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:57:08,389 basehttp 97240 6341865472 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:08,394 log 97240 6358691840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 08:57:08,394 basehttp 97240 6358691840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:57:08,398 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:57:08,400 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:57:08,405 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:57:08,406 basehttp 97240 6425997312 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:57:08,406 basehttp 97240 6392344576 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 08:57:38,303 log 97240 6425997312 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:57:38,303 basehttp 97240 6425997312 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:38,328 log 97240 6341865472 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:57:38,329 basehttp 97240 6341865472 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:57:38,345 log 97240 6358691840 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:57:38,345 basehttp 97240 6358691840 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:38,355 log 97240 6425997312 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:57:38,357 basehttp 97240 6425997312 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:57:38,366 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:57:38,366 basehttp 97240 6375518208 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:57:38,368 basehttp 97240 6409170944 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:57:38,388 log 97240 6358691840 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:57:38,388 basehttp 97240 6358691840 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:38,397 log 97240 6341865472 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:57:38,398 basehttp 97240 6341865472 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:38,415 log 97240 6425997312 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:57:38,417 basehttp 97240 6425997312 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:57:38,428 log 97240 6358691840 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:57:38,431 basehttp 97240 6358691840 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:57:38,433 basehttp 97240 6392344576 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:57:38,435 basehttp 97240 6409170944 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:57:38,435 basehttp 97240 6375518208 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:58:08,289 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:58:08,314 log 97240 6341865472 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:58:08,318 log 97240 6409170944 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:58:08,318 basehttp 97240 6341865472 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:08,319 basehttp 97240 6409170944 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:08,323 log 97240 6375518208 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:58:08,324 basehttp 97240 6375518208 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:58:08,331 basehttp 97240 6425997312 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:58:08,331 basehttp 97240 6358691840 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:58:08,333 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:58:08,365 log 97240 6425997312 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:58:08,365 basehttp 97240 6425997312 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:08,376 log 97240 6375518208 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:58:08,377 basehttp 97240 6375518208 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:08,381 log 97240 6409170944 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:58:08,382 basehttp 97240 6409170944 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:08,384 log 97240 6341865472 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:58:08,385 basehttp 97240 6341865472 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:08,412 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +INFO 2025-09-08 08:58:08,414 basehttp 97240 6358691840 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:58:08,414 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:58:08,416 basehttp 97240 6392344576 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:58:08,417 basehttp 97240 6425997312 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:58:17,080 basehttp 97240 6425997312 "GET /en/appointments/queue/ HTTP/1.1" 200 46828 +INFO 2025-09-08 08:58:17,217 basehttp 97240 6425997312 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:58:17,237 log 97240 6409170944 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:58:17,239 log 97240 6392344576 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:58:17,240 basehttp 97240 6409170944 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:17,241 basehttp 97240 6392344576 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:17,246 log 97240 6425997312 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:58:17,249 basehttp 97240 6425997312 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:58:17,252 basehttp 97240 6341865472 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 08:58:17,252 basehttp 97240 6358691840 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:58:17,254 basehttp 97240 6375518208 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:58:17,286 log 97240 6409170944 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:58:17,287 basehttp 97240 6409170944 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:17,291 log 97240 6392344576 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:58:17,292 basehttp 97240 6392344576 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:17,302 log 97240 6425997312 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:58:17,302 basehttp 97240 6425997312 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:17,312 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:58:17,313 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:17,326 log 97240 6392344576 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:58:17,327 log 97240 6425997312 Not Found: /.well-known/appspecific/com.chrome.devtools.json +INFO 2025-09-08 08:58:17,327 basehttp 97240 6341865472 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:58:17,327 basehttp 97240 6425997312 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 08:58:17,327 basehttp 97240 6392344576 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:58:17,329 basehttp 97240 6375518208 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:58:17,333 basehttp 97240 6409170944 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 08:58:47,227 log 97240 6409170944 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:58:47,227 basehttp 97240 6409170944 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:47,248 log 97240 6358691840 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:58:47,251 log 97240 6341865472 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:58:47,252 basehttp 97240 6358691840 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:58:47,268 basehttp 97240 6375518208 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:58:47,270 basehttp 97240 6341865472 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:47,277 log 97240 6409170944 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:58:47,278 basehttp 97240 6409170944 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:58:47,284 basehttp 97240 6425997312 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:58:47,288 log 97240 6358691840 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:58:47,289 basehttp 97240 6358691840 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:58:47,290 basehttp 97240 6392344576 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 08:58:47,327 log 97240 6375518208 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:58:47,327 basehttp 97240 6375518208 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:58:47,333 log 97240 6341865472 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:58:47,333 basehttp 97240 6341865472 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:58:47,350 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 08:58:47,352 log 97240 6392344576 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:58:47,354 basehttp 97240 6392344576 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:58:47,355 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 08:58:47,355 basehttp 97240 6425997312 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:59:17,200 basehttp 97240 6425997312 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 08:59:17,225 log 97240 6358691840 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:59:17,226 basehttp 97240 6358691840 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:17,237 log 97240 6425997312 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:59:17,240 log 97240 6375518208 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:59:17,241 basehttp 97240 6425997312 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:59:17,242 basehttp 97240 6375518208 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:17,250 log 97240 6358691840 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:59:17,250 basehttp 97240 6358691840 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:59:17,253 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 08:59:17,255 basehttp 97240 6409170944 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:59:17,257 basehttp 97240 6341865472 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:59:17,259 log 97240 6425997312 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:59:17,260 basehttp 97240 6425997312 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:17,264 log 97240 6375518208 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:59:17,265 basehttp 97240 6375518208 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:17,268 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:59:17,269 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:17,296 log 97240 6425997312 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:59:17,299 basehttp 97240 6425997312 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:59:17,302 basehttp 97240 6392344576 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:59:17,303 basehttp 97240 6409170944 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:59:17,303 basehttp 97240 6341865472 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 08:59:47,211 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 08:59:47,211 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:47,243 log 97240 6358691840 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 08:59:47,245 basehttp 97240 6358691840 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:47,248 log 97240 6375518208 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 08:59:47,249 basehttp 97240 6375518208 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 08:59:47,253 log 97240 6341865472 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 08:59:47,257 basehttp 97240 6341865472 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:59:47,254 basehttp 97240 6409170944 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 08:59:47,298 log 97240 6375518208 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 08:59:47,298 basehttp 97240 6375518208 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 08:59:47,313 basehttp 97240 6392344576 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 08:59:47,324 basehttp 97240 6425997312 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 08:59:47,331 log 97240 6358691840 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 08:59:47,335 basehttp 97240 6358691840 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:47,345 log 97240 6409170944 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 08:59:47,347 basehttp 97240 6409170944 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 08:59:47,350 log 97240 6425997312 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 08:59:47,353 basehttp 97240 6425997312 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 08:59:47,354 basehttp 97240 6341865472 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 08:59:47,359 basehttp 97240 6375518208 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 08:59:47,361 basehttp 97240 6392344576 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:00:06,220 basehttp 97240 6392344576 "GET /en/appointments/queue/ HTTP/1.1" 200 47300 +WARNING 2025-09-08 09:00:06,325 log 97240 6375518208 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:00:06,325 basehttp 97240 6375518208 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:06,329 log 97240 6358691840 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:00:06,332 basehttp 97240 6358691840 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:06,357 log 97240 6375518208 Not Found: /en/appointments/queue/13/status/ +INFO 2025-09-08 09:00:06,357 basehttp 97240 6392344576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:00:06,358 basehttp 97240 6425997312 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:00:06,360 basehttp 97240 6375518208 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:00:06,362 basehttp 97240 6409170944 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:00:06,364 log 97240 6358691840 Not Found: /en/appointments/queue/6/status/ +INFO 2025-09-08 09:00:06,366 basehttp 97240 6341865472 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:00:06,366 basehttp 97240 6358691840 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:06,419 log 97240 6392344576 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:00:06,421 basehttp 97240 6392344576 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:06,428 log 97240 6425997312 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:00:06,430 log 97240 6375518208 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:00:06,431 basehttp 97240 6425997312 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:06,432 basehttp 97240 6375518208 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:06,445 log 97240 6425997312 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:00:06,447 basehttp 97240 6425997312 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:00:06,447 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:00:06,449 log 97240 6392344576 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:00:06,450 basehttp 97240 6392344576 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:00:06,450 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:00:06,452 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:00:36,339 log 97240 6425997312 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:00:36,342 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:00:36,345 log 97240 6375518208 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:00:36,347 basehttp 97240 6425997312 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:36,347 basehttp 97240 6375518208 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:00:36,349 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:00:36,355 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:00:36,358 basehttp 97240 6409170944 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:00:36,362 basehttp 97240 6358691840 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:00:36,401 log 97240 6425997312 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:00:36,401 basehttp 97240 6425997312 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:36,406 log 97240 6375518208 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:00:36,406 basehttp 97240 6375518208 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:36,425 log 97240 6341865472 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:00:36,426 basehttp 97240 6341865472 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:00:36,438 log 97240 6392344576 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:00:36,439 basehttp 97240 6392344576 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:00:36,444 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 09:00:36,447 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +INFO 2025-09-08 09:00:36,448 basehttp 97240 6358691840 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:00:36,448 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:00:36,454 basehttp 97240 6425997312 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:01:06,307 basehttp 97240 6425997312 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:01:06,384 log 97240 6341865472 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:01:06,387 log 97240 6375518208 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:01:06,387 basehttp 97240 6341865472 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:06,390 log 97240 6425997312 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:01:06,390 basehttp 97240 6375518208 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:06,391 basehttp 97240 6425997312 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:01:06,401 basehttp 97240 6358691840 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:01:06,403 basehttp 97240 6409170944 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:01:06,403 basehttp 97240 6392344576 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:01:06,438 log 97240 6341865472 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:01:06,438 basehttp 97240 6341865472 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:06,468 log 97240 6375518208 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:01:06,469 basehttp 97240 6375518208 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:06,474 log 97240 6425997312 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:01:06,476 basehttp 97240 6425997312 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:06,491 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:01:06,493 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:06,497 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:01:06,499 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:01:06,500 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:01:06,502 basehttp 97240 6341865472 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:01:06,502 basehttp 97240 6392344576 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:01:35,337 basehttp 97240 6341865472 "GET /en/appointments/queue/ HTTP/1.1" 200 47577 +INFO 2025-09-08 09:01:35,452 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:01:35,455 log 97240 6392344576 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:01:35,458 basehttp 97240 6392344576 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:35,465 log 97240 6425997312 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:01:35,467 basehttp 97240 6425997312 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:35,479 log 97240 6341865472 Not Found: /en/appointments/queue/13/status/ +INFO 2025-09-08 09:01:35,480 basehttp 97240 6409170944 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:01:35,480 basehttp 97240 6375518208 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:01:35,482 basehttp 97240 6341865472 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:01:35,484 basehttp 97240 6358691840 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:01:35,487 log 97240 6392344576 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:01:35,487 basehttp 97240 6392344576 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:35,492 log 97240 6425997312 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:01:35,492 basehttp 97240 6425997312 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:35,547 log 97240 6375518208 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:01:35,550 basehttp 97240 6375518208 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:01:35,553 log 97240 6409170944 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:01:35,554 basehttp 97240 6409170944 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:01:35,560 basehttp 97240 6341865472 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 09:01:35,562 log 97240 6425997312 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:01:35,563 basehttp 97240 6425997312 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:01:35,566 basehttp 97240 6358691840 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:01:35,567 basehttp 97240 6392344576 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:01:35,573 log 97240 6409170944 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:01:35,573 basehttp 97240 6409170944 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 09:02:05,423 log 97240 6409170944 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:02:05,423 basehttp 97240 6409170944 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:02:05,442 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:02:05,473 log 97240 6375518208 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:02:05,479 basehttp 97240 6375518208 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:02:05,485 log 97240 6409170944 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:02:05,488 log 97240 6341865472 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:02:05,489 basehttp 97240 6409170944 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:05,489 basehttp 97240 6341865472 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:05,492 log 97240 6392344576 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:02:05,494 basehttp 97240 6392344576 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:02:05,497 basehttp 97240 6358691840 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:02:05,499 basehttp 97240 6425997312 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:02:05,501 log 97240 6375518208 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:02:05,501 basehttp 97240 6375518208 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:05,541 log 97240 6409170944 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:02:05,542 basehttp 97240 6409170944 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:05,553 log 97240 6425997312 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:02:05,554 basehttp 97240 6425997312 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:02:05,559 basehttp 97240 6341865472 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:02:05,560 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:02:05,561 basehttp 97240 6392344576 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:02:27,595 basehttp 97240 6392344576 "GET /en/appointments/queue/ HTTP/1.1" 200 48389 +INFO 2025-09-08 09:02:27,727 basehttp 97240 6392344576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:02:27,742 log 97240 6358691840 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:02:27,744 basehttp 97240 6358691840 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:27,748 log 97240 6375518208 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:02:27,750 basehttp 97240 6375518208 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:27,754 log 97240 6392344576 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:02:27,756 basehttp 97240 6392344576 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:02:27,759 basehttp 97240 6425997312 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:02:27,769 basehttp 97240 6409170944 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:02:27,778 basehttp 97240 6341865472 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:02:27,812 log 97240 6358691840 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:02:27,812 basehttp 97240 6358691840 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:27,827 log 97240 6375518208 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:02:27,828 basehttp 97240 6375518208 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:27,842 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:02:27,843 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:27,850 log 97240 6425997312 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:02:27,852 basehttp 97240 6425997312 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:27,862 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:02:27,862 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:02:27,865 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 09:02:27,866 log 97240 6392344576 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:02:27,867 basehttp 97240 6392344576 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:02:27,868 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:02:27,871 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:02:28,855 basehttp 97240 6358691840 "GET /en/appointments/queue/ HTTP/1.1" 200 48389 +WARNING 2025-09-08 09:02:28,963 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:02:28,965 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:02:28,972 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:02:28,975 log 97240 6425997312 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:02:28,979 basehttp 97240 6425997312 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:02:28,985 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:02:28,987 log 97240 6341865472 Not Found: /en/appointments/queue/13/status/ +INFO 2025-09-08 09:02:28,988 basehttp 97240 6409170944 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:02:28,988 basehttp 97240 6341865472 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:02:28,991 basehttp 97240 6375518208 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:02:28,996 log 97240 6358691840 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:02:28,996 basehttp 97240 6358691840 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:29,000 log 97240 6425997312 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:02:29,000 basehttp 97240 6425997312 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:29,006 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:02:29,006 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:29,043 log 97240 6409170944 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:02:29,044 basehttp 97240 6409170944 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:29,053 log 97240 6425997312 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:02:29,055 basehttp 97240 6425997312 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:02:29,058 basehttp 97240 6341865472 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:02:29,060 basehttp 97240 6375518208 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:02:29,061 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:02:29,196 log 97240 6358691840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:02:29,196 basehttp 97240 6358691840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 09:02:58,973 log 97240 6358691840 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:02:58,974 basehttp 97240 6358691840 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:58,983 log 97240 6409170944 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:02:58,984 basehttp 97240 6409170944 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:58,991 log 97240 6392344576 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:02:58,992 basehttp 97240 6392344576 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:02:59,000 log 97240 6358691840 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:02:59,014 basehttp 97240 6358691840 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:02:59,022 basehttp 97240 6341865472 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:02:59,028 log 97240 6409170944 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:02:59,029 basehttp 97240 6409170944 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:02:59,033 basehttp 97240 6425997312 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:02:59,033 basehttp 97240 6375518208 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:02:59,037 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:02:59,037 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:59,076 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:02:59,076 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:02:59,086 log 97240 6425997312 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:02:59,088 basehttp 97240 6425997312 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:02:59,091 basehttp 97240 6341865472 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:02:59,094 basehttp 97240 6409170944 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:02:59,096 basehttp 97240 6375518208 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:03:28,964 log 97240 6392344576 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:03:28,972 basehttp 97240 6392344576 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:03:28,969 basehttp 97240 6425997312 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:03:28,993 basehttp 97240 6341865472 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:03:29,032 log 97240 6392344576 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:03:29,034 basehttp 97240 6392344576 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:03:29,037 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:03:29,050 log 97240 6409170944 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:03:29,050 basehttp 97240 6409170944 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:29,058 log 97240 6341865472 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:03:29,058 basehttp 97240 6341865472 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:29,067 log 97240 6425997312 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:03:29,071 log 97240 6375518208 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:03:29,074 basehttp 97240 6425997312 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:03:29,074 basehttp 97240 6375518208 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:29,080 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:03:29,084 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:03:29,126 basehttp 97240 6358691840 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:03:29,140 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:03:29,142 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:03:29,170 basehttp 97240 6425997312 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:03:29,176 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:03:29,177 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:03:43,687 basehttp 97240 6375518208 "GET /en/appointments/queue/ HTTP/1.1" 200 48403 +WARNING 2025-09-08 09:03:43,813 log 97240 6392344576 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:03:43,813 basehttp 97240 6392344576 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:43,825 log 97240 6425997312 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:03:43,827 basehttp 97240 6425997312 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:03:43,831 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:03:43,834 log 97240 6392344576 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:03:43,836 basehttp 97240 6392344576 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:03:43,841 basehttp 97240 6409170944 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:03:43,842 basehttp 97240 6358691840 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:03:43,844 basehttp 97240 6341865472 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:03:43,873 log 97240 6425997312 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:03:43,873 basehttp 97240 6425997312 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:43,892 log 97240 6375518208 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:03:43,893 basehttp 97240 6375518208 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:43,905 log 97240 6409170944 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:03:43,906 basehttp 97240 6409170944 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:43,917 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:03:43,919 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:43,921 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:03:43,922 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:03:43,927 log 97240 6409170944 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:03:43,929 basehttp 97240 6409170944 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:03:43,931 basehttp 97240 6358691840 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:03:43,933 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:03:43,934 basehttp 97240 6425997312 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:03:44,932 basehttp 97240 6425997312 "GET /en/appointments/queue/ HTTP/1.1" 200 48403 +INFO 2025-09-08 09:03:45,025 basehttp 97240 6425997312 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:03:45,044 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:03:45,046 log 97240 6392344576 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:03:45,047 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:45,051 basehttp 97240 6392344576 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:45,060 log 97240 6425997312 Not Found: /en/appointments/queue/13/status/ +INFO 2025-09-08 09:03:45,061 basehttp 97240 6358691840 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:03:45,063 basehttp 97240 6425997312 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:03:45,064 basehttp 97240 6409170944 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:03:45,067 basehttp 97240 6375518208 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:03:45,070 log 97240 6341865472 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:03:45,073 log 97240 6392344576 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:03:45,074 basehttp 97240 6341865472 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:45,074 basehttp 97240 6392344576 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:45,080 log 97240 6358691840 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:03:45,080 basehttp 97240 6358691840 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:45,118 log 97240 6425997312 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:03:45,120 basehttp 97240 6425997312 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:03:45,128 log 97240 6392344576 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:03:45,130 basehttp 97240 6392344576 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:03:45,133 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:03:45,137 basehttp 97240 6341865472 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:03:45,138 basehttp 97240 6375518208 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:03:45,189 log 97240 6375518208 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:03:45,189 basehttp 97240 6375518208 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:04:24,479 basehttp 97240 6375518208 "GET /en/appointments/queue/ HTTP/1.1" 200 48403 +WARNING 2025-09-08 09:04:24,600 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:04:24,601 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:04:24,610 log 97240 6358691840 Not Found: /en/appointments/queue/1/status/ +INFO 2025-09-08 09:04:24,610 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:04:24,610 basehttp 97240 6358691840 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:04:24,612 basehttp 97240 6409170944 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:04:24,614 basehttp 97240 6425997312 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:04:24,618 basehttp 97240 6392344576 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:04:24,637 log 97240 6341865472 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:04:24,637 basehttp 97240 6341865472 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:04:24,668 log 97240 6358691840 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:04:24,669 basehttp 97240 6358691840 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:04:24,671 log 97240 6375518208 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:04:24,672 basehttp 97240 6375518208 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:04:24,680 log 97240 6409170944 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:04:24,685 log 97240 6425997312 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:04:24,685 basehttp 97240 6409170944 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:04:24,686 basehttp 97240 6425997312 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:04:24,697 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:04:24,698 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:04:24,700 log 97240 6409170944 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:04:24,700 basehttp 97240 6409170944 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:04:24,705 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:04:24,706 basehttp 97240 6392344576 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:04:24,707 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:05:06,789 basehttp 97240 6358691840 "GET /en/appointments/queue/ HTTP/1.1" 200 50265 +WARNING 2025-09-08 09:05:06,864 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:05:06,864 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:05:06,906 log 97240 6425997312 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:05:06,908 basehttp 97240 6425997312 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:05:06,913 basehttp 97240 6425997312 - Broken pipe from ('127.0.0.1', 56101) +INFO 2025-09-08 09:05:06,918 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:05:06,923 log 97240 6341865472 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:05:06,924 basehttp 97240 6341865472 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:05:06,933 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:05:06,934 basehttp 97240 6375518208 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:05:06,936 basehttp 97240 6409170944 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:05:06,939 log 97240 13438578688 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:05:06,939 basehttp 97240 13438578688 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:05:06,964 log 97240 6341865472 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:05:06,965 basehttp 97240 6341865472 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:05:06,969 log 97240 6358691840 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:05:06,969 basehttp 97240 6358691840 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:05:06,994 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:05:06,995 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:05:07,000 log 97240 6375518208 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:05:07,001 basehttp 97240 6375518208 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:05:07,013 log 97240 6358691840 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:05:07,014 basehttp 97240 6358691840 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:05:07,017 basehttp 97240 13438578688 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:05:07,018 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:05:07,019 basehttp 97240 6341865472 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:06:06,903 log 97240 6409170944 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:06:06,904 basehttp 97240 6409170944 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:06,910 log 97240 6392344576 Not Found: /en/appointments/queue/1/status/ +INFO 2025-09-08 09:06:06,911 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:06:06,911 basehttp 97240 6392344576 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:06:06,922 basehttp 97240 13438578688 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:06:06,924 basehttp 97240 6358691840 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:06:06,926 log 97240 6409170944 Not Found: /en/appointments/queue/13/status/ +INFO 2025-09-08 09:06:06,926 basehttp 97240 6375518208 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:06:06,927 basehttp 97240 6409170944 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:06:06,955 log 97240 6392344576 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:06:06,960 basehttp 97240 6392344576 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:06,965 log 97240 6341865472 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:06:06,966 basehttp 97240 6341865472 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:06:06,979 basehttp 97240 6409170944 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:06:06,983 log 97240 13438578688 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:06:06,984 basehttp 97240 13438578688 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:06:06,985 basehttp 97240 6375518208 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 09:06:06,988 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:06:06,988 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:06,997 log 97240 6341865472 Not Found: /en/appointments/queue/14/status/ +INFO 2025-09-08 09:06:06,997 basehttp 97240 6392344576 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:06:06,998 basehttp 97240 6341865472 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:06:08,750 basehttp 97240 6341865472 "GET /en/appointments/queue/ HTTP/1.1" 200 48403 +INFO 2025-09-08 09:06:08,900 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:06:08,904 log 97240 6409170944 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:06:08,906 basehttp 97240 6409170944 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:06:08,907 basehttp 97240 13438578688 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:06:08,911 log 97240 6392344576 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:06:08,914 basehttp 97240 6392344576 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:06:08,922 basehttp 97240 6358691840 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:06:08,924 basehttp 97240 6375518208 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:06:08,936 log 97240 6341865472 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:06:08,937 basehttp 97240 6341865472 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:06:08,951 log 97240 13438578688 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:06:08,952 basehttp 97240 13438578688 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:08,968 log 97240 6409170944 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:06:08,968 basehttp 97240 6409170944 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:08,975 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:06:08,975 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:08,992 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:06:08,992 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:09,006 log 97240 6392344576 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:06:09,007 basehttp 97240 6392344576 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:06:09,011 basehttp 97240 6375518208 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:06:09,013 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:06:09,015 log 97240 6409170944 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:06:09,016 basehttp 97240 6409170944 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:06:09,018 basehttp 97240 13438578688 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:06:10,111 basehttp 97240 13438578688 "GET /en/appointments/queue/ HTTP/1.1" 200 48403 +WARNING 2025-09-08 09:06:10,196 log 97240 6409170944 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:06:10,196 basehttp 97240 6409170944 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:06:10,209 basehttp 97240 13438578688 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:06:10,215 log 97240 6358691840 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:06:10,215 basehttp 97240 6358691840 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:10,225 log 97240 6409170944 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:06:10,227 basehttp 97240 6409170944 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:06:10,235 log 97240 13438578688 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:06:10,235 basehttp 97240 13438578688 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:10,238 log 97240 6358691840 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:06:10,240 basehttp 97240 6358691840 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:06:10,240 basehttp 97240 6341865472 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:06:10,243 basehttp 97240 6375518208 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:06:10,244 basehttp 97240 6392344576 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:06:10,246 log 97240 6409170944 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:06:10,247 basehttp 97240 6409170944 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:10,253 log 97240 13438578688 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:06:10,253 basehttp 97240 13438578688 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:10,283 log 97240 6392344576 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:06:10,286 basehttp 97240 6392344576 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:06:10,292 basehttp 97240 6358691840 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:06:10,293 basehttp 97240 6375518208 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:06:10,294 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:06:10,760 log 97240 6341865472 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:06:10,760 basehttp 97240 6341865472 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:06:11,633 basehttp 97240 6341865472 "GET /en/appointments/queue/ HTTP/1.1" 200 48403 +WARNING 2025-09-08 09:06:11,668 log 97240 6341865472 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:06:11,668 basehttp 97240 6341865472 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:06:11,724 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:06:11,735 log 97240 6375518208 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:06:11,737 basehttp 97240 6375518208 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:11,742 log 97240 6409170944 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:06:11,744 basehttp 97240 6409170944 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:11,753 log 97240 6341865472 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:06:11,756 basehttp 97240 6341865472 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:06:11,764 log 97240 6375518208 Not Found: /en/appointments/queue/6/status/ +INFO 2025-09-08 09:06:11,765 basehttp 97240 6392344576 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:06:11,765 basehttp 97240 6375518208 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:11,768 log 97240 6409170944 Not Found: /en/appointments/queue/3/status/ +INFO 2025-09-08 09:06:11,768 basehttp 97240 13438578688 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:06:11,769 basehttp 97240 6409170944 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:06:11,770 basehttp 97240 6358691840 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:06:11,775 log 97240 6341865472 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:06:11,775 basehttp 97240 6341865472 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:11,824 log 97240 6392344576 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:06:11,827 basehttp 97240 6392344576 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:06:11,829 log 97240 6358691840 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:06:11,831 basehttp 97240 6358691840 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:06:11,838 basehttp 97240 6409170944 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:06:11,838 basehttp 97240 6375518208 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:06:11,839 basehttp 97240 13438578688 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:07:11,762 log 97240 6375518208 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:07:11,764 log 97240 6341865472 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:07:11,764 basehttp 97240 6375518208 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:07:11,766 basehttp 97240 6341865472 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:07:11,766 basehttp 97240 13438578688 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:07:11,770 basehttp 97240 6392344576 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:07:11,775 basehttp 97240 6358691840 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:07:11,776 basehttp 97240 6409170944 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:07:11,818 log 97240 6375518208 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:07:11,819 basehttp 97240 6375518208 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:07:11,826 log 97240 13438578688 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:07:11,830 log 97240 6341865472 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:07:11,831 basehttp 97240 13438578688 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:07:11,831 basehttp 97240 6341865472 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:07:11,835 basehttp 97240 6409170944 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 09:07:11,838 log 97240 6392344576 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:07:11,838 basehttp 97240 6392344576 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:07:11,840 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:07:11,840 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:07:11,850 basehttp 97240 6375518208 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:07:11,859 log 97240 6341865472 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:07:11,860 basehttp 97240 6341865472 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:07:11,864 basehttp 97240 13438578688 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:08:11,762 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:08:11,764 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:08:11,766 basehttp 97240 13438578688 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:08:11,770 log 97240 6409170944 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:08:11,772 basehttp 97240 6409170944 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:08:11,779 basehttp 97240 6375518208 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:08:11,781 basehttp 97240 6358691840 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:08:11,781 basehttp 97240 6392344576 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:08:11,793 log 97240 6341865472 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:08:11,794 basehttp 97240 6341865472 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:08:11,827 log 97240 13438578688 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:08:11,828 basehttp 97240 13438578688 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:08:11,838 basehttp 97240 6341865472 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:08:11,846 log 97240 6409170944 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:08:11,846 basehttp 97240 6409170944 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:08:11,858 log 97240 6375518208 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:08:11,859 basehttp 97240 6375518208 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:08:11,862 log 97240 6358691840 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:08:11,862 basehttp 97240 6358691840 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:08:11,868 basehttp 97240 6392344576 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +WARNING 2025-09-08 09:08:11,870 log 97240 6341865472 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:08:11,871 basehttp 97240 6341865472 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:08:11,874 basehttp 97240 13438578688 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:09:11,735 basehttp 97240 13438578688 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:09:11,753 log 97240 6341865472 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:09:11,754 basehttp 97240 6341865472 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:09:11,764 log 97240 6409170944 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:09:11,766 basehttp 97240 6409170944 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:09:11,768 log 97240 13438578688 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:09:11,770 basehttp 97240 13438578688 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:09:11,779 log 97240 6341865472 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:09:11,780 basehttp 97240 6341865472 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:09:11,802 basehttp 97240 6375518208 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:09:11,803 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:09:11,811 log 97240 13438578688 Not Found: /en/appointments/queue/5/status/ +INFO 2025-09-08 09:09:11,811 basehttp 97240 6358691840 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:09:11,812 basehttp 97240 13438578688 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:09:11,815 log 97240 6409170944 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:09:11,816 basehttp 97240 6409170944 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:09:11,859 log 97240 6341865472 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:09:11,860 basehttp 97240 6341865472 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:09:11,871 log 97240 13438578688 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:09:11,874 basehttp 97240 13438578688 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:09:11,878 basehttp 97240 6375518208 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:09:11,879 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:09:11,881 basehttp 97240 6392344576 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:10:11,759 log 97240 6358691840 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:10:11,761 log 97240 6409170944 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:10:11,762 basehttp 97240 6358691840 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:10:11,763 basehttp 97240 6409170944 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:10:11,766 basehttp 97240 6392344576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:10:11,773 basehttp 97240 13438578688 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:10:11,775 basehttp 97240 6341865472 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +INFO 2025-09-08 09:10:11,777 basehttp 97240 6375518208 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +WARNING 2025-09-08 09:10:11,816 log 97240 6358691840 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:10:11,816 basehttp 97240 6358691840 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:10:11,841 log 97240 6409170944 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:10:11,841 basehttp 97240 6409170944 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:10:11,848 log 97240 6392344576 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:10:11,848 basehttp 97240 6392344576 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:10:11,856 log 97240 13438578688 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:10:11,857 basehttp 97240 13438578688 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:10:11,860 log 97240 6341865472 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:10:11,861 basehttp 97240 6341865472 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:10:11,873 basehttp 97240 6375518208 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:10:11,876 basehttp 97240 6358691840 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +WARNING 2025-09-08 09:10:11,878 log 97240 6392344576 Not Found: /en/appointments/queue/14/status/ +INFO 2025-09-08 09:10:11,879 basehttp 97240 6409170944 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +WARNING 2025-09-08 09:10:11,879 basehttp 97240 6392344576 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:10:23,309 basehttp 97240 6392344576 "GET /en/admin/appointments/queueentry/ HTTP/1.1" 200 95319 +INFO 2025-09-08 09:10:23,325 basehttp 97240 6375518208 "GET /static/admin/css/nav_sidebar.css HTTP/1.1" 200 2810 +INFO 2025-09-08 09:10:23,325 basehttp 97240 6358691840 "GET /static/admin/js/theme.js HTTP/1.1" 200 1653 +INFO 2025-09-08 09:10:23,326 basehttp 97240 6409170944 "GET /static/admin/css/dark_mode.css HTTP/1.1" 200 2808 +INFO 2025-09-08 09:10:23,326 basehttp 97240 6392344576 "GET /static/admin/css/base.css HTTP/1.1" 200 22120 +INFO 2025-09-08 09:10:23,327 basehttp 97240 6341865472 "GET /static/admin/css/changelists.css HTTP/1.1" 200 6878 +INFO 2025-09-08 09:10:23,329 basehttp 97240 6409170944 "GET /static/admin/js/jquery.init.js HTTP/1.1" 200 347 +INFO 2025-09-08 09:10:23,329 basehttp 97240 6375518208 "GET /static/admin/css/responsive.css HTTP/1.1" 200 16565 +INFO 2025-09-08 09:10:23,329 basehttp 97240 6341865472 "GET /static/admin/js/core.js HTTP/1.1" 200 6208 +INFO 2025-09-08 09:10:23,329 basehttp 97240 6392344576 "GET /static/admin/js/admin/RelatedObjectLookups.js HTTP/1.1" 200 9777 +INFO 2025-09-08 09:10:23,331 basehttp 97240 6409170944 "GET /static/admin/js/actions.js HTTP/1.1" 200 8076 +INFO 2025-09-08 09:10:23,331 basehttp 97240 6375518208 "GET /static/admin/js/urlify.js HTTP/1.1" 200 7887 +INFO 2025-09-08 09:10:23,332 basehttp 97240 6341865472 "GET /static/admin/js/prepopulate.js HTTP/1.1" 200 1531 +INFO 2025-09-08 09:10:23,333 basehttp 97240 13438578688 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +INFO 2025-09-08 09:10:23,334 basehttp 97240 6409170944 "GET /static/admin/img/search.svg HTTP/1.1" 200 458 +INFO 2025-09-08 09:10:23,335 basehttp 97240 6358691840 "GET /static/admin/js/vendor/jquery/jquery.js HTTP/1.1" 200 285314 +INFO 2025-09-08 09:10:23,335 basehttp 97240 6392344576 "GET /static/admin/js/vendor/xregexp/xregexp.js HTTP/1.1" 200 325171 +INFO 2025-09-08 09:10:23,336 basehttp 97240 6358691840 "GET /static/admin/js/nav_sidebar.js HTTP/1.1" 200 3063 +INFO 2025-09-08 09:10:23,338 basehttp 97240 6358691840 "GET /static/admin/js/filters.js HTTP/1.1" 200 978 +INFO 2025-09-08 09:10:23,346 basehttp 97240 6358691840 "GET /static/admin/img/icon-addlink.svg HTTP/1.1" 200 331 +INFO 2025-09-08 09:10:23,347 basehttp 97240 6392344576 "GET /static/admin/img/tooltag-add.svg HTTP/1.1" 200 331 +INFO 2025-09-08 09:10:23,348 basehttp 97240 6358691840 "GET /static/admin/img/sorting-icons.svg HTTP/1.1" 200 1097 +INFO 2025-09-08 09:10:23,348 basehttp 97240 6409170944 "GET /static/admin/img/icon-viewlink.svg HTTP/1.1" 200 581 +INFO 2025-09-08 09:10:31,266 basehttp 97240 6409170944 "GET /en/admin/appointments/waitingqueue/ HTTP/1.1" 200 83737 +INFO 2025-09-08 09:10:31,276 basehttp 97240 6358691840 "GET /static/admin/img/icon-yes.svg HTTP/1.1" 200 436 +INFO 2025-09-08 09:10:31,281 basehttp 97240 6409170944 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +INFO 2025-09-08 09:10:42,477 basehttp 97240 6409170944 "GET /en/admin/appointments/waitingqueue/9/change/ HTTP/1.1" 200 146556 +INFO 2025-09-08 09:10:42,490 basehttp 97240 6409170944 "GET /static/admin/css/forms.css HTTP/1.1" 200 8525 +INFO 2025-09-08 09:10:42,490 basehttp 97240 13438578688 "GET /static/admin/js/SelectBox.js HTTP/1.1" 200 4530 +INFO 2025-09-08 09:10:42,490 basehttp 97240 6375518208 "GET /static/admin/js/prepopulate_init.js HTTP/1.1" 200 586 +INFO 2025-09-08 09:10:42,491 basehttp 97240 6341865472 "GET /static/admin/js/SelectFilter2.js HTTP/1.1" 200 15845 +INFO 2025-09-08 09:10:42,491 basehttp 97240 6392344576 "GET /static/admin/js/inlines.js HTTP/1.1" 200 15628 +INFO 2025-09-08 09:10:42,492 basehttp 97240 6375518208 "GET /static/admin/css/widgets.css HTTP/1.1" 200 11991 +INFO 2025-09-08 09:10:42,493 basehttp 97240 6375518208 "GET /static/admin/img/icon-changelink.svg HTTP/1.1" 200 380 +INFO 2025-09-08 09:10:42,495 basehttp 97240 6358691840 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +INFO 2025-09-08 09:10:42,495 basehttp 97240 6375518208 "GET /static/admin/img/icon-deletelink.svg HTTP/1.1" 200 392 +INFO 2025-09-08 09:10:42,496 basehttp 97240 6375518208 "GET /static/admin/img/icon-unknown.svg HTTP/1.1" 200 655 +INFO 2025-09-08 09:10:42,499 basehttp 97240 6375518208 "GET /static/admin/js/change_form.js HTTP/1.1" 200 606 +INFO 2025-09-08 09:10:42,525 basehttp 97240 6375518208 "GET /static/admin/img/selector-icons.svg HTTP/1.1" 200 3291 +INFO 2025-09-08 09:11:12,237 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:11:12,288 log 97240 6409170944 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:11:12,290 log 97240 6358691840 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:11:12,290 basehttp 97240 6409170944 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:11:12,290 basehttp 97240 6358691840 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:11:12,294 log 97240 6375518208 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:11:12,294 basehttp 97240 6375518208 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:11:12,305 basehttp 97240 6341865472 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +WARNING 2025-09-08 09:11:12,307 log 97240 6358691840 Not Found: /en/appointments/queue/6/status/ +INFO 2025-09-08 09:11:12,308 basehttp 97240 6392344576 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:11:12,308 basehttp 97240 13438578688 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:11:12,308 basehttp 97240 6358691840 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:11:12,314 log 97240 6375518208 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:11:12,316 log 97240 6409170944 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:11:12,316 basehttp 97240 6375518208 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:11:12,317 basehttp 97240 6409170944 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:11:12,322 log 97240 6341865472 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:11:12,322 basehttp 97240 6341865472 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:11:12,353 log 97240 6375518208 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:11:12,354 basehttp 97240 6375518208 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:11:12,357 basehttp 97240 6392344576 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:11:12,359 basehttp 97240 13438578688 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:11:12,360 basehttp 97240 6358691840 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:11:18,915 basehttp 97240 6358691840 "GET /en/admin/appointments/slotavailability/ HTTP/1.1" 200 170005 +INFO 2025-09-08 09:11:18,927 basehttp 97240 13438578688 "GET /static/admin/img/icon-no.svg HTTP/1.1" 200 560 +INFO 2025-09-08 09:11:18,931 basehttp 97240 6358691840 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +WARNING 2025-09-08 09:11:56,780 log 97240 6358691840 Not Found: /en/appointments/slots/available// +WARNING 2025-09-08 09:11:56,780 basehttp 97240 6358691840 "GET /en/appointments/slots/available// HTTP/1.1" 404 38910 +WARNING 2025-09-08 09:11:57,056 log 97240 6358691840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:11:57,057 basehttp 97240 6358691840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:12:32,985 basehttp 97240 6358691840 "GET /en/appointments/slots/available/ HTTP/1.1" 200 450 +WARNING 2025-09-08 09:12:33,005 log 97240 6358691840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:12:33,005 basehttp 97240 6358691840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 09:15:06,064 log 97240 6358691840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:15:06,065 basehttp 97240 6358691840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:15:18,471 basehttp 97240 6358691840 "GET /en/operating-theatre/ HTTP/1.1" 200 56527 +WARNING 2025-09-08 09:15:18,488 log 97240 6358691840 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 09:15:18,488 basehttp 97240 6358691840 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 09:15:18,541 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:15:18,543 basehttp 97240 13438578688 "GET /en/operating-theatre/htmx/stats/ HTTP/1.1" 200 4212 +INFO 2025-09-08 09:15:32,581 basehttp 97240 13438578688 "GET /en/operating-theatre/cases/ HTTP/1.1" 200 56114 +INFO 2025-09-08 09:15:32,621 basehttp 97240 13438578688 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:16:21,524 basehttp 97240 13438578688 "GET /en/operating-theatre/cases/30/ HTTP/1.1" 200 31719 +WARNING 2025-09-08 09:16:21,534 basehttp 97240 13438578688 "GET /static/plugins/%40fullcalendar/dist/main.min.css HTTP/1.1" 404 2044 +INFO 2025-09-08 09:16:21,557 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:16:38,366 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:17:38,360 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:18:38,370 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:19:38,367 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:20:38,372 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:21:38,374 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:22:38,370 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:23:38,378 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:24:38,380 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:25:38,375 basehttp 97240 6358691840 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:26:38,386 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:27:39,202 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:28:41,199 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:29:41,380 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:30:41,383 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:31:41,380 basehttp 97240 6341865472 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:31:52,685 basehttp 97240 6341865472 "GET /en/blood-bank HTTP/1.1" 301 0 +INFO 2025-09-08 09:31:52,716 basehttp 97240 6358691840 "GET /en/blood-bank/ HTTP/1.1" 200 121063 +INFO 2025-09-08 09:31:52,726 basehttp 97240 6392344576 "GET /static/plugins/datatables.net-bs5/js/dataTables.bootstrap5.min.js HTTP/1.1" 200 1470 +INFO 2025-09-08 09:31:52,726 basehttp 97240 6341865472 "GET /static/plugins/datatables.net-responsive-bs5/css/responsive.bootstrap5.min.css HTTP/1.1" 200 6044 +INFO 2025-09-08 09:31:52,727 basehttp 97240 6358691840 "GET /static/plugins/datatables.net-bs5/css/dataTables.bootstrap5.min.css HTTP/1.1" 200 15096 +INFO 2025-09-08 09:31:52,727 basehttp 97240 6425997312 "GET /static/plugins/datatables.net-responsive-bs5/js/responsive.bootstrap5.min.js HTTP/1.1" 200 1796 +INFO 2025-09-08 09:31:52,727 basehttp 97240 6409170944 "GET /static/plugins/datatables.net-responsive/js/dataTables.responsive.min.js HTTP/1.1" 200 16086 +INFO 2025-09-08 09:31:52,728 basehttp 97240 6375518208 "GET /static/plugins/datatables.net/js/dataTables.min.js HTTP/1.1" 200 95735 +INFO 2025-09-08 09:31:52,788 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:32:06,909 basehttp 97240 6375518208 "GET /en/blood-bank/requests/38/ HTTP/1.1" 200 32103 +INFO 2025-09-08 09:32:06,945 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:32:22,248 basehttp 97240 6375518208 "GET /en/blood-bank/units/38/ HTTP/1.1" 200 35788 +INFO 2025-09-08 09:32:22,256 basehttp 97240 6375518208 "GET /static/plugins/sweetalert/dist/sweetalert.min.js HTTP/1.1" 200 40808 +INFO 2025-09-08 09:32:22,285 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:32:41,382 log 97240 6375518208 Not Found: /en/o +WARNING 2025-09-08 09:32:41,382 basehttp 97240 6375518208 "GET /en/o HTTP/1.1" 404 30091 +INFO 2025-09-08 09:32:43,949 basehttp 97240 6375518208 "GET /en/ HTTP/1.1" 200 49853 +INFO 2025-09-08 09:32:44,018 basehttp 97240 6375518208 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:32:44,020 basehttp 97240 6358691840 "GET /en/htmx/system-health/ HTTP/1.1" 200 1356 +INFO 2025-09-08 09:32:44,022 basehttp 97240 6425997312 "GET /en/htmx/tenant-info/ HTTP/1.1" 200 1043 +INFO 2025-09-08 09:32:44,023 basehttp 97240 6409170944 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 09:32:57,423 basehttp 97240 6409170944 "GET /en/appointments/requests/create/ HTTP/1.1" 200 54190 +INFO 2025-09-08 09:32:57,452 basehttp 97240 6409170944 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:33:19,908 basehttp 97240 6409170944 "GET /en/appointments/ HTTP/1.1" 200 44969 +INFO 2025-09-08 09:33:19,939 basehttp 97240 6409170944 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:33:19,954 basehttp 97240 6425997312 "GET /en/appointments/stats/ HTTP/1.1" 200 3132 +INFO 2025-09-08 09:33:33,079 basehttp 97240 6425997312 "GET /en/appointments/queue/ HTTP/1.1" 200 48403 +WARNING 2025-09-08 09:33:33,170 log 97240 6409170944 Not Found: /en/appointments/queue/2/status/ +WARNING 2025-09-08 09:33:33,170 basehttp 97240 6409170944 "GET /en/appointments/queue/2/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:33:33,174 basehttp 97240 6425997312 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:33:33,176 log 97240 6392344576 Not Found: /en/appointments/queue/1/status/ +WARNING 2025-09-08 09:33:33,177 basehttp 97240 6392344576 "GET /en/appointments/queue/1/status/ HTTP/1.1" 404 33541 +INFO 2025-09-08 09:33:33,185 basehttp 97240 6358691840 "GET /en/appointments/queue/8/status/ HTTP/1.1" 200 2856 +INFO 2025-09-08 09:33:33,187 basehttp 97240 6375518208 "GET /en/appointments/queue/12/status/ HTTP/1.1" 200 1936 +INFO 2025-09-08 09:33:33,190 basehttp 97240 6341865472 "GET /en/appointments/queue/11/status/ HTTP/1.1" 200 3321 +WARNING 2025-09-08 09:33:33,205 log 97240 6409170944 Not Found: /en/appointments/queue/13/status/ +WARNING 2025-09-08 09:33:33,205 basehttp 97240 6409170944 "GET /en/appointments/queue/13/status/ HTTP/1.1" 404 33544 +WARNING 2025-09-08 09:33:33,220 log 97240 6425997312 Not Found: /en/appointments/queue/6/status/ +WARNING 2025-09-08 09:33:33,220 basehttp 97240 6425997312 "GET /en/appointments/queue/6/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:33:33,230 log 97240 6392344576 Not Found: /en/appointments/queue/3/status/ +WARNING 2025-09-08 09:33:33,230 basehttp 97240 6392344576 "GET /en/appointments/queue/3/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:33:33,239 log 97240 6358691840 Not Found: /en/appointments/queue/5/status/ +WARNING 2025-09-08 09:33:33,241 basehttp 97240 6358691840 "GET /en/appointments/queue/5/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:33:33,245 log 97240 6375518208 Not Found: /en/appointments/queue/4/status/ +WARNING 2025-09-08 09:33:33,245 basehttp 97240 6375518208 "GET /en/appointments/queue/4/status/ HTTP/1.1" 404 33541 +WARNING 2025-09-08 09:33:33,257 log 97240 6392344576 Not Found: /en/appointments/queue/14/status/ +WARNING 2025-09-08 09:33:33,258 basehttp 97240 6392344576 "GET /en/appointments/queue/14/status/ HTTP/1.1" 404 33544 +INFO 2025-09-08 09:33:33,261 basehttp 97240 6341865472 "GET /en/appointments/queue/10/status/ HTTP/1.1" 200 2122 +INFO 2025-09-08 09:33:33,261 basehttp 97240 6409170944 "GET /en/appointments/queue/9/status/ HTTP/1.1" 200 2958 +INFO 2025-09-08 09:33:33,262 basehttp 97240 6425997312 "GET /en/appointments/queue/7/status/ HTTP/1.1" 200 931 +INFO 2025-09-08 09:33:41,393 basehttp 97240 6425997312 "GET /en/appointments/calendar/ HTTP/1.1" 200 21934 +INFO 2025-09-08 09:33:41,449 basehttp 97240 6341865472 "GET /en/appointments/slots/available/ HTTP/1.1" 200 450 +INFO 2025-09-08 09:33:41,453 basehttp 97240 6425997312 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:33:41,481 basehttp 97240 6409170944 "GET /en/appointments/calendar/appointments/ HTTP/1.1" 200 38827 +ERROR 2025-09-08 09:33:46,459 log 97240 6409170944 Internal Server Error: /en/appointments/requests/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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: appointments/appointment_list.html, appointments/appointmentrequest_list.html +ERROR 2025-09-08 09:33:46,460 basehttp 97240 6409170944 "GET /en/appointments/requests/ HTTP/1.1" 500 88392 +INFO 2025-09-08 09:33:55,453 basehttp 97240 6409170944 "GET /en/appointments/stats/ HTTP/1.1" 200 3132 +INFO 2025-09-08 09:34:19,946 basehttp 97240 6409170944 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:34:25,506 basehttp 97240 6409170944 "GET /en/appointments/stats/ HTTP/1.1" 200 3132 +INFO 2025-09-08 09:34:40,953 autoreload 97240 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 09:34:41,336 autoreload 14533 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 09:34:43,743 basehttp 14533 6134345728 "GET /en/appointments/requests/ HTTP/1.1" 200 128950 +INFO 2025-09-08 09:34:43,781 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +WARNING 2025-09-08 09:34:58,157 log 14533 6134345728 Not Found: /en/appointments/check-in/2220/ +WARNING 2025-09-08 09:34:58,157 basehttp 14533 6134345728 "GET /en/appointments/check-in/2220/ HTTP/1.1" 404 33948 +INFO 2025-09-08 09:35:04,437 basehttp 14533 6134345728 "GET /en/appointments/stats/ HTTP/1.1" 200 3132 +INFO 2025-09-08 09:35:07,154 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:35:08,648 basehttp 14533 6151172096 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:35:08,650 basehttp 14533 6134345728 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 09:35:08,650 basehttp 14533 6167998464 "GET /en/htmx/system-health/ HTTP/1.1" 200 1356 +INFO 2025-09-08 09:35:12,093 basehttp 14533 6167998464 "GET /en/blood-bank/ HTTP/1.1" 200 121063 +INFO 2025-09-08 09:35:12,148 basehttp 14533 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:35:36,387 basehttp 14533 6167998464 "GET /en/blood-bank/units/ HTTP/1.1" 200 88820 +INFO 2025-09-08 09:35:36,400 basehttp 14533 6167998464 "GET /static/plugins/select2/dist/css/select2.min.css HTTP/1.1" 200 14966 +INFO 2025-09-08 09:35:36,401 basehttp 14533 6134345728 "GET /static/plugins/select2/dist/js/select2.min.js HTTP/1.1" 200 70851 +INFO 2025-09-08 09:35:36,435 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:36:36,453 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:36:57,516 basehttp 14533 6134345728 "GET /en/blood-bank/donors/ HTTP/1.1" 200 82651 +INFO 2025-09-08 09:36:57,540 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:37:02,505 basehttp 14533 6134345728 "GET /en/blood-bank/donors/34/ HTTP/1.1" 200 28492 +INFO 2025-09-08 09:37:02,546 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:37:13,710 basehttp 14533 6134345728 "GET /en/blood-bank/donors/34/eligibility/ HTTP/1.1" 200 34004 +INFO 2025-09-08 09:37:13,748 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:37:57,556 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:38:17,502 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:38:18,994 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:39:19,002 basehttp 14533 6134345728 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:39:52,320 basehttp 14533 6134345728 "GET /en/hr HTTP/1.1" 301 0 +INFO 2025-09-08 09:39:52,355 basehttp 14533 6167998464 "GET /en/hr/ HTTP/1.1" 200 42404 +INFO 2025-09-08 09:39:52,395 basehttp 14533 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:40:52,413 basehttp 14533 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:41:52,416 basehttp 14533 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 09:41:53,445 basehttp 14533 6167998464 "GET /en/hr/ HTTP/1.1" 200 42404 +INFO 2025-09-08 09:41:53,485 basehttp 14533 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 3840 +INFO 2025-09-08 10:47:16,480 autoreload 47465 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 10:47:19,700 basehttp 47465 6133772288 "GET /en/hr/ HTTP/1.1" 302 0 +INFO 2025-09-08 10:47:19,707 basehttp 47465 6133772288 "GET /accounts/login/?next=/en/hr/ HTTP/1.1" 302 0 +ERROR 2025-09-08 10:47:19,724 log 47465 6150598656 Internal Server Error: /en/accounts/login/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/decorators.py", line 12, in wrap + resp = function(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/decorators/debug.py", line 143, in sensitive_post_parameters_wrapper + return view(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper + response = view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/views.py", line 95, in dispatch + return super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper + response = view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/mixins.py", line 53, in dispatch + response = super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 144, in dispatch + return handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/mixins.py", line 72, in get + response = super().get(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/views.py", line 121, in get_context_data + signup_url = self.passthrough_next_url(reverse("account_signup")) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/mixins.py", line 191, in passthrough_next_url + return passthrough_next_redirect_url( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/utils.py", line 285, in passthrough_next_redirect_url + next_url = get_next_redirect_url(request, redirect_field_name) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/utils.py", line 43, in get_next_redirect_url + if redirect_to and not get_adapter().is_safe_url(redirect_to): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/adapter.py", line 593, in is_safe_url + allowed_hosts = {context.request.get_host()} | set(settings.ALLOWED_HOSTS) + ^^^^^^^^^^^^^^^^^^^^^^^^ +AttributeError: 'NoneType' object has no attribute 'get_host' +ERROR 2025-09-08 10:47:19,728 basehttp 47465 6150598656 "GET /en/accounts/login/?next=/en/hr/ HTTP/1.1" 500 160927 +INFO 2025-09-08 10:47:24,872 basehttp 47465 6150598656 "GET /en/ HTTP/1.1" 302 0 +INFO 2025-09-08 10:47:24,883 basehttp 47465 6150598656 "GET /accounts/login/?next=/en/ HTTP/1.1" 302 0 +ERROR 2025-09-08 10:47:24,903 log 47465 6133772288 Internal Server Error: /en/accounts/login/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/decorators.py", line 12, in wrap + resp = function(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/decorators/debug.py", line 143, in sensitive_post_parameters_wrapper + return view(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper + response = view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/views.py", line 95, in dispatch + return super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper + return bound_method(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper + response = view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/mixins.py", line 53, in dispatch + response = super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 144, in dispatch + return handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/mixins.py", line 72, in get + response = super().get(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/views.py", line 121, in get_context_data + signup_url = self.passthrough_next_url(reverse("account_signup")) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/mixins.py", line 191, in passthrough_next_url + return passthrough_next_redirect_url( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/utils.py", line 285, in passthrough_next_redirect_url + next_url = get_next_redirect_url(request, redirect_field_name) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/utils.py", line 43, in get_next_redirect_url + if redirect_to and not get_adapter().is_safe_url(redirect_to): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/allauth/account/adapter.py", line 593, in is_safe_url + allowed_hosts = {context.request.get_host()} | set(settings.ALLOWED_HOSTS) + ^^^^^^^^^^^^^^^^^^^^^^^^ +AttributeError: 'NoneType' object has no attribute 'get_host' +ERROR 2025-09-08 10:47:24,905 basehttp 47465 6133772288 "GET /en/accounts/login/?next=/en/ HTTP/1.1" 500 160549 +INFO 2025-09-08 10:47:29,633 basehttp 47465 6133772288 "GET /en/admin HTTP/1.1" 301 0 +INFO 2025-09-08 10:47:29,676 basehttp 47465 6150598656 "GET /en/admin/ HTTP/1.1" 302 0 +INFO 2025-09-08 10:47:29,689 basehttp 47465 6150598656 "GET /en/admin/login/?next=/en/admin/ HTTP/1.1" 200 4212 +INFO 2025-09-08 10:47:29,698 basehttp 47465 6133772288 "GET /static/admin/css/base.css HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:29,699 basehttp 47465 6167425024 "GET /static/admin/css/dark_mode.css HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:29,699 basehttp 47465 13035925504 "GET /static/admin/css/nav_sidebar.css HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:29,700 basehttp 47465 13069578240 "GET /static/admin/js/theme.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:29,701 basehttp 47465 13052751872 "GET /static/admin/css/responsive.css HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:29,701 basehttp 47465 6150598656 "GET /static/admin/css/login.css HTTP/1.1" 200 951 +INFO 2025-09-08 10:47:29,707 basehttp 47465 6150598656 "GET /static/admin/js/nav_sidebar.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:31,059 basehttp 47465 6150598656 "POST /en/admin/login/?next=/en/admin/ HTTP/1.1" 302 0 +INFO 2025-09-08 10:47:31,080 basehttp 47465 6150598656 "GET /en/admin/ HTTP/1.1" 200 96127 +INFO 2025-09-08 10:47:31,093 basehttp 47465 6150598656 "GET /static/admin/css/dashboard.css HTTP/1.1" 200 441 +INFO 2025-09-08 10:47:31,096 basehttp 47465 13052751872 "GET /static/admin/img/icon-changelink.svg HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:31,096 basehttp 47465 6150598656 "GET /static/admin/img/icon-addlink.svg HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,136 basehttp 47465 6150598656 "GET /en/admin/analytics/dashboardwidget/ HTTP/1.1" 200 113900 +INFO 2025-09-08 10:47:34,145 basehttp 47465 6150598656 "GET /static/admin/css/changelists.css HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,148 basehttp 47465 13052751872 "GET /static/admin/js/vendor/jquery/jquery.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,148 basehttp 47465 13035925504 "GET /static/admin/js/core.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,149 basehttp 47465 6133772288 "GET /static/admin/js/actions.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,149 basehttp 47465 13069578240 "GET /static/admin/js/jquery.init.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,149 basehttp 47465 6167425024 "GET /static/admin/js/admin/RelatedObjectLookups.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,150 basehttp 47465 13052751872 "GET /static/admin/js/urlify.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,150 basehttp 47465 13035925504 "GET /static/admin/js/prepopulate.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,150 basehttp 47465 6133772288 "GET /static/admin/js/vendor/xregexp/xregexp.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,150 basehttp 47465 13052751872 "GET /static/admin/img/icon-yes.svg HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,151 basehttp 47465 6167425024 "GET /static/admin/img/search.svg HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,152 basehttp 47465 6167425024 "GET /static/admin/js/filters.js HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,152 basehttp 47465 6150598656 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +INFO 2025-09-08 10:47:34,159 basehttp 47465 6150598656 "GET /static/admin/img/tooltag-add.svg HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:34,160 basehttp 47465 6150598656 "GET /static/admin/img/icon-viewlink.svg HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:36,454 basehttp 47465 6150598656 "GET /en/admin/accounts/user/ HTTP/1.1" 200 114113 +INFO 2025-09-08 10:47:36,463 basehttp 47465 6167425024 "GET /static/admin/img/icon-no.svg HTTP/1.1" 304 0 +INFO 2025-09-08 10:47:36,469 basehttp 47465 6150598656 "GET /en/admin/jsi18n/ HTTP/1.1" 200 3342 +INFO 2025-09-08 10:47:45,100 basehttp 47465 6150598656 "GET / HTTP/1.1" 302 0 +INFO 2025-09-08 10:47:45,144 basehttp 47465 6167425024 "GET /en/ HTTP/1.1" 200 50102 +INFO 2025-09-08 10:47:45,220 basehttp 47465 6167425024 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 10:47:45,224 basehttp 47465 13035925504 "GET /en/htmx/tenant-info/ HTTP/1.1" 200 1095 +INFO 2025-09-08 10:47:45,224 basehttp 47465 6133772288 "GET /en/htmx/system-health/ HTTP/1.1" 200 1356 +INFO 2025-09-08 10:47:45,226 basehttp 47465 13052751872 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 10:47:58,539 basehttp 47465 13052751872 "GET /en/appointments/requests/create/ HTTP/1.1" 200 54220 +INFO 2025-09-08 10:47:58,577 basehttp 47465 13052751872 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 10:48:00,743 basehttp 47465 13052751872 "GET /en/appointments/requests/ HTTP/1.1" 200 129082 +INFO 2025-09-08 10:48:00,779 basehttp 47465 13052751872 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 10:48:13,734 basehttp 47465 13052751872 "POST /appointments/reschedule/2136/ HTTP/1.1" 302 0 +WARNING 2025-09-08 10:48:13,747 log 47465 6133772288 Not Found: /en/appointments/reschedule/2136/ +WARNING 2025-09-08 10:48:13,747 basehttp 47465 6133772288 "GET /en/appointments/reschedule/2136/ HTTP/1.1" 404 29434 +WARNING 2025-09-08 10:48:17,156 log 47465 6133772288 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 10:48:17,156 basehttp 47465 6133772288 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 10:49:00,798 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 10:50:00,803 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 10:51:00,806 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 11:20:50,025 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 11:29:40,592 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 11:32:14,968 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4645 +INFO 2025-09-08 11:40:00,702 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4685 +INFO 2025-09-08 12:07:43,967 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:08:43,954 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:09:43,960 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:10:43,954 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:11:02,872 basehttp 47465 6133772288 "GET /en/appointments/requests/ HTTP/1.1" 200 129098 +WARNING 2025-09-08 12:11:02,888 log 47465 6133772288 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 12:11:02,888 basehttp 47465 6133772288 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 12:11:02,957 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +WARNING 2025-09-08 12:11:12,822 log 47465 6133772288 Forbidden (CSRF token missing.): /en/appointments/reschedule/2136/ +WARNING 2025-09-08 12:11:12,822 basehttp 47465 6133772288 "POST /en/appointments/reschedule/2136/ HTTP/1.1" 403 2491 +INFO 2025-09-08 12:12:02,973 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:12:04,457 basehttp 47465 6133772288 "GET /en/appointments/requests/ HTTP/1.1" 200 129706 +WARNING 2025-09-08 12:12:04,476 log 47465 6133772288 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 12:12:04,476 basehttp 47465 6133772288 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 12:12:04,547 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +WARNING 2025-09-08 12:12:12,482 log 47465 6133772288 Not Found: /en/appointments/reschedule/2135/ +WARNING 2025-09-08 12:12:12,483 basehttp 47465 6133772288 "POST /en/appointments/reschedule/2135/ HTTP/1.1" 404 29435 +INFO 2025-09-08 12:13:04,560 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +WARNING 2025-09-08 12:14:02,018 log 47465 6133772288 Not Found: /en/appointments/reschedule/2133/ +WARNING 2025-09-08 12:14:02,018 basehttp 47465 6133772288 "POST /en/appointments/reschedule/2133/ HTTP/1.1" 404 29435 +INFO 2025-09-08 12:14:04,301 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:15:04,311 basehttp 47465 6133772288 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:15:51,341 autoreload 47465 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 12:15:51,729 autoreload 54918 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 12:15:52,893 basehttp 54918 6155284480 "GET /en/appointments/requests/ HTTP/1.1" 200 129706 +WARNING 2025-09-08 12:15:52,911 log 54918 6155284480 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 12:15:52,911 basehttp 54918 6155284480 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 12:15:52,962 basehttp 54918 6155284480 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:16:02,876 basehttp 54918 6155284480 "GET /en/appointments/requests/ HTTP/1.1" 200 129706 +INFO 2025-09-08 12:16:02,894 basehttp 54918 13455405056 "GET /static/css/custom.css HTTP/1.1" 200 2063 +INFO 2025-09-08 12:16:02,895 basehttp 54918 13489057792 "GET /static/img/user/user-4.jpg HTTP/1.1" 200 5916 +WARNING 2025-09-08 12:16:02,897 log 54918 6155284480 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 12:16:02,898 basehttp 54918 6155284480 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 12:16:02,898 basehttp 54918 13472231424 "GET /static/js/htmx.min.js HTTP/1.1" 200 50917 +INFO 2025-09-08 12:16:02,900 basehttp 54918 6172110848 "GET /static/css/vendor.min.css HTTP/1.1" 200 177466 +INFO 2025-09-08 12:16:02,900 basehttp 54918 13489057792 "GET /static/js/app.min.js HTTP/1.1" 200 110394 +INFO 2025-09-08 12:16:02,903 basehttp 54918 13438578688 "GET /static/css/default/app.min.css HTTP/1.1" 200 893480 +INFO 2025-09-08 12:16:02,903 basehttp 54918 13455405056 "GET /static/js/vendor.min.js HTTP/1.1" 200 1091361 +INFO 2025-09-08 12:16:03,157 basehttp 54918 13455405056 "GET /static/css/default/app.min.css.map HTTP/1.1" 200 1957526 +INFO 2025-09-08 12:16:03,181 basehttp 54918 13455405056 "GET /static/img/theme/default.jpg HTTP/1.1" 200 26964 +INFO 2025-09-08 12:16:03,181 basehttp 54918 13438578688 "GET /static/img/theme/transparent.jpg HTTP/1.1" 200 32747 +INFO 2025-09-08 12:16:03,181 basehttp 54918 13489057792 "GET /static/img/theme/apple.jpg HTTP/1.1" 200 28822 +INFO 2025-09-08 12:16:03,182 basehttp 54918 6172110848 "GET /static/img/theme/material.jpg HTTP/1.1" 200 28774 +INFO 2025-09-08 12:16:03,183 basehttp 54918 13472231424 "GET /static/img/theme/facebook.jpg HTTP/1.1" 200 27881 +INFO 2025-09-08 12:16:03,184 basehttp 54918 6155284480 "GET /static/img/theme/google.jpg HTTP/1.1" 200 86013 +INFO 2025-09-08 12:16:03,185 basehttp 54918 13489057792 "GET /static/img/version/html.jpg HTTP/1.1" 200 17325 +INFO 2025-09-08 12:16:03,185 basehttp 54918 13455405056 "GET /static/webfonts/fa-solid-900.woff2 HTTP/1.1" 200 158220 +INFO 2025-09-08 12:16:03,186 basehttp 54918 13472231424 "GET /static/img/version/angular10x.jpg HTTP/1.1" 200 24580 +INFO 2025-09-08 12:16:03,188 basehttp 54918 13438578688 "GET /static/img/version/ajax.jpg HTTP/1.1" 200 20223 +INFO 2025-09-08 12:16:03,189 basehttp 54918 6172110848 "GET /static/img/version/angular1x.jpg HTTP/1.1" 200 22869 +INFO 2025-09-08 12:16:03,191 basehttp 54918 13472231424 "GET /static/img/version/django.jpg HTTP/1.1" 200 20935 +INFO 2025-09-08 12:16:03,191 basehttp 54918 13438578688 "GET /static/img/version/dotnet.jpg HTTP/1.1" 200 24791 +INFO 2025-09-08 12:16:03,191 basehttp 54918 13455405056 "GET /static/img/version/vuejs.jpg HTTP/1.1" 200 22518 +INFO 2025-09-08 12:16:03,191 basehttp 54918 13489057792 "GET /static/img/version/svelte.jpg HTTP/1.1" 200 25060 +INFO 2025-09-08 12:16:03,191 basehttp 54918 6155284480 "GET /static/img/version/laravel.jpg HTTP/1.1" 200 26040 +INFO 2025-09-08 12:16:03,191 basehttp 54918 6172110848 "GET /static/img/version/reactjs.jpg HTTP/1.1" 200 26850 +INFO 2025-09-08 12:16:03,195 basehttp 54918 13489057792 "GET /static/img/version/nextjs.jpg HTTP/1.1" 200 20152 +INFO 2025-09-08 12:16:03,195 basehttp 54918 6172110848 "GET /static/img/theme/blog.jpg HTTP/1.1" 200 32334 +INFO 2025-09-08 12:16:03,195 basehttp 54918 13455405056 "GET /static/img/theme/forum.jpg HTTP/1.1" 200 28744 +INFO 2025-09-08 12:16:03,195 basehttp 54918 13438578688 "GET /static/img/theme/one-page-parallax.jpg HTTP/1.1" 200 22474 +INFO 2025-09-08 12:16:03,196 basehttp 54918 6155284480 "GET /static/img/theme/e-commerce.jpg HTTP/1.1" 200 37734 +INFO 2025-09-08 12:16:03,196 basehttp 54918 13455405056 "GET /static/img/theme/corporate.jpg HTTP/1.1" 200 38911 +INFO 2025-09-08 12:16:03,209 basehttp 54918 13472231424 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +WARNING 2025-09-08 12:16:03,294 log 54918 13472231424 Not Found: /favicon.ico +WARNING 2025-09-08 12:16:03,294 basehttp 54918 13472231424 "GET /favicon.ico HTTP/1.1" 404 2557 +ERROR 2025-09-08 12:16:17,537 log 54918 13472231424 Internal Server Error: /en/appointments/reschedule/2129/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py", line 1879, in reschedule_appointment + return render(request, 'appointments/reschedule_appointment.html', { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render + content = loader.render_to_string(template_name, context, request, using=using) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string + return template.render(context, request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'get_available_slots' not found. 'get_available_slots' is not a valid view function or pattern name. +ERROR 2025-09-08 12:16:17,540 basehttp 54918 13472231424 "POST /en/appointments/reschedule/2129/ HTTP/1.1" 500 180006 +INFO 2025-09-08 12:17:03,215 basehttp 54918 13472231424 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:18:03,210 basehttp 54918 13472231424 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:18:54,490 autoreload 54918 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/appointments/views.py changed, reloading. +INFO 2025-09-08 12:18:54,904 autoreload 56300 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 12:19:03,294 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:20:03,215 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:20:47,621 basehttp 56300 6126219264 "GET /en/appointments/requests/ HTTP/1.1" 200 129706 +WARNING 2025-09-08 12:20:47,637 log 56300 6126219264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 12:20:47,638 basehttp 56300 6126219264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 12:20:47,707 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:21:03,417 basehttp 56300 6126219264 "POST /en/appointments/reschedule/2127/ HTTP/1.1" 200 28570 +INFO 2025-09-08 12:21:03,438 basehttp 56300 6126219264 "GET /static/plugins/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css HTTP/1.1" 200 15733 +INFO 2025-09-08 12:21:03,439 basehttp 56300 6143045632 "GET /static/plugins/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js HTTP/1.1" 200 33871 +INFO 2025-09-08 12:21:03,460 basehttp 56300 6143045632 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:22:03,471 basehttp 56300 6143045632 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:22:03,486 basehttp 56300 6143045632 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:23:03,472 basehttp 56300 6143045632 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:23:03,487 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:23:36,564 basehttp 56300 6126219264 "GET /en/appointments/requests/ HTTP/1.1" 200 129706 +WARNING 2025-09-08 12:23:36,582 log 56300 6126219264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 12:23:36,582 basehttp 56300 6126219264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 12:23:36,624 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:23:44,170 basehttp 56300 6126219264 "POST /en/appointments/reschedule/2135/ HTTP/1.1" 200 11406 +INFO 2025-09-08 12:24:36,639 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:24:55,000 basehttp 56300 6126219264 "GET /en/appointments/requests/ HTTP/1.1" 200 129706 +WARNING 2025-09-08 12:24:55,023 log 56300 6126219264 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 12:24:55,023 basehttp 56300 6126219264 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 12:24:55,063 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:24:58,699 basehttp 56300 6126219264 "POST /en/appointments/reschedule/2134/ HTTP/1.1" 200 10891 +INFO 2025-09-08 12:25:55,076 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:26:55,077 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:27:55,079 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:28:55,192 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:29:55,202 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:30:55,204 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:31:55,870 basehttp 56300 6126219264 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 12:34:55,910 basehttp 56300 6126219264 "GET /en/appointments/slots/available/?date=2025-09-17&provider=6&exclude_appointment=2134 HTTP/1.1" 200 450 +WARNING 2025-09-08 12:35:12,693 log 56300 6126219264 Method Not Allowed (POST): /en/appointments/requests/ +WARNING 2025-09-08 12:35:12,694 basehttp 56300 6126219264 "POST /en/appointments/requests/ HTTP/1.1" 405 0 +INFO 2025-09-08 14:16:01,650 autoreload 71681 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 14:16:10,687 basehttp 71681 6161690624 "GET /en/appointments/requests/create/ HTTP/1.1" 200 54220 +WARNING 2025-09-08 14:16:10,702 log 71681 6161690624 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:16:10,702 basehttp 71681 6161690624 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:17:10,758 basehttp 71681 6161690624 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:17:12,514 basehttp 71681 6161690624 "GET /en/ HTTP/1.1" 200 50112 +WARNING 2025-09-08 14:17:12,530 log 71681 6161690624 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:17:12,530 basehttp 71681 6161690624 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:17:12,603 basehttp 71681 13052751872 "GET /en/htmx/tenant-info/ HTTP/1.1" 200 1095 +INFO 2025-09-08 14:17:12,604 basehttp 71681 13035925504 "GET /en/htmx/system-health/ HTTP/1.1" 200 1356 +INFO 2025-09-08 14:17:12,605 basehttp 71681 6161690624 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 14:17:42,593 basehttp 71681 6161690624 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 14:18:05,868 basehttp 71681 6161690624 "GET /en/billing/bills/create/ HTTP/1.1" 200 132497 +WARNING 2025-09-08 14:18:05,887 log 71681 6161690624 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:18:05,887 basehttp 71681 6161690624 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:18:05,959 basehttp 71681 6161690624 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:18:13,908 basehttp 71681 6161690624 "GET /en/billing/bills/ HTTP/1.1" 200 104565 +WARNING 2025-09-08 14:18:13,926 log 71681 6161690624 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:18:13,926 basehttp 71681 6161690624 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:18:13,940 basehttp 71681 6161690624 "GET /static/css/saudiriyalsymbol.woff2 HTTP/1.1" 200 720 +INFO 2025-09-08 14:18:13,981 basehttp 71681 6161690624 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:18:13,984 basehttp 71681 13035925504 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 14:19:13,997 basehttp 71681 13035925504 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:19:13,999 basehttp 71681 6161690624 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 14:19:38,991 basehttp 71681 6161690624 "GET /en/billing/bills/?page=2 HTTP/1.1" 200 102939 +WARNING 2025-09-08 14:19:39,004 log 71681 6161690624 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:19:39,004 basehttp 71681 6161690624 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:19:39,066 basehttp 71681 6161690624 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:19:39,071 basehttp 71681 13035925504 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 14:19:59,303 basehttp 71681 13035925504 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39788 +WARNING 2025-09-08 14:19:59,321 log 71681 13035925504 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:19:59,321 basehttp 71681 13035925504 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:19:59,362 basehttp 71681 13035925504 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:20:59,371 basehttp 71681 13035925504 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:21:59,382 basehttp 71681 13035925504 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:22:59,392 basehttp 71681 13035925504 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 14:23:00,508 log 71681 13035925504 Internal Server Error: /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'claim_appeal' not found. 'claim_appeal' is not a valid view function or pattern name. +ERROR 2025-09-08 14:23:00,510 basehttp 71681 13035925504 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 500 192011 +WARNING 2025-09-08 14:23:00,525 log 71681 13035925504 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:23:00,526 basehttp 71681 13035925504 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:37:10,284 autoreload 71681 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/billing/views.py changed, reloading. +INFO 2025-09-08 14:37:10,639 autoreload 80868 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 14:46:54,487 autoreload 80868 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/billing/views.py changed, reloading. +INFO 2025-09-08 14:46:54,825 autoreload 85101 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 14:50:00,059 autoreload 85101 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/billing/urls.py changed, reloading. +INFO 2025-09-08 14:50:00,416 autoreload 86485 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 14:51:12,289 autoreload 86485 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/billing/urls.py changed, reloading. +INFO 2025-09-08 14:51:12,644 autoreload 87029 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 14:51:15,718 log 87029 6134935552 Internal Server Error: /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'claim_resubmit' not found. 'claim_resubmit' is not a valid view function or pattern name. +ERROR 2025-09-08 14:51:15,720 basehttp 87029 6134935552 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 500 192364 +WARNING 2025-09-08 14:51:15,735 log 87029 6134935552 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:51:15,735 basehttp 87029 6134935552 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 14:52:29,045 log 87029 6134935552 Internal Server Error: /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'claim_delete' not found. 'claim_delete' is not a valid view function or pattern name. +ERROR 2025-09-08 14:52:29,046 basehttp 87029 6134935552 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 500 190728 +WARNING 2025-09-08 14:52:29,057 log 87029 6134935552 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:52:29,058 basehttp 87029 6134935552 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 14:52:39,994 log 87029 6134935552 Internal Server Error: /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'claim_resubmit' not found. 'claim_resubmit' is not a valid view function or pattern name. +ERROR 2025-09-08 14:52:39,995 basehttp 87029 6134935552 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 500 192144 +WARNING 2025-09-08 14:52:40,008 log 87029 6134935552 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:52:40,008 basehttp 87029 6134935552 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +ERROR 2025-09-08 14:53:03,437 log 87029 6134935552 Internal Server Error: /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'claim_resubmit' not found. 'claim_resubmit' is not a valid view function or pattern name. +ERROR 2025-09-08 14:53:03,438 basehttp 87029 6134935552 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 500 192278 +WARNING 2025-09-08 14:53:03,451 log 87029 6134935552 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:53:03,451 basehttp 87029 6134935552 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:53:26,753 basehttp 87029 6134935552 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 39800 +WARNING 2025-09-08 14:53:26,770 log 87029 6134935552 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:53:26,770 basehttp 87029 6134935552 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:53:26,825 basehttp 87029 6134935552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:54:26,835 basehttp 87029 6134935552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:55:26,828 basehttp 87029 6134935552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:55:34,019 basehttp 87029 6134935552 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 39803 +WARNING 2025-09-08 14:55:34,035 log 87029 6134935552 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:55:34,035 basehttp 87029 6134935552 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:55:34,079 basehttp 87029 6134935552 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 14:55:46,612 log 87029 6134935552 Internal Server Error: /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/appeal +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/billing/views.py", line 1618, in claim_appeal + claim = get_object_or_404( + ^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/shortcuts.py", line 90, in get_object_or_404 + return queryset.get(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 619, in get + clone = self._chain() if self.query.combinator else self.filter(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 1493, in filter + return self._filter_or_exclude(False, args, kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 1511, in _filter_or_exclude + clone._filter_or_exclude_inplace(negate, args, kwargs) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 1518, in _filter_or_exclude_inplace + self._query.add_q(Q(*args, **kwargs)) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1646, in add_q + clause, _ = self._add_q(q_object, can_reuse) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1678, in _add_q + child_clause, needed_inner = self.build_filter( + ^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1526, in build_filter + lookups, parts, reffed_expression = self.solve_lookup_type(arg, summarize) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1333, in solve_lookup_type + _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta()) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path + raise FieldError( +django.core.exceptions.FieldError: Cannot resolve keyword 'tenant' into field. Choices are: allowed_amount, batch_number, billed_amount, check_date, check_number, claim_id, claim_number, claim_type, clearinghouse, coinsurance_amount, copay_amount, created_at, created_by, created_by_id, deductible_amount, denial_code, denial_reason, id, insurance_info, insurance_info_id, medical_bill, medical_bill_id, notes, original_claim, original_claim_id, paid_amount, patient_responsibility, payments, prior_auth_number, response_date, resubmission_count, resubmissions, service_date_from, service_date_to, status, status_updates, submission_date, updated_at +ERROR 2025-09-08 14:55:46,614 basehttp 87029 6134935552 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/appeal HTTP/1.1" 500 133750 +WARNING 2025-09-08 14:55:46,627 log 87029 6134935552 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:55:46,627 basehttp 87029 6134935552 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:56:24,257 autoreload 87029 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/billing/views.py changed, reloading. +INFO 2025-09-08 14:56:24,638 autoreload 89371 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 14:56:25,288 basehttp 89371 6201716736 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/appeal HTTP/1.1" 302 0 +INFO 2025-09-08 14:56:25,304 basehttp 89371 6201716736 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38264 +WARNING 2025-09-08 14:56:25,322 log 89371 6201716736 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:56:25,322 basehttp 89371 6201716736 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:56:25,369 basehttp 89371 6201716736 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:56:48,052 basehttp 89371 6201716736 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 37872 +WARNING 2025-09-08 14:56:48,071 log 89371 6201716736 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:56:48,071 basehttp 89371 6201716736 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:56:48,116 basehttp 89371 6201716736 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:57:48,126 basehttp 89371 6201716736 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:57:48,222 autoreload 89371 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/billing/views.py changed, reloading. +INFO 2025-09-08 14:57:48,602 autoreload 89988 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 14:57:49,495 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 37872 +WARNING 2025-09-08 14:57:49,512 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 14:57:49,512 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 14:57:49,565 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:58:49,573 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 14:59:49,573 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:00:49,582 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:01:15,624 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38672 +WARNING 2025-09-08 15:01:15,638 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:01:15,638 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:01:15,667 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:02:16,084 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:03:09,580 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38685 +WARNING 2025-09-08 15:03:09,597 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:03:09,597 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:03:09,647 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:03:19,464 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38684 +WARNING 2025-09-08 15:03:19,480 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:03:19,480 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:03:19,520 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:03:26,561 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38685 +WARNING 2025-09-08 15:03:26,572 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:03:26,573 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:03:26,595 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:03:48,208 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38672 +WARNING 2025-09-08 15:03:48,218 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:03:48,219 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:03:48,244 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:04:48,250 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:04:51,766 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38705 +WARNING 2025-09-08 15:04:51,778 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:04:51,779 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:04:51,818 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:05:13,334 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38705 +WARNING 2025-09-08 15:05:13,349 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:05:13,350 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:05:13,387 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:05:30,978 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38699 +WARNING 2025-09-08 15:05:30,990 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:05:30,990 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:05:31,017 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:06:08,289 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38699 +WARNING 2025-09-08 15:06:08,305 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:06:08,306 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:06:08,356 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:06:43,487 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38728 +WARNING 2025-09-08 15:06:43,500 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:06:43,500 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:06:43,547 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:07:26,932 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38748 +WARNING 2025-09-08 15:07:26,949 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:07:26,949 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:07:26,995 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:07:52,908 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 38672 +WARNING 2025-09-08 15:07:52,922 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:07:52,922 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:07:52,966 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:08:52,976 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:09:52,984 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:10:52,994 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:11:10,636 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 41072 +WARNING 2025-09-08 15:11:10,655 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:11:10,655 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:11:10,695 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:12:10,718 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:13:10,718 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:14:10,721 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 15:14:30,855 log 89988 6137737216 Internal Server Error: /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader.py", line 42, in select_template + return engine.get_template(template_name) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 79, in get_template + return Template(self.engine.get_template(template_name), self) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/engine.py", line 177, in get_template + template, origin = self.find_template(template_name) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/engine.py", line 159, in find_template + template = loader.get_template(name, skip=skip) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loaders/cached.py", line 57, in get_template + template = super().get_template(template_name, skip) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loaders/base.py", line 28, in get_template + return Template( + ^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 154, in __init__ + self.nodelist = self.compile_nodelist() + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 196, in compile_nodelist + nodelist = parser.parse() + ^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 299, in do_extends + nodelist = parser.parse() + ^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 234, in do_block + nodelist = parser.parse(("endblock",)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 518, in parse + raise self.error(token, e) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 516, in parse + compiled_result = compile_func(self, token) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 862, in do_for + nodelist_loop = parser.parse( + ^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 489, in parse + raise self.error(token, e) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 487, in parse + filter_expression = self.compile_filter(token.contents) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 609, in compile_filter + return FilterExpression(token, self) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 682, in __init__ + raise TemplateSyntaxError( +django.template.exceptions.TemplateSyntaxError: Could not parse some characters: line_item.| billed_amount||floatformat:'2g' +ERROR 2025-09-08 15:14:30,858 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 500 303694 +WARNING 2025-09-08 15:14:30,871 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:14:30,871 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:15:02,471 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 41125 +WARNING 2025-09-08 15:15:02,487 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:15:02,487 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:15:02,510 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:16:02,528 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:17:02,536 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:17:13,862 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 41145 +WARNING 2025-09-08 15:17:13,878 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:17:13,878 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:17:13,926 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:18:13,944 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:19:13,938 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:20:13,944 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:21:13,958 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:22:13,959 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:23:13,967 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:23:34,530 basehttp 89988 6137737216 "GET /en/billing/claims/61a85484-d9f4-4b3a-a9c1-c1e43b08bcd8/ HTTP/1.1" 200 41145 +WARNING 2025-09-08 15:23:34,550 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:23:34,550 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:23:34,594 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:23:58,462 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39788 +WARNING 2025-09-08 15:23:58,479 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:23:58,479 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:23:58,523 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:24:58,540 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:25:58,534 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:26:24,080 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39788 +WARNING 2025-09-08 15:26:24,095 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:26:24,095 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:26:24,148 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:27:24,153 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:28:24,159 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:29:23,989 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:30:23,995 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:31:24,003 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:32:24,010 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:33:24,009 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:34:24,012 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:35:24,014 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:36:24,017 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4630 +INFO 2025-09-08 15:37:24,021 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4685 +INFO 2025-09-08 15:38:24,024 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 15:39:24,022 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 15:40:24,029 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 15:41:24,031 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 15:42:24,039 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 15:43:24,038 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 15:44:24,029 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 15:45:24,028 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 15:46:24,032 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:47:24,036 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:48:24,038 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:49:24,041 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:50:24,044 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:51:24,048 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:52:24,056 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:52:33,813 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39788 +WARNING 2025-09-08 15:52:33,832 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:52:33,832 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:52:33,873 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:53:09,520 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39788 +WARNING 2025-09-08 15:53:09,535 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:53:09,535 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:53:09,586 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:54:09,594 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:55:09,591 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:55:18,311 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39788 +WARNING 2025-09-08 15:55:18,328 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:55:18,329 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:55:18,375 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:55:24,515 basehttp 89988 6137737216 "GET /en/billing/payments/create/?bill=cee6b9a3-0833-40a0-8df4-76ffbd19039a HTTP/1.1" 200 42101 +WARNING 2025-09-08 15:55:24,533 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:55:24,534 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:55:24,576 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 15:55:27,210 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:55:27,210 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 15:55:27,219 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 15:55:27,220 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 15:56:18,392 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:57:18,395 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:58:18,400 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 15:59:18,401 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:00:18,404 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:01:18,405 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:01:18,580 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39889 +WARNING 2025-09-08 16:01:18,591 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:01:18,591 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:01:18,635 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:02:18,653 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:03:18,658 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:03:53,228 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39869 +WARNING 2025-09-08 16:03:53,242 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:03:53,243 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:03:53,286 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:04:18,443 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39896 +WARNING 2025-09-08 16:04:18,456 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:04:18,456 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:04:18,498 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:05:18,506 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:05:50,259 basehttp 89988 6137737216 "GET /en/billing/bills/cee6b9a3-0833-40a0-8df4-76ffbd19039a/ HTTP/1.1" 200 39869 +WARNING 2025-09-08 16:05:50,270 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:05:50,270 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:05:50,312 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 16:05:59,548 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:05:59,548 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:00,678 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:00,678 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:01,797 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:01,797 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:02,589 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:02,589 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:06:09,604 basehttp 89988 6137737216 "GET /en/billing/bills/9630ec2d-fbc4-40db-80b7-2b1b0ef45932/ HTTP/1.1" 200 41259 +WARNING 2025-09-08 16:06:09,622 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:09,622 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:06:09,670 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:06:20,010 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32274 +WARNING 2025-09-08 16:06:20,028 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:20,028 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:06:20,072 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 16:06:23,267 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:23,268 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:23,273 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:23,273 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:06:41,126 basehttp 89988 6137737216 "GET /en/billing/claims/4e11fb94-0c86-4dde-a572-bded4504e938/ HTTP/1.1" 200 41576 +WARNING 2025-09-08 16:06:41,146 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:41,146 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:06:41,192 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 16:06:49,691 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:49,691 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:49,701 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:49,702 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:50,319 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:50,319 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:50,333 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:50,333 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:52,744 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:52,744 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:52,754 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:52,754 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:53,121 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:53,121 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:06:53,131 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:53,131 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:06:58,508 basehttp 89988 6137737216 "GET /en/billing/bills/9630ec2d-fbc4-40db-80b7-2b1b0ef45932/ HTTP/1.1" 200 41259 +WARNING 2025-09-08 16:06:58,531 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:06:58,531 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:06:58,573 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:07:03,216 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32274 +WARNING 2025-09-08 16:07:03,238 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:07:03,238 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:07:03,279 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:08:03,294 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:09:03,288 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:09:42,024 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32274 +WARNING 2025-09-08 16:09:42,036 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:09:42,036 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:09:42,060 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:09:43,507 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32274 +WARNING 2025-09-08 16:09:43,519 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:09:43,519 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:09:43,540 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:10:17,078 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32405 +WARNING 2025-09-08 16:10:17,090 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:10:17,090 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:10:17,129 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:10:34,597 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32403 +WARNING 2025-09-08 16:10:34,610 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:10:34,611 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:10:34,650 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:11:09,820 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32412 +WARNING 2025-09-08 16:11:09,831 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:11:09,831 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:11:09,856 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:12:09,872 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:12:16,807 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32412 +WARNING 2025-09-08 16:12:16,818 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:12:16,818 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:12:16,842 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:12:43,314 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32507 +WARNING 2025-09-08 16:12:43,326 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:12:43,326 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:12:43,352 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:13:09,485 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32507 +WARNING 2025-09-08 16:13:09,498 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:13:09,498 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:13:09,522 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:14:09,539 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:14:55,794 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32676 +WARNING 2025-09-08 16:14:55,810 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:14:55,810 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:14:55,855 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:15:24,624 basehttp 89988 6137737216 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 302 0 +INFO 2025-09-08 16:15:24,646 basehttp 89988 6137737216 "GET /en/billing/bills/ HTTP/1.1" 200 104987 +WARNING 2025-09-08 16:15:24,668 log 89988 6137737216 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:15:24,668 basehttp 89988 6137737216 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:15:24,717 basehttp 89988 6137737216 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:15:24,720 basehttp 89988 6154563584 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:16:24,743 basehttp 89988 6154563584 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:16:24,746 basehttp 89988 6137737216 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:16:32,728 autoreload 89988 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/billing/views.py changed, reloading. +INFO 2025-09-08 16:16:33,100 autoreload 24971 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 16:16:33,820 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32676 +WARNING 2025-09-08 16:16:33,837 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:16:33,837 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:16:33,890 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:16:39,012 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 302 0 +INFO 2025-09-08 16:16:39,062 basehttp 24971 6167998464 "GET /en/billing/bills/ HTTP/1.1" 200 105218 +WARNING 2025-09-08 16:16:39,080 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:16:39,081 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:16:39,132 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:16:39,138 basehttp 24971 6184824832 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +WARNING 2025-09-08 16:16:47,699 log 24971 6184824832 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:16:47,699 basehttp 24971 6184824832 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:16:47,734 log 24971 6184824832 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:16:47,734 basehttp 24971 6184824832 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:17:33,891 basehttp 24971 6184824832 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:17:52,926 basehttp 24971 6184824832 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 302 0 +INFO 2025-09-08 16:17:52,946 basehttp 24971 6184824832 "GET /en/billing/bills/ HTTP/1.1" 200 105218 +WARNING 2025-09-08 16:17:52,964 log 24971 6184824832 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:17:52,965 basehttp 24971 6184824832 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:17:53,016 basehttp 24971 6184824832 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:17:53,019 basehttp 24971 6167998464 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +WARNING 2025-09-08 16:18:01,469 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:18:01,469 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:18:01,479 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:18:01,479 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:18:33,895 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:19:28,976 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32676 +WARNING 2025-09-08 16:19:28,988 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:19:28,988 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:19:29,014 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:19:30,255 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 302 0 +INFO 2025-09-08 16:19:30,268 basehttp 24971 6167998464 "GET /en/billing/bills/ HTTP/1.1" 200 105092 +WARNING 2025-09-08 16:19:30,282 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:19:30,282 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:19:30,334 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:19:30,337 basehttp 24971 6184824832 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:20:30,356 basehttp 24971 6184824832 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:20:30,360 basehttp 24971 6167998464 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:21:08,012 basehttp 24971 6167998464 "GET /en/billing/bills/ HTTP/1.1" 200 104609 +WARNING 2025-09-08 16:21:08,029 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:08,029 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:08,099 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:21:08,102 basehttp 24971 6184824832 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:21:09,348 basehttp 24971 6184824832 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 16:21:09,349 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:09,349 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:21:09,360 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:09,360 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:10,733 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/ HTTP/1.1" 200 32676 +WARNING 2025-09-08 16:21:10,751 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:10,751 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:10,797 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:21:12,929 basehttp 24971 6167998464 "GET /en/billing/bills/9630ec2d-fbc4-40db-80b7-2b1b0ef45932/ HTTP/1.1" 200 41259 +WARNING 2025-09-08 16:21:12,949 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:12,949 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:12,986 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 16:21:17,915 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:17,915 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:21:17,924 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:17,924 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:20,063 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 302 0 +INFO 2025-09-08 16:21:20,083 basehttp 24971 6167998464 "GET /en/billing/bills/ HTTP/1.1" 200 105092 +WARNING 2025-09-08 16:21:20,100 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:20,100 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:20,152 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:21:20,155 basehttp 24971 6184824832 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:21:44,032 basehttp 24971 6184824832 "GET /en/billing/bills/ HTTP/1.1" 200 104609 +WARNING 2025-09-08 16:21:44,045 log 24971 6184824832 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:44,046 basehttp 24971 6184824832 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:44,111 basehttp 24971 6184824832 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:21:44,111 basehttp 24971 6167998464 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +WARNING 2025-09-08 16:21:45,034 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:45,034 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +WARNING 2025-09-08 16:21:45,043 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:45,043 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:46,182 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 200 35816 +WARNING 2025-09-08 16:21:46,199 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:21:46,199 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:21:46,257 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:22:46,314 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:23:29,474 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 200 35951 +WARNING 2025-09-08 16:23:29,489 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:23:29,489 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:23:29,537 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:23:54,043 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 200 35945 +WARNING 2025-09-08 16:23:54,054 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:23:54,054 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:23:54,104 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:24:37,021 basehttp 24971 6167998464 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 200 18068 +WARNING 2025-09-08 16:24:37,036 log 24971 6167998464 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:24:37,036 basehttp 24971 6167998464 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:29:37,883 basehttp 24971 6201651200 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 200 35945 +WARNING 2025-09-08 16:29:37,902 log 24971 6201651200 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:29:37,902 basehttp 24971 6201651200 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:29:37,946 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:30:30,975 basehttp 24971 6201651200 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 200 35934 +WARNING 2025-09-08 16:30:30,991 log 24971 6201651200 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:30:30,991 basehttp 24971 6201651200 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:30:31,038 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:30:46,877 basehttp 24971 6201651200 "GET /en/billing/payments/84b10e1c-c6f4-4bdb-b0ea-8277bcd3d2c4/receipt/ HTTP/1.1" 200 35916 +WARNING 2025-09-08 16:30:46,893 log 24971 6201651200 Not Found: /.well-known/appspecific/com.chrome.devtools.json +WARNING 2025-09-08 16:30:46,893 basehttp 24971 6201651200 "GET /.well-known/appspecific/com.chrome.devtools.json HTTP/1.1" 404 2668 +INFO 2025-09-08 16:30:46,925 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:31:46,928 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:32:46,929 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:33:46,929 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:34:46,934 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:35:46,930 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:36:46,931 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4630 +INFO 2025-09-08 16:37:46,932 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4685 +INFO 2025-09-08 16:38:46,934 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 16:39:46,935 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 16:40:46,936 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 16:41:47,623 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 16:42:49,622 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 16:43:50,616 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 16:44:52,610 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 16:46:20,083 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:47:20,083 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:48:20,084 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:49:20,086 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:50:20,087 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:51:04,894 basehttp 24971 6167998464 "GET /en/billing/bills/93e82992-ddb6-4921-bf90-b97dbba2e900/ HTTP/1.1" 200 42775 +INFO 2025-09-08 16:51:04,932 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:51:34,227 basehttp 24971 6167998464 "GET /en/billing/payments/4e950fed-6534-4498-b8b6-af59dac764b9/ HTTP/1.1" 200 32642 +INFO 2025-09-08 16:51:34,263 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:51:37,961 basehttp 24971 6167998464 "GET /en/billing/payments/4e950fed-6534-4498-b8b6-af59dac764b9/receipt/ HTTP/1.1" 200 35582 +INFO 2025-09-08 16:51:37,999 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:52:04,937 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:52:07,261 basehttp 24971 6167998464 "GET /en/billing/claims/6964e4e5-a4c0-4026-b814-8f6da87cda61/ HTTP/1.1" 200 43103 +INFO 2025-09-08 16:52:07,299 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:52:19,357 basehttp 24971 6167998464 "GET /en/billing/claims/6964e4e5-a4c0-4026-b814-8f6da87cda61/appeal HTTP/1.1" 302 0 +INFO 2025-09-08 16:52:19,373 basehttp 24971 6167998464 "GET /en/billing/claims/6964e4e5-a4c0-4026-b814-8f6da87cda61/ HTTP/1.1" 200 41877 +INFO 2025-09-08 16:52:19,412 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:52:36,687 basehttp 24971 6167998464 "GET /en/billing/claims/6964e4e5-a4c0-4026-b814-8f6da87cda61/ HTTP/1.1" 200 41172 +INFO 2025-09-08 16:52:48,239 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:52:48,244 basehttp 24971 6184824832 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:53:48,233 basehttp 24971 6184824832 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:53:48,235 basehttp 24971 6167998464 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:54:48,244 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:54:48,248 basehttp 24971 6184824832 "GET /en/billing/stats/bills/ HTTP/1.1" 200 4949 +INFO 2025-09-08 16:55:36,814 basehttp 24971 6184824832 "GET / HTTP/1.1" 302 0 +INFO 2025-09-08 16:55:36,829 basehttp 24971 6167998464 "GET /en/ HTTP/1.1" 200 50098 +INFO 2025-09-08 16:55:36,893 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:55:36,897 basehttp 24971 6218477568 "GET /en/htmx/tenant-info/ HTTP/1.1" 200 1095 +INFO 2025-09-08 16:55:36,897 basehttp 24971 6201651200 "GET /en/htmx/system-health/ HTTP/1.1" 200 1356 +INFO 2025-09-08 16:55:36,899 basehttp 24971 6184824832 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 16:56:06,886 basehttp 24971 6184824832 "GET /en/htmx/dashboard-stats/ HTTP/1.1" 200 2094 +INFO 2025-09-08 16:56:16,614 basehttp 24971 6184824832 "GET /en/patients/ HTTP/1.1" 200 139645 +INFO 2025-09-08 16:56:16,647 basehttp 24971 6184824832 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:56:16,651 basehttp 24971 6201651200 "GET /en/patients/patient-stats/ HTTP/1.1" 200 12305 +INFO 2025-09-08 16:56:38,858 basehttp 24971 6201651200 "GET /en/patients/patientprofile/44/details/ HTTP/1.1" 200 32493 +INFO 2025-09-08 16:56:38,895 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:56:44,577 basehttp 24971 6201651200 "GET /en/appointments/requests/create/?patient=44 HTTP/1.1" 200 54220 +INFO 2025-09-08 16:56:44,613 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:56:47,639 basehttp 24971 6201651200 "GET /en/emr/encounters/create/?patient=44 HTTP/1.1" 200 56194 +INFO 2025-09-08 16:56:47,679 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:57:47,690 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:58:47,692 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 16:59:47,691 basehttp 24971 6201651200 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:00:47,668 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:01:47,669 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:02:47,660 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:03:21,229 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:03:32,281 basehttp 24971 6167998464 "GET /en/laboratory/orders/create/?patient=44 HTTP/1.1" 200 36909 +INFO 2025-09-08 17:03:32,304 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:03:50,996 basehttp 24971 6167998464 "GET /en/laboratory/orders/create/?patient=44 HTTP/1.1" 200 36909 +INFO 2025-09-08 17:03:51,033 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 17:04:07,344 log 24971 6167998464 Internal Server Error: /en/patients/emergency-contacts/create/44/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'patient_detail' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/patientprofile/(?P[0-9]+)/details/\\Z'] +ERROR 2025-09-08 17:04:07,345 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 500 181584 +INFO 2025-09-08 17:04:16,576 basehttp 24971 6167998464 "GET /en/patients/insurance-info/create/44/?patient=44 HTTP/1.1" 200 40552 +WARNING 2025-09-08 17:04:16,588 basehttp 24971 6167998464 "GET /static/assets/plugins/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css HTTP/1.1" 404 2146 +WARNING 2025-09-08 17:04:16,590 basehttp 24971 6184824832 "GET /static/assets/plugins/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js HTTP/1.1" 404 2140 +INFO 2025-09-08 17:04:16,611 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:05:16,622 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:06:16,626 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:07:16,617 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:08:16,624 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:09:16,614 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:10:16,620 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:11:16,616 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:12:16,624 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:13:16,613 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:13:33,862 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 17:13:47,149 log 24971 6167998464 Not Found: /en/patients/insurance-info/44/ +WARNING 2025-09-08 17:13:47,149 basehttp 24971 6167998464 "GET /en/patients/insurance-info/44/ HTTP/1.1" 404 26043 +INFO 2025-09-08 17:14:24,756 basehttp 24971 6167998464 "GET /en/pharmacy/prescriptions/create/?patient=44 HTTP/1.1" 200 71298 +INFO 2025-09-08 17:14:24,795 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:15:24,809 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:16:14,046 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:16:18,376 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/44/?patient=44 HTTP/1.1" 200 145 +ERROR 2025-09-08 17:16:23,147 log 24971 6167998464 Internal Server Error: /en/patients/emergency-contacts/create/44/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'patient_detail' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/patientprofile/(?P[0-9]+)/details/\\Z'] +ERROR 2025-09-08 17:16:23,148 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 500 181584 +ERROR 2025-09-08 17:17:42,037 log 24971 6167998464 Internal Server Error: /en/patients/emergency-contacts/create/44/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'patient_detail' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/patientprofile/(?P[0-9]+)/details/\\Z'] +ERROR 2025-09-08 17:17:42,038 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 500 181721 +ERROR 2025-09-08 17:20:09,610 log 24971 6167998464 Internal Server Error: /en/patients/emergency-contacts/create/44/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'patient_detail' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/patientprofile/(?P[0-9]+)/details/\\Z'] +ERROR 2025-09-08 17:20:09,611 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 500 181552 +INFO 2025-09-08 17:20:24,730 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 200 35248 +INFO 2025-09-08 17:20:24,766 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:21:24,781 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:22:24,779 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:23:24,773 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:24:06,408 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 200 35248 +INFO 2025-09-08 17:24:06,439 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:24:31,249 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 200 35248 +INFO 2025-09-08 17:24:31,286 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:24:37,879 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 200 35248 +INFO 2025-09-08 17:24:37,907 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:24:46,278 basehttp 24971 6167998464 "GET /en/patients/emergency-contacts/create/44/ HTTP/1.1" 200 35248 +INFO 2025-09-08 17:24:46,305 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:25:03,130 basehttp 24971 6167998464 "GET /en/patients/ HTTP/1.1" 200 139645 +INFO 2025-09-08 17:25:03,179 basehttp 24971 6167998464 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:25:03,182 basehttp 24971 6184824832 "GET /en/patients/patient-stats/ HTTP/1.1" 200 12305 +INFO 2025-09-08 17:25:07,803 basehttp 24971 6184824832 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 32482 +INFO 2025-09-08 17:25:07,841 basehttp 24971 6184824832 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:25:12,401 basehttp 24971 6184824832 "GET /en/patients/emergency-contacts/40/?patient=40 HTTP/1.1" 200 145 +INFO 2025-09-08 17:27:47,151 autoreload 24971 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:27:47,526 autoreload 56170 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:27:48,371 basehttp 56170 6193836032 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33409 +INFO 2025-09-08 17:27:48,411 basehttp 56170 6193836032 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:27:49,981 basehttp 56170 6193836032 "GET /en/patients/emergency-contacts/40/?patient=40 HTTP/1.1" 200 145 +INFO 2025-09-08 17:28:30,960 basehttp 56170 6193836032 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 200 145 +INFO 2025-09-08 17:28:48,416 basehttp 56170 6193836032 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:29:48,410 basehttp 56170 6193836032 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:30:48,423 basehttp 56170 6193836032 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:30:51,734 autoreload 56170 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:30:52,096 autoreload 57552 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:30:59,052 basehttp 57552 6169423872 "GET /en/patients/emergency-contacts/40/?patient=40 HTTP/1.1" 200 145 +INFO 2025-09-08 17:32:25,845 autoreload 57552 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:32:26,179 autoreload 58243 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:32:29,003 basehttp 58243 6201585664 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:32:29,593 basehttp 58243 6201585664 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33412 +INFO 2025-09-08 17:32:29,631 basehttp 58243 6201585664 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:32:33,311 basehttp 58243 6201585664 "GET /en/patients/emergency-contacts/40/?patient_id=40 HTTP/1.1" 200 145 +INFO 2025-09-08 17:34:06,305 autoreload 58243 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:34:06,654 autoreload 58941 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:34:08,872 basehttp 58941 6127005696 "GET /en/patients/emergency-contacts/40/?patient_id=40 HTTP/1.1" 200 145 +INFO 2025-09-08 17:34:09,780 basehttp 58941 6127005696 "GET /en/patients/emergency-contacts/40/?patient_id=40 HTTP/1.1" 200 145 +INFO 2025-09-08 17:34:45,364 autoreload 58941 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:34:45,755 autoreload 59253 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:34:46,684 basehttp 59253 6192918528 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 17:34:46,725 basehttp 59253 6192918528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:34:48,488 basehttp 59253 6192918528 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 200 145 +INFO 2025-09-08 17:35:45,182 basehttp 59253 6192918528 "GET /en/patients/emergency-contacts/create/40/ HTTP/1.1" 200 35248 +INFO 2025-09-08 17:35:45,221 basehttp 59253 6192918528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:36:45,233 basehttp 59253 6192918528 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4630 +INFO 2025-09-08 17:37:09,855 autoreload 59253 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 17:37:10,215 autoreload 60353 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:37:11,100 basehttp 60353 6136967168 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4630 +INFO 2025-09-08 17:37:11,742 basehttp 60353 6136967168 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 17:37:11,782 basehttp 60353 6136967168 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4630 +INFO 2025-09-08 17:37:13,317 basehttp 60353 6136967168 "GET /en/patients/emergency-contacts/create/40/ HTTP/1.1" 200 35248 +INFO 2025-09-08 17:37:13,354 basehttp 60353 6136967168 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4630 +INFO 2025-09-08 17:37:20,687 basehttp 60353 6136967168 "GET /en/patients/emergency-contacts/create/40/ HTTP/1.1" 200 35248 +INFO 2025-09-08 17:37:20,734 basehttp 60353 6136967168 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4685 +INFO 2025-09-08 17:37:30,258 basehttp 60353 6136967168 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 200 145 +INFO 2025-09-08 17:38:11,799 basehttp 60353 6136967168 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4685 +INFO 2025-09-08 17:39:11,795 basehttp 60353 6136967168 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:40:11,794 basehttp 60353 6136967168 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:41:11,793 basehttp 60353 6136967168 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:41:26,166 autoreload 60353 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:41:26,503 autoreload 62219 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:41:50,652 autoreload 62219 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/forms.py changed, reloading. +INFO 2025-09-08 17:41:51,011 autoreload 62390 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:41:52,047 basehttp 62390 6131019776 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 17:41:52,090 basehttp 62390 6131019776 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +ERROR 2025-09-08 17:41:54,674 log 62390 6131019776 Internal Server Error: /en/patients/emergency-contacts/create/40/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py", line 358, in dispatch + return super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/mixins.py", line 73, in dispatch + return super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/mixins.py", line 109, in dispatch + return super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 144, in dispatch + return handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/edit.py", line 178, in get + return super().get(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/patients/views.py", line 370, in get_context_data + ctx = super().get_context_data(**kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/edit.py", line 37, in get_form + return form_class(**self.get_form_kwargs()) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/patients/forms.py", line 107, in __init__ + self.fields['patient'].queryset = PatientProfile.objects.filter( + ~~~~~~~~~~~^^^^^^^^^^^ +KeyError: 'patient' +ERROR 2025-09-08 17:41:54,676 basehttp 62390 6131019776 "GET /en/patients/emergency-contacts/create/40/ HTTP/1.1" 500 112424 +INFO 2025-09-08 17:42:14,177 autoreload 62390 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/forms.py changed, reloading. +INFO 2025-09-08 17:42:14,575 autoreload 62635 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:42:31,429 autoreload 62635 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/forms.py changed, reloading. +INFO 2025-09-08 17:42:31,769 autoreload 62724 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:42:33,661 basehttp 62724 6164623360 "GET /en/patients/emergency-contacts/create/40/ HTTP/1.1" 200 35325 +INFO 2025-09-08 17:42:33,697 basehttp 62724 6164623360 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:42:51,490 basehttp 62724 6164623360 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 200 145 +INFO 2025-09-08 17:44:01,692 autoreload 62724 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:44:02,055 autoreload 63410 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:44:03,020 basehttp 63410 6171160576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:44:03,510 basehttp 63410 6171160576 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 17:44:03,545 basehttp 63410 6171160576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:44:06,270 basehttp 63410 6171160576 "GET /en/patients/insurance-info/40/ HTTP/1.1" 200 36138 +INFO 2025-09-08 17:44:06,310 basehttp 63410 6171160576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:44:26,459 basehttp 63410 6171160576 "GET /en/patients/insurance-info/create/40/?patient=40 HTTP/1.1" 200 40552 +WARNING 2025-09-08 17:44:26,467 basehttp 63410 6171160576 "GET /static/assets/plugins/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css HTTP/1.1" 404 2146 +WARNING 2025-09-08 17:44:26,468 basehttp 63410 12901707776 "GET /static/assets/plugins/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js HTTP/1.1" 404 2140 +INFO 2025-09-08 17:44:26,497 basehttp 63410 6171160576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:45:26,499 basehttp 63410 6171160576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 17:46:26,505 basehttp 63410 6171160576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:46:49,980 autoreload 63410 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/forms.py changed, reloading. +INFO 2025-09-08 17:46:50,326 autoreload 64664 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:47:26,583 basehttp 64664 6165245952 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:47:58,403 autoreload 64664 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:47:58,743 autoreload 65131 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:47:59,378 basehttp 65131 6163066880 "GET /en/patients/insurance-info/create/40/?patient=40 HTTP/1.1" 200 37323 +WARNING 2025-09-08 17:47:59,392 basehttp 65131 6179893248 "GET /static/assets/plugins/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js HTTP/1.1" 404 2140 +WARNING 2025-09-08 17:47:59,393 basehttp 65131 6163066880 "GET /static/assets/plugins/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css HTTP/1.1" 404 2146 +INFO 2025-09-08 17:47:59,423 basehttp 65131 6163066880 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:48:48,732 basehttp 65131 6163066880 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:48:49,382 basehttp 65131 6163066880 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 17:48:49,421 basehttp 65131 6163066880 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:48:51,432 basehttp 65131 6163066880 "GET /en/patients/insurance-info/create/40/?patient=40 HTTP/1.1" 200 37323 +WARNING 2025-09-08 17:48:51,446 basehttp 65131 6179893248 "GET /static/assets/plugins/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js HTTP/1.1" 404 2140 +WARNING 2025-09-08 17:48:51,447 basehttp 65131 6163066880 "GET /static/assets/plugins/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css HTTP/1.1" 404 2146 +INFO 2025-09-08 17:48:51,472 basehttp 65131 6163066880 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:49:24,886 basehttp 65131 6163066880 "GET /en/patients/insurance-info/create/40/?patient=40 HTTP/1.1" 200 37323 +WARNING 2025-09-08 17:49:24,896 basehttp 65131 6163066880 "GET /static/assets/plugins/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css HTTP/1.1" 404 2146 +WARNING 2025-09-08 17:49:24,896 basehttp 65131 6325039104 "GET /static/assets/plugins/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js HTTP/1.1" 404 2140 +INFO 2025-09-08 17:49:24,927 basehttp 65131 6163066880 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:49:27,134 basehttp 65131 6163066880 "GET /en/patients/emergency-contacts/create/40/ HTTP/1.1" 200 35311 +INFO 2025-09-08 17:49:27,171 basehttp 65131 6163066880 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:49:58,380 basehttp 65131 6163066880 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:50:06,593 basehttp 65131 6163066880 "GET /en/patients/insurance-info/40/ HTTP/1.1" 200 36138 +INFO 2025-09-08 17:50:06,630 basehttp 65131 6163066880 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:50:16,047 basehttp 65131 6163066880 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 200 145 +INFO 2025-09-08 17:51:24,419 autoreload 65131 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:51:24,773 autoreload 66664 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:51:27,073 basehttp 66664 6126284800 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 200 145 +INFO 2025-09-08 17:51:27,958 basehttp 66664 6126284800 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:51:28,679 basehttp 66664 6126284800 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 17:51:28,720 basehttp 66664 6126284800 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:51:33,922 basehttp 66664 6126284800 "GET /en/patients/insurance-info/40/ HTTP/1.1" 200 36138 +INFO 2025-09-08 17:51:33,961 basehttp 66664 6126284800 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:52:28,725 basehttp 66664 6126284800 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:53:21,776 autoreload 66664 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:53:22,169 autoreload 67518 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:53:22,522 basehttp 67518 6132527104 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 17:53:22,565 basehttp 67518 6132527104 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:53:23,792 basehttp 67518 6132527104 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 200 145 +INFO 2025-09-08 17:54:22,576 basehttp 67518 6132527104 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:55:02,487 autoreload 67518 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 17:55:02,854 autoreload 68291 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:55:03,946 basehttp 68291 6132527104 "GET /en/patients/insurance-info/40/ HTTP/1.1" 200 36138 +INFO 2025-09-08 17:55:03,988 basehttp 68291 6132527104 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:55:07,830 basehttp 68291 6132527104 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33406 +INFO 2025-09-08 17:55:07,862 basehttp 68291 6132527104 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 17:55:12,488 autoreload 68291 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 17:55:12,838 autoreload 68383 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 17:55:51,518 basehttp 68383 6155579392 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 200 145 +ERROR 2025-09-08 17:55:57,129 log 68383 6155579392 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with no arguments not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/(?P[0-9]+)/\\Z'] +ERROR 2025-09-08 17:55:57,130 basehttp 68383 6155579392 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 232066 +ERROR 2025-09-08 17:56:26,744 log 68383 6155579392 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/(?P[0-9]+)/\\Z'] +ERROR 2025-09-08 17:56:26,745 basehttp 68383 6155579392 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 233784 +INFO 2025-09-08 17:59:20,818 autoreload 68383 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 17:59:21,149 autoreload 70213 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 17:59:23,586 log 70213 6157365248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/(?P[0-9]+)/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 17:59:23,587 basehttp 70213 6157365248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 233784 +INFO 2025-09-08 17:59:49,634 autoreload 70213 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 17:59:50,048 autoreload 70451 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 17:59:50,484 log 70451 6156824576 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/mixins.py", line 73, in dispatch + return super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 144, in dispatch + return handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/list.py", line 158, in get + self.object_list = self.get_queryset() + ^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py", line 290, in get_queryset + print("there is patient id= "+patient_id) + ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ +TypeError: can only concatenate str (not "NoneType") to str +ERROR 2025-09-08 17:59:50,485 basehttp 70451 6156824576 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 87422 +INFO 2025-09-08 18:00:14,201 autoreload 70451 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 18:00:14,572 autoreload 70612 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 18:00:16,520 log 70612 13321187328 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view + return self.dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/mixins.py", line 73, in dispatch + return super().dispatch(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/base.py", line 144, in dispatch + return handler(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/views/generic/list.py", line 158, in get + self.object_list = self.get_queryset() + ^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py", line 303, in get_queryset + return queryset.order_by('patient__last_name', '-is_primary', 'name') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 1722, in order_by + obj.query.add_ordering(*field_names) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 2305, in add_ordering + self.names_to_path(item.split(LOOKUP_SEP), self.model._meta) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path + raise FieldError( +django.core.exceptions.FieldError: Cannot resolve keyword 'name' into field. Choices are: address_line_1, address_line_2, authorization_number, city, created_at, email, first_name, id, is_active, is_authorized_for_financial_decisions, is_authorized_for_information, is_authorized_for_medical_decisions, is_primary, last_name, mobile_number, notes, patient, patient_id, phone_number, priority, relationship, state, updated_at, zip_code +ERROR 2025-09-08 18:00:16,523 basehttp 70612 13321187328 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 107612 +INFO 2025-09-08 18:00:55,416 autoreload 70612 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 18:00:55,793 autoreload 70929 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 18:00:56,754 log 70929 6156054528 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/(?P[0-9]+)/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:00:56,755 basehttp 70929 6156054528 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 231569 +WARNING 2025-09-08 18:01:09,097 log 70929 6156054528 Not Found: /en/patients/emergency-contacts/40/ +WARNING 2025-09-08 18:01:09,097 basehttp 70929 6156054528 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 404 43715 +ERROR 2025-09-08 18:01:12,027 log 70929 6156054528 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/(?P[0-9]+)/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:01:12,029 basehttp 70929 6156054528 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 231569 +ERROR 2025-09-08 18:01:13,744 log 70929 6156054528 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/(?P[0-9]+)/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:01:13,745 basehttp 70929 6156054528 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 231569 +INFO 2025-09-08 18:03:41,034 autoreload 70929 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 18:03:41,391 autoreload 72156 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 18:03:46,662 log 72156 6200553472 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:03:46,663 basehttp 72156 6200553472 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 230031 +ERROR 2025-09-08 18:03:50,283 log 72156 6200553472 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:03:50,284 basehttp 72156 6200553472 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 230031 +ERROR 2025-09-08 18:07:44,925 log 72156 6200553472 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:07:44,926 basehttp 72156 6200553472 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 230031 +ERROR 2025-09-08 18:07:46,119 log 72156 6200553472 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:07:46,120 basehttp 72156 6200553472 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 230031 +ERROR 2025-09-08 18:22:27,070 log 72156 6200553472 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:22:27,073 basehttp 72156 6200553472 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 229977 +ERROR 2025-09-08 18:23:34,344 log 72156 6200553472 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:23:34,347 basehttp 72156 6200553472 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 230166 +INFO 2025-09-08 18:24:19,690 autoreload 72156 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 18:24:20,113 autoreload 81224 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 18:24:22,207 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:24:22,219 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 232248 +ERROR 2025-09-08 18:24:22,925 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:24:22,928 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 232248 +ERROR 2025-09-08 18:24:58,927 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:24:58,928 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 232248 +ERROR 2025-09-08 18:25:13,410 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:25:13,411 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 232304 +ERROR 2025-09-08 18:25:35,052 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:25:35,054 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 232248 +ERROR 2025-09-08 18:26:09,008 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:26:09,009 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 232248 +ERROR 2025-09-08 18:26:09,923 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:26:09,925 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 232248 +ERROR 2025-09-08 18:26:32,226 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_list_api' not found. 'emergency_contact_list_api' is not a valid view function or pattern name. +ERROR 2025-09-08 18:26:32,227 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 233902 +ERROR 2025-09-08 18:35:24,555 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'patient_list_api' not found. 'patient_list_api' is not a valid view function or pattern name. +ERROR 2025-09-08 18:35:24,558 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 233888 +ERROR 2025-09-08 18:38:10,682 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_stats' not found. 'emergency_contact_stats' is not a valid view function or pattern name. +ERROR 2025-09-08 18:38:10,687 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 234231 +ERROR 2025-09-08 18:40:50,049 log 81224 6165557248 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_detail' not found. 'emergency_contact_detail' is not a valid view function or pattern name. +ERROR 2025-09-08 18:40:50,051 basehttp 81224 6165557248 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 234943 +INFO 2025-09-08 18:42:16,318 autoreload 81224 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 18:42:16,655 autoreload 89085 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 18:42:17,944 log 89085 6203420672 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_quick' not found. 'emergency_contact_quick' is not a valid view function or pattern name. +ERROR 2025-09-08 18:42:17,946 basehttp 89085 6203420672 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 234984 +ERROR 2025-09-08 18:42:20,098 log 89085 6203420672 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_quick' not found. 'emergency_contact_quick' is not a valid view function or pattern name. +ERROR 2025-09-08 18:42:20,099 basehttp 89085 6203420672 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 234984 +ERROR 2025-09-08 18:42:43,961 log 89085 6203420672 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_export' not found. 'emergency_contact_export' is not a valid view function or pattern name. +ERROR 2025-09-08 18:42:43,962 basehttp 89085 6203420672 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 235342 +ERROR 2025-09-08 18:43:04,374 log 89085 6203420672 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_bulk_delete' not found. 'emergency_contact_bulk_delete' is not a valid view function or pattern name. +ERROR 2025-09-08 18:43:04,376 basehttp 89085 6203420672 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 236665 +ERROR 2025-09-08 18:43:20,020 log 89085 6203420672 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_export' not found. 'emergency_contact_export' is not a valid view function or pattern name. +ERROR 2025-09-08 18:43:20,021 basehttp 89085 6203420672 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 238637 +INFO 2025-09-08 18:43:42,973 basehttp 89085 6203420672 "GET /en/patients/emergency-contacts/ HTTP/1.1" 200 40489 +INFO 2025-09-08 18:43:42,984 basehttp 89085 6203420672 "GET /static/plugins/datatables.net-bs5/css/dataTables.bootstrap5.min.css HTTP/1.1" 200 15096 +INFO 2025-09-08 18:43:42,984 basehttp 89085 6237073408 "GET /static/plugins/select2/dist/css/select2.min.css HTTP/1.1" 200 14966 +INFO 2025-09-08 18:43:42,985 basehttp 89085 6220247040 "GET /static/plugins/datatables.net-responsive-bs5/css/responsive.bootstrap5.min.css HTTP/1.1" 200 6044 +INFO 2025-09-08 18:43:42,988 basehttp 89085 6253899776 "GET /static/plugins/datatables.net-responsive-bs5/js/responsive.bootstrap5.min.js HTTP/1.1" 200 1796 +INFO 2025-09-08 18:43:42,989 basehttp 89085 6203420672 "GET /static/plugins/datatables.net-responsive/js/dataTables.responsive.min.js HTTP/1.1" 200 16086 +INFO 2025-09-08 18:43:42,989 basehttp 89085 6237073408 "GET /static/plugins/datatables.net-bs5/js/dataTables.bootstrap5.min.js HTTP/1.1" 200 1470 +INFO 2025-09-08 18:43:42,990 basehttp 89085 6270726144 "GET /static/plugins/select2/dist/js/select2.min.js HTTP/1.1" 200 70851 +INFO 2025-09-08 18:43:42,990 basehttp 89085 6220247040 "GET /static/plugins/datatables.net/js/dataTables.min.js HTTP/1.1" 200 95735 +INFO 2025-09-08 18:43:43,011 basehttp 89085 6220247040 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +WARNING 2025-09-08 18:43:43,042 log 89085 6220247040 Not Found: /en/patients//emergency-contacts/ +WARNING 2025-09-08 18:43:43,042 basehttp 89085 6220247040 "GET /en/patients//emergency-contacts/?draw=1&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=false&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=full_name&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=patient_name&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=relationship&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=priority&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=phone_number&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=true&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=email&columns%5B6%5D%5Bname%5D=&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=true&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B7%5D%5Bdata%5D=can_contact&columns%5B7%5D%5Bname%5D=&columns%5B7%5D%5Bsearchable%5D=true&columns%5B7%5D%5Borderable%5D=true&columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B8%5D%5Bdata%5D=id&columns%5B8%5D%5Bname%5D=&columns%5B8%5D%5Bsearchable%5D=true&columns%5B8%5D%5Borderable%5D=false&columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=2&order%5B0%5D%5Bdir%5D=asc&order%5B0%5D%5Bname%5D=&order%5B1%5D%5Bcolumn%5D=3&order%5B1%5D%5Bdir%5D=asc&order%5B1%5D%5Bname%5D=&start=0&length=25&search%5Bvalue%5D=&search%5Bregex%5D=false&search_value=&relationship=&priority=&patient=&_=1757346222991 HTTP/1.1" 404 46173 +INFO 2025-09-08 18:43:43,057 basehttp 89085 6270726144 "GET /en/patients/?format=select HTTP/1.1" 200 139645 +INFO 2025-09-08 18:44:40,977 autoreload 89085 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 18:44:41,358 autoreload 90182 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 18:44:43,082 basehttp 90182 6158839808 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 18:44:44,276 basehttp 90182 6158839808 "GET /en/patients/emergency-contacts/ HTTP/1.1" 200 40489 +WARNING 2025-09-08 18:44:44,337 log 90182 12901707776 Not Found: /en/patients//emergency-contacts/ +WARNING 2025-09-08 18:44:44,337 basehttp 90182 12901707776 "GET /en/patients//emergency-contacts/?draw=1&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=false&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=full_name&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=patient_name&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=relationship&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=priority&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=phone_number&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=true&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=email&columns%5B6%5D%5Bname%5D=&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=true&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B7%5D%5Bdata%5D=can_contact&columns%5B7%5D%5Bname%5D=&columns%5B7%5D%5Bsearchable%5D=true&columns%5B7%5D%5Borderable%5D=true&columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B8%5D%5Bdata%5D=id&columns%5B8%5D%5Bname%5D=&columns%5B8%5D%5Bsearchable%5D=true&columns%5B8%5D%5Borderable%5D=false&columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=2&order%5B0%5D%5Bdir%5D=asc&order%5B0%5D%5Bname%5D=&order%5B1%5D%5Bcolumn%5D=3&order%5B1%5D%5Bdir%5D=asc&order%5B1%5D%5Bname%5D=&start=0&length=25&search%5Bvalue%5D=&search%5Bregex%5D=false&search_value=&relationship=&priority=&patient=&_=1757346284286 HTTP/1.1" 404 46173 +INFO 2025-09-08 18:44:44,340 basehttp 90182 6158839808 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 18:44:44,355 basehttp 90182 12918534144 "GET /en/patients/?format=select HTTP/1.1" 200 139645 +INFO 2025-09-08 18:45:44,330 basehttp 90182 12918534144 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 18:46:44,320 basehttp 90182 12918534144 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:47:28,488 autoreload 90182 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 18:47:28,829 autoreload 91428 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 18:47:30,850 log 91428 6191853568 Internal Server Error: /en/patients/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contacts_list' not found. 'emergency_contacts_list' is not a valid view function or pattern name. +ERROR 2025-09-08 18:47:30,852 basehttp 91428 6191853568 "GET /en/patients/emergency-contacts/ HTTP/1.1" 500 237244 +INFO 2025-09-08 18:48:09,893 basehttp 91428 6191853568 "GET /en/patients/emergency-contacts/ HTTP/1.1" 200 40489 +INFO 2025-09-08 18:48:09,937 basehttp 91428 6191853568 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 18:48:09,957 log 91428 6191853568 Not Found: /en/patients//emergency-contacts/ +WARNING 2025-09-08 18:48:09,957 basehttp 91428 6191853568 "GET /en/patients//emergency-contacts/?draw=1&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=false&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=full_name&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=patient_name&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=relationship&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=priority&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=phone_number&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=true&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=email&columns%5B6%5D%5Bname%5D=&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=true&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B7%5D%5Bdata%5D=can_contact&columns%5B7%5D%5Bname%5D=&columns%5B7%5D%5Bsearchable%5D=true&columns%5B7%5D%5Borderable%5D=true&columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B8%5D%5Bdata%5D=id&columns%5B8%5D%5Bname%5D=&columns%5B8%5D%5Bsearchable%5D=true&columns%5B8%5D%5Borderable%5D=false&columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=2&order%5B0%5D%5Bdir%5D=asc&order%5B0%5D%5Bname%5D=&order%5B1%5D%5Bcolumn%5D=3&order%5B1%5D%5Bdir%5D=asc&order%5B1%5D%5Bname%5D=&start=0&length=25&search%5Bvalue%5D=&search%5Bregex%5D=false&search_value=&relationship=&priority=&patient=&_=1757346489910 HTTP/1.1" 404 46171 +INFO 2025-09-08 18:48:09,974 basehttp 91428 6208679936 "GET /en/patients/?format=select HTTP/1.1" 200 139645 +INFO 2025-09-08 18:49:09,948 basehttp 91428 6208679936 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:50:09,951 basehttp 91428 6208679936 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:51:09,951 basehttp 91428 6208679936 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:52:09,946 basehttp 91428 6208679936 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 18:52:42,727 log 91428 6208679936 Not Found: /en/patients/emergency-contacts/40/ +WARNING 2025-09-08 18:52:42,727 basehttp 91428 6208679936 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 404 43687 +ERROR 2025-09-08 18:53:13,957 log 91428 6208679936 Internal Server Error: /en/patients/patientprofile/40/details/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contact_create' with arguments '(40,)' not found. 1 pattern(s) tried: ['en/patients/emergency\\-contacts/create/\\Z'] +ERROR 2025-09-08 18:53:13,958 basehttp 91428 6208679936 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 500 188155 +INFO 2025-09-08 18:55:49,432 autoreload 91428 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 18:55:49,798 autoreload 95020 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 18:55:50,838 basehttp 95020 6166949888 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 18:55:50,878 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:55:54,265 basehttp 95020 6166949888 "GET /en/patients/40/emergency-contacts/create/ HTTP/1.1" 200 35311 +INFO 2025-09-08 18:55:54,299 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:56:01,624 basehttp 95020 6166949888 "GET /en/patients/40/emergency-contacts/create/ HTTP/1.1" 200 35311 +INFO 2025-09-08 18:56:01,659 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:56:21,400 basehttp 95020 6166949888 "GET /en/patients/insurance-info/create/40/?patient=40 HTTP/1.1" 200 37323 +WARNING 2025-09-08 18:56:21,408 basehttp 95020 13170143232 "GET /static/assets/plugins/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js HTTP/1.1" 404 2140 +WARNING 2025-09-08 18:56:21,409 basehttp 95020 6166949888 "GET /static/assets/plugins/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css HTTP/1.1" 404 2146 +INFO 2025-09-08 18:56:21,436 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:56:50,891 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:57:50,894 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:58:50,895 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 18:59:50,897 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:00:50,900 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:01:29,781 basehttp 95020 6166949888 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:01:29,819 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:02:29,829 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:03:29,834 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:04:29,836 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:05:29,836 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:06:29,846 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:07:29,838 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:08:29,839 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:09:29,841 basehttp 95020 6166949888 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:10:29,628 autoreload 95020 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:10:29,952 autoreload 2012 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 19:10:30,818 basehttp 2012 6190510080 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:10:30,869 basehttp 2012 6190510080 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 19:10:32,390 log 2012 6190510080 Internal Server Error: /en/patients/40/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:10:32,390 basehttp 2012 6190510080 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 500 68738 +INFO 2025-09-08 19:12:43,735 autoreload 2012 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:12:44,099 autoreload 2933 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 19:12:46,826 log 2933 6160543744 Internal Server Error: /en/patients/40/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:12:46,827 basehttp 2933 6160543744 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 500 68875 +INFO 2025-09-08 19:15:01,757 autoreload 2933 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:15:02,191 autoreload 4028 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 19:15:04,131 log 4028 6197571584 Internal Server Error: /en/patients/40/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:15:04,131 basehttp 4028 6197571584 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 500 68875 +INFO 2025-09-08 19:16:05,086 autoreload 4028 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:16:05,467 autoreload 4515 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 19:20:02,985 autoreload 4515 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:20:03,384 autoreload 6213 8747049152 Watching for file changes with StatReloader +ERROR 2025-09-08 19:20:04,587 log 6213 6122549248 Internal Server Error: /en/patients/40/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:20:04,588 basehttp 6213 6122549248 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 500 68875 +ERROR 2025-09-08 19:20:05,533 log 6213 6122549248 Internal Server Error: /en/patients/40/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:20:05,533 basehttp 6213 6122549248 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 500 68875 +INFO 2025-09-08 19:22:36,691 autoreload 6213 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:22:49,166 autoreload 7459 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 19:22:53,920 basehttp 7459 6126858240 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:22:53,950 basehttp 7459 6126858240 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:22:54,715 basehttp 7459 6126858240 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:22:54,741 basehttp 7459 6126858240 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 19:22:59,742 log 7459 6126858240 Internal Server Error: /en/patients/40/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:22:59,743 basehttp 7459 6126858240 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 500 68738 +INFO 2025-09-08 19:23:54,755 basehttp 7459 6126858240 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 19:24:28,699 log 7459 6126858240 Internal Server Error: /en/patients/patientprofile/40/details/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contacts_list_api' with arguments '(UUID('63f3983d-8905-4f1c-a6b9-49005c1d85f8'),)' not found. 1 pattern(s) tried: ['en/patients/(?P[0-9]+)/emergency\\-contacts/\\Z'] +ERROR 2025-09-08 19:24:28,700 basehttp 7459 6126858240 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 500 207265 +ERROR 2025-09-08 19:25:06,658 log 7459 6126858240 Internal Server Error: /en/patients/patientprofile/40/details/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contacts_list_api' with arguments '('',)' not found. 1 pattern(s) tried: ['en/patients/(?P[0-9]+)/emergency\\-contacts/\\Z'] +ERROR 2025-09-08 19:25:06,659 basehttp 7459 6126858240 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 500 206683 +INFO 2025-09-08 19:26:27,682 autoreload 7459 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:26:28,055 autoreload 9102 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 19:26:28,948 basehttp 9102 6132674560 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:26:28,994 basehttp 9102 6132674560 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 19:26:31,302 log 9102 6132674560 Internal Server Error: /en/patients/40/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:26:31,303 basehttp 9102 6132674560 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 500 68738 +INFO 2025-09-08 19:30:52,029 autoreload 9102 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:30:52,370 autoreload 11019 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 19:30:53,157 basehttp 11019 6124236800 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:30:53,646 basehttp 11019 6124236800 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:30:53,678 basehttp 11019 6124236800 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:30:57,219 basehttp 11019 6124236800 "GET /en/patients/40/emergency-contacts/create/ HTTP/1.1" 200 35311 +INFO 2025-09-08 19:30:57,256 basehttp 11019 6124236800 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 19:31:06,208 log 11019 6124236800 Internal Server Error: /en/patients/40/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:31:06,208 basehttp 11019 6124236800 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 500 68738 +INFO 2025-09-08 19:31:19,730 autoreload 11019 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 19:31:20,077 autoreload 11256 8747049152 Watching for file changes with StatReloader +WARNING 2025-09-08 19:31:23,146 log 11256 6165016576 Not Found: /en/patients/40/emergency-contacts/ +WARNING 2025-09-08 19:31:23,146 basehttp 11256 6165016576 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 404 43702 +INFO 2025-09-08 19:31:28,107 basehttp 11256 6165016576 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:31:28,148 basehttp 11256 6165016576 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 19:31:30,256 log 11256 6165016576 Internal Server Error: /en/patients/emergency-contacts/40/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: emergency_contacts_list() got an unexpected keyword argument 'pk' +ERROR 2025-09-08 19:31:30,257 basehttp 11256 6165016576 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 500 68738 +INFO 2025-09-08 19:32:25,986 autoreload 11256 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 19:32:26,312 autoreload 11725 8747049152 Watching for file changes with StatReloader +WARNING 2025-09-08 19:32:26,955 log 11725 6190346240 Not Found: /en/patients/emergency-contacts/40/ +WARNING 2025-09-08 19:32:26,956 basehttp 11725 6190346240 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 404 29517 +INFO 2025-09-08 19:32:31,693 basehttp 11725 6190346240 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:32:32,513 basehttp 11725 6190346240 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:32:32,546 basehttp 11725 6190346240 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 19:32:35,228 log 11725 6190346240 Not Found: /en/patients/emergency-contacts/40/ +WARNING 2025-09-08 19:32:35,228 basehttp 11725 6190346240 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 404 29517 +INFO 2025-09-08 19:32:45,333 autoreload 11725 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 19:32:45,719 autoreload 11891 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 19:32:48,276 basehttp 11891 6138032128 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:32:48,316 basehttp 11891 6138032128 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 19:32:49,601 log 11891 6138032128 Not Found: /en/patients/40/emergency-contacts/ +WARNING 2025-09-08 19:32:49,601 basehttp 11891 6138032128 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 404 29517 +WARNING 2025-09-08 19:33:26,200 log 11891 6138032128 Not Found: /en/patients/40/emergency-contacts/ +WARNING 2025-09-08 19:33:26,200 basehttp 11891 6138032128 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 404 29517 +ERROR 2025-09-08 19:33:27,667 log 11891 6138032128 Internal Server Error: /en/patients/patientprofile/40/details/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 220, in _get_response + response = response.render() + ^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 114, in render + self.content = self.rendered_content + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content + return template.render(context, self._request) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render + return self.template.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 171, in render + return self._render(context) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render + return compiled_parent._render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 163, in _render + return self.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render + result = block.nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 327, in render + return nodelist.render(context) + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated + return self.render(context) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/base.py", line 98, in reverse + resolved_url = resolver._reverse_with_prefix(view, prefix, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/urls/resolvers.py", line 831, in _reverse_with_prefix + raise NoReverseMatch(msg) +django.urls.exceptions.NoReverseMatch: Reverse for 'emergency_contacts_list_api' with arguments '(UUID('63f3983d-8905-4f1c-a6b9-49005c1d85f8'),)' not found. 1 pattern(s) tried: ['en/patients/(?P[0-9]+)/emergency\\-contacts/\\Z'] +ERROR 2025-09-08 19:33:27,668 basehttp 11891 6138032128 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 500 207441 +INFO 2025-09-08 19:33:53,636 basehttp 11891 6138032128 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:33:53,667 basehttp 11891 6138032128 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 19:33:57,100 log 11891 6138032128 Not Found: /en/patients/40/emergency-contacts/ +WARNING 2025-09-08 19:33:57,101 basehttp 11891 6138032128 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 404 29517 +INFO 2025-09-08 19:34:48,737 autoreload 11891 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 19:34:49,071 autoreload 12744 8747049152 Watching for file changes with StatReloader +WARNING 2025-09-08 19:34:50,823 log 12744 6204190720 Not Found: /en/patients/40/emergency-contacts/ +WARNING 2025-09-08 19:34:50,824 basehttp 12744 6204190720 "GET /en/patients/40/emergency-contacts/ HTTP/1.1" 404 43710 +INFO 2025-09-08 19:34:53,321 basehttp 12744 6204190720 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33398 +INFO 2025-09-08 19:34:53,353 basehttp 12744 6204190720 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:34:55,293 basehttp 12744 6204190720 "GET /en/patients/40/emergency-contacts/create/ HTTP/1.1" 200 35311 +INFO 2025-09-08 19:34:55,328 basehttp 12744 6204190720 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +WARNING 2025-09-08 19:35:00,084 log 12744 6204190720 Not Found: /en/patients/emergency-contacts/40/ +WARNING 2025-09-08 19:35:00,084 basehttp 12744 6204190720 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 404 29517 +INFO 2025-09-08 19:35:39,175 autoreload 12744 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/urls.py changed, reloading. +INFO 2025-09-08 19:35:39,544 autoreload 13136 8747049152 Watching for file changes with StatReloader +WARNING 2025-09-08 19:35:40,623 log 13136 6137360384 Not Found: /en/patients/emergency-contacts/40/ +WARNING 2025-09-08 19:35:40,623 basehttp 13136 6137360384 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 404 43711 +WARNING 2025-09-08 19:35:41,679 log 13136 6137360384 Not Found: /en/patients/emergency-contacts/40/ +WARNING 2025-09-08 19:35:41,679 basehttp 13136 6137360384 "GET /en/patients/emergency-contacts/40/ HTTP/1.1" 404 43711 +INFO 2025-09-08 19:35:43,225 basehttp 13136 6137360384 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33432 +INFO 2025-09-08 19:35:43,264 basehttp 13136 6137360384 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +ERROR 2025-09-08 19:35:49,365 log 13136 6137360384 Internal Server Error: /en/patients/63f3983d-8905-4f1c-a6b9-49005c1d85f8/emergency-contacts/ +Traceback (most recent call last): + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner + response = get_response(request) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.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/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/contrib/auth/decorators.py", line 59, in _view_wrapper + return view_func(request, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py", line 1250, in emergency_contacts_list + ).order_by('-is_primary', 'name') + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 1722, in order_by + obj.query.add_ordering(*field_names) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 2305, in add_ordering + self.names_to_path(item.split(LOOKUP_SEP), self.model._meta) + File "/Users/marwanalwali/manus_project/hospital_management_system_v4/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py", line 1806, in names_to_path + raise FieldError( +django.core.exceptions.FieldError: Cannot resolve keyword 'name' into field. Choices are: address_line_1, address_line_2, authorization_number, city, created_at, email, first_name, id, is_active, is_authorized_for_financial_decisions, is_authorized_for_information, is_authorized_for_medical_decisions, is_primary, last_name, mobile_number, notes, patient, patient_id, phone_number, priority, relationship, state, updated_at, zip_code +ERROR 2025-09-08 19:35:49,367 basehttp 13136 6137360384 "GET /en/patients/63f3983d-8905-4f1c-a6b9-49005c1d85f8/emergency-contacts/ HTTP/1.1" 500 90496 +INFO 2025-09-08 19:36:09,869 autoreload 13136 8747049152 /Users/marwanalwali/manus_project/hospital_management_system_v4/patients/views.py changed, reloading. +INFO 2025-09-08 19:36:10,250 autoreload 13400 8747049152 Watching for file changes with StatReloader +INFO 2025-09-08 19:36:12,086 basehttp 13400 6132379648 "GET /en/patients/63f3983d-8905-4f1c-a6b9-49005c1d85f8/emergency-contacts/ HTTP/1.1" 200 1075 +INFO 2025-09-08 19:36:43,332 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4630 +INFO 2025-09-08 19:37:09,665 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33150 +INFO 2025-09-08 19:37:09,693 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4630 +INFO 2025-09-08 19:37:29,838 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33150 +INFO 2025-09-08 19:37:29,873 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4685 +INFO 2025-09-08 19:37:43,889 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33150 +INFO 2025-09-08 19:37:43,927 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4685 +INFO 2025-09-08 19:38:43,931 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:38:47,263 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33168 +INFO 2025-09-08 19:38:47,290 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:39:47,293 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:40:07,797 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33124 +INFO 2025-09-08 19:40:07,834 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:41:07,853 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:42:07,839 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:42:24,914 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33242 +INFO 2025-09-08 19:42:24,948 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:42:38,550 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33236 +INFO 2025-09-08 19:42:38,577 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:43:04,952 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33254 +INFO 2025-09-08 19:43:04,982 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:43:56,294 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33263 +INFO 2025-09-08 19:43:56,322 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:44:56,337 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:45:39,345 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33699 +INFO 2025-09-08 19:45:39,376 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:46:00,476 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33706 +INFO 2025-09-08 19:46:00,503 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:46:15,227 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 33707 +INFO 2025-09-08 19:46:15,258 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4690 +INFO 2025-09-08 19:47:15,271 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:47:29,146 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 34377 +INFO 2025-09-08 19:47:29,175 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:47:42,257 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 34391 +INFO 2025-09-08 19:47:42,285 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:47:58,537 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 34136 +INFO 2025-09-08 19:47:58,567 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:48:37,051 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 34816 +INFO 2025-09-08 19:48:37,087 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:48:45,163 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 34633 +INFO 2025-09-08 19:48:45,192 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:49:19,991 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 35125 +INFO 2025-09-08 19:49:20,031 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:50:20,032 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:51:20,039 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:51:42,899 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 37032 +INFO 2025-09-08 19:51:42,935 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 +INFO 2025-09-08 19:51:58,993 basehttp 13400 6132379648 "GET /en/patients/patientprofile/40/details/ HTTP/1.1" 200 37037 +INFO 2025-09-08 19:51:59,023 basehttp 13400 6132379648 "GET /en/htmx/system-notifications/ HTTP/1.1" 200 4695 diff --git a/operating_theatre/migrations/0001_initial.py b/operating_theatre/migrations/0001_initial.py index 9fa1ec4e..20d158fb 100644 --- a/operating_theatre/migrations/0001_initial.py +++ b/operating_theatre/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion import uuid @@ -1283,7 +1283,7 @@ class Migration(migrations.Migration): models.ForeignKey( help_text="Operating surgeon", on_delete=django.db.models.deletion.CASCADE, - related_name="surgical_notes", + related_name="surgeon_surgical_notes", to=settings.AUTH_USER_MODEL, ), ), @@ -1292,7 +1292,7 @@ class Migration(migrations.Migration): models.OneToOneField( help_text="Related surgical case", on_delete=django.db.models.deletion.CASCADE, - related_name="surgical_note", + related_name="surgical_notes", to="operating_theatre.surgicalcase", ), ), diff --git a/operating_theatre/migrations/0002_alter_surgicalnote_surgeon_and_more.py b/operating_theatre/migrations/0002_alter_surgicalnote_surgeon_and_more.py deleted file mode 100644 index 181aee6b..00000000 --- a/operating_theatre/migrations/0002_alter_surgicalnote_surgeon_and_more.py +++ /dev/null @@ -1,36 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-04 15:07 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("operating_theatre", "0001_initial"), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AlterField( - model_name="surgicalnote", - name="surgeon", - field=models.ForeignKey( - help_text="Operating surgeon", - on_delete=django.db.models.deletion.CASCADE, - related_name="surgeon_surgical_notes", - to=settings.AUTH_USER_MODEL, - ), - ), - migrations.AlterField( - model_name="surgicalnote", - name="surgical_case", - field=models.OneToOneField( - help_text="Related surgical case", - on_delete=django.db.models.deletion.CASCADE, - related_name="surgical_notes", - to="operating_theatre.surgicalcase", - ), - ), - ] diff --git a/operating_theatre/migrations/__pycache__/0001_initial.cpython-312.pyc b/operating_theatre/migrations/__pycache__/0001_initial.cpython-312.pyc index 64132001..ab2f5b12 100644 Binary files a/operating_theatre/migrations/__pycache__/0001_initial.cpython-312.pyc and b/operating_theatre/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/operating_theatre/migrations/__pycache__/0002_alter_surgicalnote_surgeon_and_more.cpython-312.pyc b/operating_theatre/migrations/__pycache__/0002_alter_surgicalnote_surgeon_and_more.cpython-312.pyc deleted file mode 100644 index bc081c89..00000000 Binary files a/operating_theatre/migrations/__pycache__/0002_alter_surgicalnote_surgeon_and_more.cpython-312.pyc and /dev/null differ diff --git a/patients/__pycache__/forms.cpython-312.pyc b/patients/__pycache__/forms.cpython-312.pyc index ff06a7b2..2c2654ac 100644 Binary files a/patients/__pycache__/forms.cpython-312.pyc and b/patients/__pycache__/forms.cpython-312.pyc differ diff --git a/patients/__pycache__/urls.cpython-312.pyc b/patients/__pycache__/urls.cpython-312.pyc index 16705094..13edeea4 100644 Binary files a/patients/__pycache__/urls.cpython-312.pyc and b/patients/__pycache__/urls.cpython-312.pyc differ diff --git a/patients/__pycache__/views.cpython-312.pyc b/patients/__pycache__/views.cpython-312.pyc index 9d78f15d..bca57c21 100644 Binary files a/patients/__pycache__/views.cpython-312.pyc and b/patients/__pycache__/views.cpython-312.pyc differ diff --git a/patients/forms.py b/patients/forms.py index b649d554..acaf8ace 100644 --- a/patients/forms.py +++ b/patients/forms.py @@ -76,13 +76,14 @@ class EmergencyContactForm(forms.ModelForm): """ class Meta: model = EmergencyContact + exclude = ["patient"] fields = [ - 'patient', 'first_name', 'last_name', 'relationship', 'phone_number', + 'first_name', 'last_name', 'relationship', 'phone_number', 'mobile_number', 'email', 'address_line_1', 'address_line_2', 'city', 'state', 'zip_code', 'priority', 'is_authorized_for_medical_decisions' ] widgets = { - 'patient': forms.Select(attrs={'class': 'form-select'}), + # 'patient': forms.Select(attrs={'class': 'form-select'}), 'first_name': forms.TextInput(attrs={'class': 'form-control'}), 'last_name': forms.TextInput(attrs={'class': 'form-control'}), 'relationship': forms.Select(attrs={'class': 'form-select'}), @@ -102,11 +103,11 @@ class EmergencyContactForm(forms.ModelForm): user = kwargs.pop('user', None) super().__init__(*args, **kwargs) - if user and hasattr(user, 'tenant'): - self.fields['patient'].queryset = PatientProfile.objects.filter( - tenant=user.tenant, - is_active=True - ).order_by('last_name', 'first_name') + # if user and hasattr(user, 'tenant'): + # self.fields['patient'].queryset = PatientProfile.objects.filter( + # tenant=user.tenant, + # is_active=True + # ).order_by('last_name', 'first_name') class InsuranceInfoForm(forms.ModelForm): @@ -115,15 +116,15 @@ class InsuranceInfoForm(forms.ModelForm): """ class Meta: model = InsuranceInfo + exclude = ["patient"] fields = [ - 'patient', 'insurance_type', 'insurance_company', 'plan_name', 'plan_type', + 'insurance_type', 'insurance_company', 'plan_name', 'plan_type', 'policy_number', 'group_number', 'subscriber_name', 'subscriber_relationship', 'subscriber_dob', 'subscriber_ssn', 'effective_date', 'termination_date', 'copay_amount', 'deductible_amount', 'out_of_pocket_max', 'is_verified', 'requires_authorization' ] widgets = { - 'patient': forms.Select(attrs={'class': 'form-select'}), 'insurance_type': forms.Select(attrs={'class': 'form-select'}), 'insurance_company': forms.TextInput(attrs={'class': 'form-control'}), 'plan_name': forms.TextInput(attrs={'class': 'form-control'}), @@ -147,11 +148,11 @@ class InsuranceInfoForm(forms.ModelForm): user = kwargs.pop('user', None) super().__init__(*args, **kwargs) - if user and hasattr(user, 'tenant'): - self.fields['patient'].queryset = PatientProfile.objects.filter( - tenant=user.tenant, - is_active=True - ).order_by('last_name', 'first_name') + # if user and hasattr(user, 'tenant'): + # self.fields['patient'].queryset = PatientProfile.objects.filter( + # tenant=user.tenant, + # is_active=True + # ).order_by('last_name', 'first_name') class ConsentTemplateForm(forms.ModelForm): diff --git a/patients/migrations/0001_initial.py b/patients/migrations/0001_initial.py index 8e9ed649..3fd7c50d 100644 --- a/patients/migrations/0001_initial.py +++ b/patients/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -48,6 +48,7 @@ class Migration(migrations.Migration): ("RESEARCH", "Research Consent"), ("PRIVACY", "Privacy Consent"), ("FINANCIAL", "Financial Consent"), + ("ADMISSION", "Admission Consent"), ("DISCHARGE", "Discharge Consent"), ("OTHER", "Other"), ], @@ -127,6 +128,720 @@ class Migration(migrations.Migration): "ordering": ["category", "name"], }, ), + migrations.CreateModel( + name="InsuranceClaim", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "claim_number", + models.CharField( + help_text="Unique claim number", max_length=50, unique=True + ), + ), + ( + "claim_type", + models.CharField( + choices=[ + ("MEDICAL", "Medical"), + ("DENTAL", "Dental"), + ("VISION", "Vision"), + ("PHARMACY", "Pharmacy"), + ("EMERGENCY", "Emergency"), + ("INPATIENT", "Inpatient"), + ("OUTPATIENT", "Outpatient"), + ("PREVENTIVE", "Preventive Care"), + ("MATERNITY", "Maternity"), + ("MENTAL_HEALTH", "Mental Health"), + ("REHABILITATION", "Rehabilitation"), + ("DIAGNOSTIC", "Diagnostic"), + ("SURGICAL", "Surgical"), + ("CHRONIC_CARE", "Chronic Care"), + ], + default="MEDICAL", + help_text="Type of claim", + max_length=20, + ), + ), + ( + "status", + models.CharField( + choices=[ + ("DRAFT", "Draft"), + ("SUBMITTED", "Submitted"), + ("UNDER_REVIEW", "Under Review"), + ("APPROVED", "Approved"), + ("PARTIALLY_APPROVED", "Partially Approved"), + ("DENIED", "Denied"), + ("PAID", "Paid"), + ("CANCELLED", "Cancelled"), + ("APPEALED", "Appealed"), + ("RESUBMITTED", "Resubmitted"), + ], + default="DRAFT", + help_text="Current claim status", + max_length=20, + ), + ), + ( + "priority", + models.CharField( + choices=[ + ("LOW", "Low"), + ("NORMAL", "Normal"), + ("HIGH", "High"), + ("URGENT", "Urgent"), + ("EMERGENCY", "Emergency"), + ], + default="NORMAL", + help_text="Claim priority", + max_length=10, + ), + ), + ( + "service_date", + models.DateField(help_text="Date when service was provided"), + ), + ( + "service_provider", + models.CharField( + help_text="Healthcare provider who provided the service", + max_length=200, + ), + ), + ( + "service_provider_license", + models.CharField( + blank=True, + help_text="Provider license number (Saudi Medical License)", + max_length=50, + null=True, + ), + ), + ( + "facility_name", + models.CharField( + blank=True, + help_text="Healthcare facility name", + max_length=200, + null=True, + ), + ), + ( + "facility_license", + models.CharField( + blank=True, + help_text="Facility license number (MOH License)", + max_length=50, + null=True, + ), + ), + ( + "primary_diagnosis_code", + models.CharField( + help_text="Primary diagnosis code (ICD-10)", max_length=20 + ), + ), + ( + "primary_diagnosis_description", + models.TextField(help_text="Primary diagnosis description"), + ), + ( + "secondary_diagnosis_codes", + models.JSONField( + blank=True, + default=list, + help_text="Secondary diagnosis codes and descriptions", + ), + ), + ( + "procedure_codes", + models.JSONField( + blank=True, + default=list, + help_text="Procedure codes (CPT/HCPCS) and descriptions", + ), + ), + ( + "billed_amount", + models.DecimalField( + decimal_places=2, + help_text="Total amount billed (SAR)", + max_digits=12, + ), + ), + ( + "approved_amount", + models.DecimalField( + decimal_places=2, + default=0, + help_text="Amount approved by insurance (SAR)", + max_digits=12, + ), + ), + ( + "paid_amount", + models.DecimalField( + decimal_places=2, + default=0, + help_text="Amount actually paid (SAR)", + max_digits=12, + ), + ), + ( + "patient_responsibility", + models.DecimalField( + decimal_places=2, + default=0, + help_text="Patient copay/deductible amount (SAR)", + max_digits=12, + ), + ), + ( + "discount_amount", + models.DecimalField( + decimal_places=2, + default=0, + help_text="Discount applied (SAR)", + max_digits=12, + ), + ), + ( + "submitted_date", + models.DateTimeField( + blank=True, + help_text="Date claim was submitted to insurance", + null=True, + ), + ), + ( + "processed_date", + models.DateTimeField( + blank=True, help_text="Date claim was processed", null=True + ), + ), + ( + "payment_date", + models.DateTimeField( + blank=True, help_text="Date payment was received", null=True + ), + ), + ( + "saudi_id_number", + models.CharField( + blank=True, + help_text="Saudi National ID or Iqama number", + max_length=10, + null=True, + ), + ), + ( + "insurance_card_number", + models.CharField( + blank=True, + help_text="Insurance card number", + max_length=50, + null=True, + ), + ), + ( + "authorization_number", + models.CharField( + blank=True, + help_text="Prior authorization number if required", + max_length=50, + null=True, + ), + ), + ( + "denial_reason", + models.TextField( + blank=True, + help_text="Reason for denial if applicable", + null=True, + ), + ), + ( + "denial_code", + models.CharField( + blank=True, + help_text="Insurance denial code", + max_length=20, + null=True, + ), + ), + ( + "appeal_date", + models.DateTimeField( + blank=True, help_text="Date appeal was filed", null=True + ), + ), + ( + "appeal_reason", + models.TextField( + blank=True, help_text="Reason for appeal", null=True + ), + ), + ( + "notes", + models.TextField( + blank=True, + help_text="Additional notes about the claim", + null=True, + ), + ), + ( + "attachments", + models.JSONField( + blank=True, default=list, help_text="List of attached documents" + ), + ), + ("created_at", models.DateTimeField(auto_now_add=True)), + ("updated_at", models.DateTimeField(auto_now=True)), + ( + "created_by", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="created_claims", + to=settings.AUTH_USER_MODEL, + ), + ), + ], + options={ + "verbose_name": "Insurance Claim", + "verbose_name_plural": "Insurance Claims", + "db_table": "patients_insurance_claim", + "ordering": ["-created_at"], + }, + ), + migrations.CreateModel( + name="ClaimStatusHistory", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "from_status", + models.CharField( + blank=True, + choices=[ + ("DRAFT", "Draft"), + ("SUBMITTED", "Submitted"), + ("UNDER_REVIEW", "Under Review"), + ("APPROVED", "Approved"), + ("PARTIALLY_APPROVED", "Partially Approved"), + ("DENIED", "Denied"), + ("PAID", "Paid"), + ("CANCELLED", "Cancelled"), + ("APPEALED", "Appealed"), + ("RESUBMITTED", "Resubmitted"), + ], + help_text="Previous status", + max_length=20, + null=True, + ), + ), + ( + "to_status", + models.CharField( + choices=[ + ("DRAFT", "Draft"), + ("SUBMITTED", "Submitted"), + ("UNDER_REVIEW", "Under Review"), + ("APPROVED", "Approved"), + ("PARTIALLY_APPROVED", "Partially Approved"), + ("DENIED", "Denied"), + ("PAID", "Paid"), + ("CANCELLED", "Cancelled"), + ("APPEALED", "Appealed"), + ("RESUBMITTED", "Resubmitted"), + ], + help_text="New status", + max_length=20, + ), + ), + ( + "reason", + models.TextField( + blank=True, help_text="Reason for status change", null=True + ), + ), + ( + "notes", + models.TextField( + blank=True, help_text="Additional notes", null=True + ), + ), + ("changed_at", models.DateTimeField(auto_now_add=True)), + ( + "changed_by", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + ), + ), + ( + "claim", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="status_history", + to="patients.insuranceclaim", + ), + ), + ], + options={ + "verbose_name": "Claim Status History", + "verbose_name_plural": "Claim Status Histories", + "db_table": "patients_claim_status_history", + "ordering": ["-changed_at"], + }, + ), + migrations.CreateModel( + name="ClaimDocument", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "document_type", + models.CharField( + choices=[ + ("MEDICAL_REPORT", "Medical Report"), + ("LAB_RESULT", "Laboratory Result"), + ("RADIOLOGY_REPORT", "Radiology Report"), + ("PRESCRIPTION", "Prescription"), + ("INVOICE", "Invoice"), + ("RECEIPT", "Receipt"), + ("AUTHORIZATION", "Prior Authorization"), + ("REFERRAL", "Referral Letter"), + ("DISCHARGE_SUMMARY", "Discharge Summary"), + ("OPERATIVE_REPORT", "Operative Report"), + ("PATHOLOGY_REPORT", "Pathology Report"), + ("INSURANCE_CARD", "Insurance Card Copy"), + ("ID_COPY", "ID Copy"), + ("OTHER", "Other"), + ], + help_text="Type of document", + max_length=20, + ), + ), + ("title", models.CharField(help_text="Document title", max_length=200)), + ( + "description", + models.TextField( + blank=True, help_text="Document description", null=True + ), + ), + ( + "file_path", + models.CharField( + help_text="Path to the document file", max_length=500 + ), + ), + ( + "file_size", + models.PositiveIntegerField(help_text="File size in bytes"), + ), + ( + "mime_type", + models.CharField(help_text="MIME type of the file", max_length=100), + ), + ("uploaded_at", models.DateTimeField(auto_now_add=True)), + ( + "uploaded_by", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + ), + ), + ( + "claim", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="documents", + to="patients.insuranceclaim", + ), + ), + ], + options={ + "verbose_name": "Claim Document", + "verbose_name_plural": "Claim Documents", + "db_table": "patients_claim_document", + "ordering": ["-uploaded_at"], + }, + ), + migrations.CreateModel( + name="InsuranceInfo", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "insurance_type", + models.CharField( + choices=[ + ("PRIMARY", "Primary"), + ("SECONDARY", "Secondary"), + ("TERTIARY", "Tertiary"), + ], + default="PRIMARY", + help_text="Insurance type", + max_length=20, + ), + ), + ( + "insurance_company", + models.CharField( + help_text="Insurance company name", max_length=200 + ), + ), + ( + "plan_name", + models.CharField( + blank=True, + help_text="Insurance plan name", + max_length=200, + null=True, + ), + ), + ( + "plan_type", + models.CharField( + blank=True, + choices=[ + ("HMO", "Health Maintenance Organization"), + ("PPO", "Preferred Provider Organization"), + ("EPO", "Exclusive Provider Organization"), + ("POS", "Point of Service"), + ("HDHP", "High Deductible Health Plan"), + ("MEDICARE", "Medicare"), + ("MEDICAID", "Medicaid"), + ("TRICARE", "TRICARE"), + ("WORKERS_COMP", "Workers Compensation"), + ("AUTO", "Auto Insurance"), + ("OTHER", "Other"), + ], + help_text="Plan type", + max_length=50, + null=True, + ), + ), + ( + "status", + models.CharField( + choices=[ + ("PENDING", "Pending"), + ("APPROVED", "Approved"), + ("DENIED", "Denied"), + ], + default="PENDING", + help_text="Insurance status", + max_length=20, + ), + ), + ( + "policy_number", + models.CharField( + help_text="Policy/Member ID number", max_length=100 + ), + ), + ( + "group_number", + models.CharField( + blank=True, help_text="Group number", max_length=100, null=True + ), + ), + ( + "subscriber_name", + models.CharField(help_text="Subscriber name", max_length=200), + ), + ( + "subscriber_relationship", + models.CharField( + choices=[ + ("SELF", "Self"), + ("SPOUSE", "Spouse"), + ("CHILD", "Child"), + ("PARENT", "Parent"), + ("OTHER", "Other"), + ], + default="SELF", + help_text="Relationship to subscriber", + max_length=20, + ), + ), + ( + "subscriber_dob", + models.DateField( + blank=True, help_text="Subscriber date of birth", null=True + ), + ), + ( + "subscriber_ssn", + models.CharField( + blank=True, + help_text="Subscriber Social Security Number", + max_length=11, + null=True, + validators=[ + django.core.validators.RegexValidator( + message="SSN must be in format: 123-45-6789", + regex="^\\d{3}-\\d{2}-\\d{4}$", + ) + ], + ), + ), + ( + "effective_date", + models.DateField(help_text="Coverage effective date"), + ), + ( + "termination_date", + models.DateField( + blank=True, help_text="Coverage termination date", null=True + ), + ), + ( + "copay_amount", + models.DecimalField( + blank=True, + decimal_places=2, + help_text="Copay amount", + max_digits=10, + null=True, + ), + ), + ( + "deductible_amount", + models.DecimalField( + blank=True, + decimal_places=2, + help_text="Deductible amount", + max_digits=10, + null=True, + ), + ), + ( + "out_of_pocket_max", + models.DecimalField( + blank=True, + decimal_places=2, + help_text="Out of pocket maximum", + max_digits=10, + null=True, + ), + ), + ( + "is_verified", + models.BooleanField( + default=False, help_text="Insurance has been verified" + ), + ), + ( + "verification_date", + models.DateTimeField( + blank=True, help_text="Date insurance was verified", null=True + ), + ), + ( + "requires_authorization", + models.BooleanField( + default=False, help_text="Requires prior authorization" + ), + ), + ( + "authorization_number", + models.CharField( + blank=True, + help_text="Authorization number", + max_length=100, + null=True, + ), + ), + ( + "authorization_expiry", + models.DateField( + blank=True, help_text="Authorization expiry date", null=True + ), + ), + ( + "is_active", + models.BooleanField(default=True, help_text="Insurance is active"), + ), + ( + "is_primary", + models.BooleanField(default=False, help_text="Primary insurance"), + ), + ( + "notes", + models.TextField( + blank=True, + help_text="Additional notes about this insurance", + null=True, + ), + ), + ("created_at", models.DateTimeField(auto_now_add=True)), + ("updated_at", models.DateTimeField(auto_now=True)), + ( + "verified_by", + models.ForeignKey( + blank=True, + help_text="User who verified insurance", + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="verified_insurance", + to=settings.AUTH_USER_MODEL, + ), + ), + ], + options={ + "verbose_name": "Insurance Information", + "verbose_name_plural": "Insurance Information", + "db_table": "patients_insurance_info", + "ordering": ["insurance_type", "insurance_company"], + }, + ), + migrations.AddField( + model_name="insuranceclaim", + name="insurance_info", + field=models.ForeignKey( + help_text="Insurance policy used for this claim", + on_delete=django.db.models.deletion.CASCADE, + related_name="claims", + to="patients.insuranceinfo", + ), + ), migrations.CreateModel( name="PatientProfile", fields=[ @@ -651,233 +1366,24 @@ class Migration(migrations.Migration): "ordering": ["-created_at"], }, ), - migrations.CreateModel( - name="InsuranceInfo", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "insurance_type", - models.CharField( - choices=[ - ("PRIMARY", "Primary"), - ("SECONDARY", "Secondary"), - ("TERTIARY", "Tertiary"), - ], - default="PRIMARY", - help_text="Insurance type", - max_length=20, - ), - ), - ( - "insurance_company", - models.CharField( - help_text="Insurance company name", max_length=200 - ), - ), - ( - "plan_name", - models.CharField( - blank=True, - help_text="Insurance plan name", - max_length=200, - null=True, - ), - ), - ( - "plan_type", - models.CharField( - blank=True, - choices=[ - ("HMO", "Health Maintenance Organization"), - ("PPO", "Preferred Provider Organization"), - ("EPO", "Exclusive Provider Organization"), - ("POS", "Point of Service"), - ("HDHP", "High Deductible Health Plan"), - ("MEDICARE", "Medicare"), - ("MEDICAID", "Medicaid"), - ("TRICARE", "TRICARE"), - ("WORKERS_COMP", "Workers Compensation"), - ("AUTO", "Auto Insurance"), - ("OTHER", "Other"), - ], - help_text="Plan type", - max_length=50, - null=True, - ), - ), - ( - "policy_number", - models.CharField( - help_text="Policy/Member ID number", max_length=100 - ), - ), - ( - "group_number", - models.CharField( - blank=True, help_text="Group number", max_length=100, null=True - ), - ), - ( - "subscriber_name", - models.CharField(help_text="Subscriber name", max_length=200), - ), - ( - "subscriber_relationship", - models.CharField( - choices=[ - ("SELF", "Self"), - ("SPOUSE", "Spouse"), - ("CHILD", "Child"), - ("PARENT", "Parent"), - ("OTHER", "Other"), - ], - default="SELF", - help_text="Relationship to subscriber", - max_length=20, - ), - ), - ( - "subscriber_dob", - models.DateField( - blank=True, help_text="Subscriber date of birth", null=True - ), - ), - ( - "subscriber_ssn", - models.CharField( - blank=True, - help_text="Subscriber Social Security Number", - max_length=11, - null=True, - validators=[ - django.core.validators.RegexValidator( - message="SSN must be in format: 123-45-6789", - regex="^\\d{3}-\\d{2}-\\d{4}$", - ) - ], - ), - ), - ( - "effective_date", - models.DateField(help_text="Coverage effective date"), - ), - ( - "termination_date", - models.DateField( - blank=True, help_text="Coverage termination date", null=True - ), - ), - ( - "copay_amount", - models.DecimalField( - blank=True, - decimal_places=2, - help_text="Copay amount", - max_digits=10, - null=True, - ), - ), - ( - "deductible_amount", - models.DecimalField( - blank=True, - decimal_places=2, - help_text="Deductible amount", - max_digits=10, - null=True, - ), - ), - ( - "out_of_pocket_max", - models.DecimalField( - blank=True, - decimal_places=2, - help_text="Out of pocket maximum", - max_digits=10, - null=True, - ), - ), - ( - "is_verified", - models.BooleanField( - default=False, help_text="Insurance has been verified" - ), - ), - ( - "verification_date", - models.DateTimeField( - blank=True, help_text="Date insurance was verified", null=True - ), - ), - ( - "requires_authorization", - models.BooleanField( - default=False, help_text="Requires prior authorization" - ), - ), - ( - "authorization_number", - models.CharField( - blank=True, - help_text="Authorization number", - max_length=100, - null=True, - ), - ), - ( - "authorization_expiry", - models.DateField( - blank=True, help_text="Authorization expiry date", null=True - ), - ), - ( - "is_active", - models.BooleanField(default=True, help_text="Insurance is active"), - ), - ( - "notes", - models.TextField( - blank=True, - help_text="Additional notes about this insurance", - null=True, - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ( - "verified_by", - models.ForeignKey( - blank=True, - help_text="User who verified insurance", - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="verified_insurance", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "patient", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="insurance_info", - to="patients.patientprofile", - ), - ), - ], - options={ - "verbose_name": "Insurance Information", - "verbose_name_plural": "Insurance Information", - "db_table": "patients_insurance_info", - "ordering": ["insurance_type", "insurance_company"], - }, + migrations.AddField( + model_name="insuranceinfo", + name="patient", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="insurance_info", + to="patients.patientprofile", + ), + ), + migrations.AddField( + model_name="insuranceclaim", + name="patient", + field=models.ForeignKey( + help_text="Patient associated with this claim", + on_delete=django.db.models.deletion.CASCADE, + related_name="insurance_claims", + to="patients.patientprofile", + ), ), migrations.CreateModel( name="EmergencyContact", @@ -1017,6 +1523,21 @@ class Migration(migrations.Migration): help_text="Authorized to receive medical information", ), ), + ( + "is_primary", + models.BooleanField( + default=False, help_text="Primary emergency contact" + ), + ), + ( + "authorization_number", + models.CharField( + blank=True, + help_text="Authorization number", + max_length=100, + null=True, + ), + ), ( "is_active", models.BooleanField(default=True, help_text="Contact is active"), @@ -1339,6 +1860,37 @@ class Migration(migrations.Migration): fields=["is_verified"], name="patients_in_is_veri_d53f1a_idx" ), ), + migrations.AddIndex( + model_name="insuranceclaim", + index=models.Index( + fields=["claim_number"], name="patients_in_claim_n_3b3114_idx" + ), + ), + migrations.AddIndex( + model_name="insuranceclaim", + index=models.Index( + fields=["patient", "service_date"], + name="patients_in_patient_5d8b72_idx", + ), + ), + migrations.AddIndex( + model_name="insuranceclaim", + index=models.Index( + fields=["status", "priority"], name="patients_in_status_41f139_idx" + ), + ), + migrations.AddIndex( + model_name="insuranceclaim", + index=models.Index( + fields=["submitted_date"], name="patients_in_submitt_75aa55_idx" + ), + ), + migrations.AddIndex( + model_name="insuranceclaim", + index=models.Index( + fields=["insurance_info"], name="patients_in_insuran_f48b26_idx" + ), + ), migrations.AddIndex( model_name="emergencycontact", index=models.Index( diff --git a/patients/migrations/0002_emergencycontact_authorization_number_and_more.py b/patients/migrations/0002_emergencycontact_authorization_number_and_more.py deleted file mode 100644 index 5cb5552d..00000000 --- a/patients/migrations/0002_emergencycontact_authorization_number_and_more.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 5.2.4 on 2025-08-10 10:01 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("patients", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="emergencycontact", - name="authorization_number", - field=models.CharField( - blank=True, help_text="Authorization number", max_length=100, null=True - ), - ), - migrations.AddField( - model_name="emergencycontact", - name="is_primary", - field=models.BooleanField( - default=False, help_text="Primary emergency contact" - ), - ), - ] diff --git a/patients/migrations/0003_insuranceinfo_is_primary.py b/patients/migrations/0003_insuranceinfo_is_primary.py deleted file mode 100644 index ba614859..00000000 --- a/patients/migrations/0003_insuranceinfo_is_primary.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-03 12:00 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("patients", "0002_emergencycontact_authorization_number_and_more"), - ] - - operations = [ - migrations.AddField( - model_name="insuranceinfo", - name="is_primary", - field=models.BooleanField(default=False, help_text="Primary insurance"), - ), - ] diff --git a/patients/migrations/0004_insuranceinfo_status.py b/patients/migrations/0004_insuranceinfo_status.py deleted file mode 100644 index b74fc962..00000000 --- a/patients/migrations/0004_insuranceinfo_status.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-03 13:25 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("patients", "0003_insuranceinfo_is_primary"), - ] - - operations = [ - migrations.AddField( - model_name="insuranceinfo", - name="status", - field=models.CharField( - choices=[ - ("PENDING", "Pending"), - ("APPROVED", "Approved"), - ("DENIED", "Denied"), - ], - default="PENDING", - help_text="Consent status", - max_length=20, - ), - ), - ] diff --git a/patients/migrations/0005_alter_insuranceinfo_status.py b/patients/migrations/0005_alter_insuranceinfo_status.py deleted file mode 100644 index 560088bf..00000000 --- a/patients/migrations/0005_alter_insuranceinfo_status.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-03 13:25 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("patients", "0004_insuranceinfo_status"), - ] - - operations = [ - migrations.AlterField( - model_name="insuranceinfo", - name="status", - field=models.CharField( - choices=[ - ("PENDING", "Pending"), - ("APPROVED", "Approved"), - ("DENIED", "Denied"), - ], - default="PENDING", - help_text="Insurance status", - max_length=20, - ), - ), - ] diff --git a/patients/migrations/0006_insuranceclaim_claimstatushistory_claimdocument_and_more.py b/patients/migrations/0006_insuranceclaim_claimstatushistory_claimdocument_and_more.py deleted file mode 100644 index 6e28ff99..00000000 --- a/patients/migrations/0006_insuranceclaim_claimstatushistory_claimdocument_and_more.py +++ /dev/null @@ -1,532 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-03 14:41 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("patients", "0005_alter_insuranceinfo_status"), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name="InsuranceClaim", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "claim_number", - models.CharField( - help_text="Unique claim number", max_length=50, unique=True - ), - ), - ( - "claim_type", - models.CharField( - choices=[ - ("MEDICAL", "Medical"), - ("DENTAL", "Dental"), - ("VISION", "Vision"), - ("PHARMACY", "Pharmacy"), - ("EMERGENCY", "Emergency"), - ("INPATIENT", "Inpatient"), - ("OUTPATIENT", "Outpatient"), - ("PREVENTIVE", "Preventive Care"), - ("MATERNITY", "Maternity"), - ("MENTAL_HEALTH", "Mental Health"), - ("REHABILITATION", "Rehabilitation"), - ("DIAGNOSTIC", "Diagnostic"), - ("SURGICAL", "Surgical"), - ("CHRONIC_CARE", "Chronic Care"), - ], - default="MEDICAL", - help_text="Type of claim", - max_length=20, - ), - ), - ( - "status", - models.CharField( - choices=[ - ("DRAFT", "Draft"), - ("SUBMITTED", "Submitted"), - ("UNDER_REVIEW", "Under Review"), - ("APPROVED", "Approved"), - ("PARTIALLY_APPROVED", "Partially Approved"), - ("DENIED", "Denied"), - ("PAID", "Paid"), - ("CANCELLED", "Cancelled"), - ("APPEALED", "Appealed"), - ("RESUBMITTED", "Resubmitted"), - ], - default="DRAFT", - help_text="Current claim status", - max_length=20, - ), - ), - ( - "priority", - models.CharField( - choices=[ - ("LOW", "Low"), - ("NORMAL", "Normal"), - ("HIGH", "High"), - ("URGENT", "Urgent"), - ("EMERGENCY", "Emergency"), - ], - default="NORMAL", - help_text="Claim priority", - max_length=10, - ), - ), - ( - "service_date", - models.DateField(help_text="Date when service was provided"), - ), - ( - "service_provider", - models.CharField( - help_text="Healthcare provider who provided the service", - max_length=200, - ), - ), - ( - "service_provider_license", - models.CharField( - blank=True, - help_text="Provider license number (Saudi Medical License)", - max_length=50, - null=True, - ), - ), - ( - "facility_name", - models.CharField( - blank=True, - help_text="Healthcare facility name", - max_length=200, - null=True, - ), - ), - ( - "facility_license", - models.CharField( - blank=True, - help_text="Facility license number (MOH License)", - max_length=50, - null=True, - ), - ), - ( - "primary_diagnosis_code", - models.CharField( - help_text="Primary diagnosis code (ICD-10)", max_length=20 - ), - ), - ( - "primary_diagnosis_description", - models.TextField(help_text="Primary diagnosis description"), - ), - ( - "secondary_diagnosis_codes", - models.JSONField( - blank=True, - default=list, - help_text="Secondary diagnosis codes and descriptions", - ), - ), - ( - "procedure_codes", - models.JSONField( - blank=True, - default=list, - help_text="Procedure codes (CPT/HCPCS) and descriptions", - ), - ), - ( - "billed_amount", - models.DecimalField( - decimal_places=2, - help_text="Total amount billed (SAR)", - max_digits=12, - ), - ), - ( - "approved_amount", - models.DecimalField( - decimal_places=2, - default=0, - help_text="Amount approved by insurance (SAR)", - max_digits=12, - ), - ), - ( - "paid_amount", - models.DecimalField( - decimal_places=2, - default=0, - help_text="Amount actually paid (SAR)", - max_digits=12, - ), - ), - ( - "patient_responsibility", - models.DecimalField( - decimal_places=2, - default=0, - help_text="Patient copay/deductible amount (SAR)", - max_digits=12, - ), - ), - ( - "discount_amount", - models.DecimalField( - decimal_places=2, - default=0, - help_text="Discount applied (SAR)", - max_digits=12, - ), - ), - ( - "submitted_date", - models.DateTimeField( - blank=True, - help_text="Date claim was submitted to insurance", - null=True, - ), - ), - ( - "processed_date", - models.DateTimeField( - blank=True, help_text="Date claim was processed", null=True - ), - ), - ( - "payment_date", - models.DateTimeField( - blank=True, help_text="Date payment was received", null=True - ), - ), - ( - "saudi_id_number", - models.CharField( - blank=True, - help_text="Saudi National ID or Iqama number", - max_length=10, - null=True, - ), - ), - ( - "insurance_card_number", - models.CharField( - blank=True, - help_text="Insurance card number", - max_length=50, - null=True, - ), - ), - ( - "authorization_number", - models.CharField( - blank=True, - help_text="Prior authorization number if required", - max_length=50, - null=True, - ), - ), - ( - "denial_reason", - models.TextField( - blank=True, - help_text="Reason for denial if applicable", - null=True, - ), - ), - ( - "denial_code", - models.CharField( - blank=True, - help_text="Insurance denial code", - max_length=20, - null=True, - ), - ), - ( - "appeal_date", - models.DateTimeField( - blank=True, help_text="Date appeal was filed", null=True - ), - ), - ( - "appeal_reason", - models.TextField( - blank=True, help_text="Reason for appeal", null=True - ), - ), - ( - "notes", - models.TextField( - blank=True, - help_text="Additional notes about the claim", - null=True, - ), - ), - ( - "attachments", - models.JSONField( - blank=True, default=list, help_text="List of attached documents" - ), - ), - ("created_at", models.DateTimeField(auto_now_add=True)), - ("updated_at", models.DateTimeField(auto_now=True)), - ( - "created_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="created_claims", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "insurance_info", - models.ForeignKey( - help_text="Insurance policy used for this claim", - on_delete=django.db.models.deletion.CASCADE, - related_name="claims", - to="patients.insuranceinfo", - ), - ), - ( - "patient", - models.ForeignKey( - help_text="Patient associated with this claim", - on_delete=django.db.models.deletion.CASCADE, - related_name="insurance_claims", - to="patients.patientprofile", - ), - ), - ], - options={ - "verbose_name": "Insurance Claim", - "verbose_name_plural": "Insurance Claims", - "db_table": "patients_insurance_claim", - "ordering": ["-created_at"], - }, - ), - migrations.CreateModel( - name="ClaimStatusHistory", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "from_status", - models.CharField( - blank=True, - choices=[ - ("DRAFT", "Draft"), - ("SUBMITTED", "Submitted"), - ("UNDER_REVIEW", "Under Review"), - ("APPROVED", "Approved"), - ("PARTIALLY_APPROVED", "Partially Approved"), - ("DENIED", "Denied"), - ("PAID", "Paid"), - ("CANCELLED", "Cancelled"), - ("APPEALED", "Appealed"), - ("RESUBMITTED", "Resubmitted"), - ], - help_text="Previous status", - max_length=20, - null=True, - ), - ), - ( - "to_status", - models.CharField( - choices=[ - ("DRAFT", "Draft"), - ("SUBMITTED", "Submitted"), - ("UNDER_REVIEW", "Under Review"), - ("APPROVED", "Approved"), - ("PARTIALLY_APPROVED", "Partially Approved"), - ("DENIED", "Denied"), - ("PAID", "Paid"), - ("CANCELLED", "Cancelled"), - ("APPEALED", "Appealed"), - ("RESUBMITTED", "Resubmitted"), - ], - help_text="New status", - max_length=20, - ), - ), - ( - "reason", - models.TextField( - blank=True, help_text="Reason for status change", null=True - ), - ), - ( - "notes", - models.TextField( - blank=True, help_text="Additional notes", null=True - ), - ), - ("changed_at", models.DateTimeField(auto_now_add=True)), - ( - "changed_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "claim", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="status_history", - to="patients.insuranceclaim", - ), - ), - ], - options={ - "verbose_name": "Claim Status History", - "verbose_name_plural": "Claim Status Histories", - "db_table": "patients_claim_status_history", - "ordering": ["-changed_at"], - }, - ), - migrations.CreateModel( - name="ClaimDocument", - fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "document_type", - models.CharField( - choices=[ - ("MEDICAL_REPORT", "Medical Report"), - ("LAB_RESULT", "Laboratory Result"), - ("RADIOLOGY_REPORT", "Radiology Report"), - ("PRESCRIPTION", "Prescription"), - ("INVOICE", "Invoice"), - ("RECEIPT", "Receipt"), - ("AUTHORIZATION", "Prior Authorization"), - ("REFERRAL", "Referral Letter"), - ("DISCHARGE_SUMMARY", "Discharge Summary"), - ("OPERATIVE_REPORT", "Operative Report"), - ("PATHOLOGY_REPORT", "Pathology Report"), - ("INSURANCE_CARD", "Insurance Card Copy"), - ("ID_COPY", "ID Copy"), - ("OTHER", "Other"), - ], - help_text="Type of document", - max_length=20, - ), - ), - ("title", models.CharField(help_text="Document title", max_length=200)), - ( - "description", - models.TextField( - blank=True, help_text="Document description", null=True - ), - ), - ( - "file_path", - models.CharField( - help_text="Path to the document file", max_length=500 - ), - ), - ( - "file_size", - models.PositiveIntegerField(help_text="File size in bytes"), - ), - ( - "mime_type", - models.CharField(help_text="MIME type of the file", max_length=100), - ), - ("uploaded_at", models.DateTimeField(auto_now_add=True)), - ( - "uploaded_by", - models.ForeignKey( - blank=True, - null=True, - on_delete=django.db.models.deletion.SET_NULL, - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "claim", - models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, - related_name="documents", - to="patients.insuranceclaim", - ), - ), - ], - options={ - "verbose_name": "Claim Document", - "verbose_name_plural": "Claim Documents", - "db_table": "patients_claim_document", - "ordering": ["-uploaded_at"], - }, - ), - migrations.AddIndex( - model_name="insuranceclaim", - index=models.Index( - fields=["claim_number"], name="patients_in_claim_n_3b3114_idx" - ), - ), - migrations.AddIndex( - model_name="insuranceclaim", - index=models.Index( - fields=["patient", "service_date"], - name="patients_in_patient_5d8b72_idx", - ), - ), - migrations.AddIndex( - model_name="insuranceclaim", - index=models.Index( - fields=["status", "priority"], name="patients_in_status_41f139_idx" - ), - ), - migrations.AddIndex( - model_name="insuranceclaim", - index=models.Index( - fields=["submitted_date"], name="patients_in_submitt_75aa55_idx" - ), - ), - migrations.AddIndex( - model_name="insuranceclaim", - index=models.Index( - fields=["insurance_info"], name="patients_in_insuran_f48b26_idx" - ), - ), - ] diff --git a/patients/migrations/0007_alter_consenttemplate_category.py b/patients/migrations/0007_alter_consenttemplate_category.py deleted file mode 100644 index 765e6a82..00000000 --- a/patients/migrations/0007_alter_consenttemplate_category.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 5.2.4 on 2025-09-04 15:07 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("patients", "0006_insuranceclaim_claimstatushistory_claimdocument_and_more"), - ] - - operations = [ - migrations.AlterField( - model_name="consenttemplate", - name="category", - field=models.CharField( - choices=[ - ("TREATMENT", "Treatment Consent"), - ("PROCEDURE", "Procedure Consent"), - ("SURGERY", "Surgical Consent"), - ("ANESTHESIA", "Anesthesia Consent"), - ("RESEARCH", "Research Consent"), - ("PRIVACY", "Privacy Consent"), - ("FINANCIAL", "Financial Consent"), - ("ADMISSION", "Admission Consent"), - ("DISCHARGE", "Discharge Consent"), - ("OTHER", "Other"), - ], - help_text="Consent category", - max_length=50, - ), - ), - ] diff --git a/patients/migrations/__pycache__/0001_initial.cpython-312.pyc b/patients/migrations/__pycache__/0001_initial.cpython-312.pyc index b5d5a00f..e1db9133 100644 Binary files a/patients/migrations/__pycache__/0001_initial.cpython-312.pyc and b/patients/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/patients/migrations/__pycache__/0002_emergencycontact_authorization_number_and_more.cpython-312.pyc b/patients/migrations/__pycache__/0002_emergencycontact_authorization_number_and_more.cpython-312.pyc deleted file mode 100644 index 77d9039d..00000000 Binary files a/patients/migrations/__pycache__/0002_emergencycontact_authorization_number_and_more.cpython-312.pyc and /dev/null differ diff --git a/patients/migrations/__pycache__/0003_insuranceinfo_is_primary.cpython-312.pyc b/patients/migrations/__pycache__/0003_insuranceinfo_is_primary.cpython-312.pyc deleted file mode 100644 index 6fc1cfb6..00000000 Binary files a/patients/migrations/__pycache__/0003_insuranceinfo_is_primary.cpython-312.pyc and /dev/null differ diff --git a/patients/migrations/__pycache__/0004_insuranceinfo_status.cpython-312.pyc b/patients/migrations/__pycache__/0004_insuranceinfo_status.cpython-312.pyc deleted file mode 100644 index ea1f7931..00000000 Binary files a/patients/migrations/__pycache__/0004_insuranceinfo_status.cpython-312.pyc and /dev/null differ diff --git a/patients/migrations/__pycache__/0005_alter_insuranceinfo_status.cpython-312.pyc b/patients/migrations/__pycache__/0005_alter_insuranceinfo_status.cpython-312.pyc deleted file mode 100644 index 404410e0..00000000 Binary files a/patients/migrations/__pycache__/0005_alter_insuranceinfo_status.cpython-312.pyc and /dev/null differ diff --git a/patients/migrations/__pycache__/0006_insuranceclaim_claimstatushistory_claimdocument_and_more.cpython-312.pyc b/patients/migrations/__pycache__/0006_insuranceclaim_claimstatushistory_claimdocument_and_more.cpython-312.pyc deleted file mode 100644 index dd38f366..00000000 Binary files a/patients/migrations/__pycache__/0006_insuranceclaim_claimstatushistory_claimdocument_and_more.cpython-312.pyc and /dev/null differ diff --git a/patients/migrations/__pycache__/0007_alter_consenttemplate_category.cpython-312.pyc b/patients/migrations/__pycache__/0007_alter_consenttemplate_category.cpython-312.pyc deleted file mode 100644 index c9468fe7..00000000 Binary files a/patients/migrations/__pycache__/0007_alter_consenttemplate_category.cpython-312.pyc and /dev/null differ diff --git a/patients/urls.py b/patients/urls.py index 39bc5f3b..204ebb5e 100644 --- a/patients/urls.py +++ b/patients/urls.py @@ -16,11 +16,11 @@ urlpatterns = [ path('delete//', views.PatientDeleteView.as_view(), name='patient_delete'), path('consents/', views.ConsentManagementView.as_view(), name='consent_management'), path('consent//', views.ConsentFormDetailView.as_view(), name='consent_management_detail'), - path('emergency-contacts/', views.EmergencyContactListView.as_view(), name='emergency_contact_management'), - path('emergency-contact//', views.EmergencyContactDetailView.as_view(), name='emergency_contact_management_detail'), + path('emergency-contacts/', views.EmergencyContactListView.as_view(), name='emergency_contact_list'), + path('emergency-contact//', views.EmergencyContactDetailView.as_view(), name='emergency_contact_detail'), path('emergency-contacts/delete//', views.EmergencyContactDeleteView.as_view(), name='emergency_contact_delete'), path('emergency-contacts/update//', views.EmergencyContactUpdateView.as_view(), name='emergency_contact_update'), - path('emergency-contacts/create//', views.EmergencyContactCreateView.as_view(), name='emergency_contact_create'), + path('/emergency-contacts/create/', views.EmergencyContactCreateView.as_view(), name='emergency_contact_create'), path('insurance-info/', views.InsuranceInfoListView.as_view(), name='insurance_list'), path('insurance-info//', views.InsuranceInfoDetailView.as_view(), name='insurance_detail'), path('insurance-info/delete//', views.InsuranceInfoDeleteView.as_view(), name='insurance_delete'), @@ -37,7 +37,7 @@ urlpatterns = [ # HTMX views path('patient-search/', views.patient_search, name='patient_search'), path('patient-stats/', views.patient_stats, name='patient_stats'), - path('emergency-contacts//', views.emergency_contacts_list, name='emergency_contacts_list'), + path('/emergency-contacts/', views.emergency_contacts_list, name='emergency_contacts_list_api'), path('insurance-info//', views.insurance_info_list, name='insurance_info_list'), path('consent-forms//', views.consent_forms_list, name='consent_forms_list'), path('consent-forms/detail//', views.ConsentFormDetailView.as_view(), name='consent_form_detail'), diff --git a/patients/views.py b/patients/views.py index 7f40554b..a995907b 100644 --- a/patients/views.py +++ b/patients/views.py @@ -30,10 +30,6 @@ from .forms import ( from core.utils import AuditLogger -# ============================================================================ -# PATIENT PROFILE VIEWS (FULL CRUD - Master Data) -# ============================================================================ - class PatientListView(LoginRequiredMixin, ListView): """ Patient listing view. @@ -265,10 +261,6 @@ class PatientDeleteView(LoginRequiredMixin, PermissionRequiredMixin, DeleteView) return redirect(self.success_url) -# ============================================================================ -# EMERGENCY CONTACT VIEWS (FULL CRUD - Operational Data) -# ============================================================================ - class EmergencyContactListView(LoginRequiredMixin, ListView): """ List emergency contacts. @@ -277,40 +269,40 @@ class EmergencyContactListView(LoginRequiredMixin, ListView): template_name = 'patients/emergency_contacts/emergency_contact_list.html' context_object_name = 'emergency_contacts' paginate_by = 25 - + def get_queryset(self): tenant = getattr(self.request, 'tenant', None) if not tenant: return EmergencyContact.objects.none() - + queryset = EmergencyContact.objects.filter(patient__tenant=tenant) - + # Apply filters patient_id = self.request.GET.get('patient_id') if patient_id: queryset = queryset.filter(patient_id=patient_id) - + relationship = self.request.GET.get('relationship') if relationship: queryset = queryset.filter(relationship__icontains=relationship) - + is_primary = self.request.GET.get('is_primary') if is_primary == 'true': queryset = queryset.filter(is_primary=True) elif is_primary == 'false': queryset = queryset.filter(is_primary=False) - - return queryset.order_by('patient__last_name', '-is_primary', 'name') - + + return queryset.order_by('patient__last_name', '-is_primary', 'first_name') + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) tenant = getattr(self.request, 'tenant', None) - + if tenant: context.update({ 'patients': PatientProfile.objects.filter(tenant=tenant, is_active=True).order_by('last_name', 'first_name'), }) - + return context @@ -331,37 +323,69 @@ class EmergencyContactDetailView(LoginRequiredMixin, DetailView): class EmergencyContactCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView): """ - Create new emergency contact. + Create a new emergency contact for a specific patient (passed as in the URL). """ model = EmergencyContact form_class = EmergencyContactForm - template_name = 'patients/emergency_contacts/emergency_contact_form.html' - permission_required = 'patients.add_emergencycontact' - success_url = reverse_lazy('patients:emergency_contact_list') - + template_name = "patients/emergency_contacts/emergency_contact_form.html" + permission_required = "patients.add_emergencycontact" + # if you always go back to the list, keep this; otherwise override get_success_url below + success_url = reverse_lazy("patients:emergency_contact_list") + + def dispatch(self, request, *args, **kwargs): + # Ensure tenant exists (if you follow multi-tenant pattern) + self.tenant = getattr(request, "tenant", None) + if not self.tenant: + return JsonResponse({"error": "No tenant found"}, status=400) + + # Fetch the patient from URL and ensure it belongs to the tenant + self.patient = get_object_or_404( + PatientProfile, + pk=self.kwargs.get("pk"), + tenant=self.tenant, + is_active=True, + ) + return super().dispatch(request, *args, **kwargs) + def get_form_kwargs(self): kwargs = super().get_form_kwargs() - kwargs['user'] = self.request.user + # pass user for your form's tenant scoping + kwargs["user"] = self.request.user + # prefill the patient + kwargs.setdefault("initial", {}) + kwargs["initial"]["patient"] = self.patient return kwargs - + + def get_context_data(self, **kwargs): + ctx = super().get_context_data(**kwargs) + ctx["patient"] = self.patient + return ctx + def form_valid(self, form): + # Enforce the patient from the URL regardless of any posted value + form.instance.patient = self.patient response = super().form_valid(form) - - # Log emergency contact creation + + # Log emergency contact creation (fix name fields) + contact_name = f"{self.object.first_name} {self.object.last_name}".strip() AuditLogger.log_event( - tenant=getattr(self.request, 'tenant', None), - event_type='CREATE', - event_category='PATIENT_MANAGEMENT', - action='Create Emergency Contact', - description=f'Created emergency contact: {self.object.name} for {self.object.patient}', + tenant=self.tenant, + event_type="CREATE", + event_category="PATIENT_MANAGEMENT", + action="Create Emergency Contact", + description=f'Created emergency contact: {contact_name} for patient {self.patient}', user=self.request.user, content_object=self.object, - request=self.request + request=self.request, ) - - messages.success(self.request, f'Emergency contact "{self.object.name}" created successfully.') + + messages.success(self.request, f'Emergency contact "{contact_name}" created successfully.') return response + # Optional: redirect back to the patient’s detail page (or their contact list) + def get_success_url(self): + return reverse("patients:patient_detail", args=[self.patient.pk]) + class EmergencyContactUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): """ @@ -440,63 +464,127 @@ class EmergencyContactDeleteView(LoginRequiredMixin, PermissionRequiredMixin, De return super().delete(request, *args, **kwargs) -# ============================================================================ -# INSURANCE INFO VIEWS (FULL CRUD - Operational Data) -# ============================================================================ - class InsuranceInfoListView(LoginRequiredMixin, ListView): """ - List insurance information. + List insurance information, optionally scoped to a specific patient via URL . + Supports filters: + - patient_id + - insurance_company (icontains) + - is_primary: true|false + - expiry_status: expired|expiring_soon + - search: matches patient name/company/policy number (optional example) + - per_page: pagination size """ model = InsuranceInfo - template_name = 'patients/insurance/insurance_list.html' - context_object_name = 'insurance_info' - paginate_by = 25 - + template_name = "patients/insurance/insurance_list.html" + context_object_name = "insurance_info" + paginate_by = 25 # default; can be overridden by ?per_page= + + # If you define a patient-specific URL like: + # path('patients//insurance/', InsuranceInfoListView.as_view(), ...) + # this view will scope to that patient. + def dispatch(self, request, *args, **kwargs): + self.tenant = getattr(request, "tenant", None) + if not self.tenant: + return JsonResponse({"error": "No tenant found"}, status=400) + + self.patient = None + if "pk" in self.kwargs and self.kwargs["pk"] is not None: + self.patient = get_object_or_404( + PatientProfile, + pk=self.kwargs["pk"], + tenant=self.tenant, + is_active=True, + ) + return super().dispatch(request, *args, **kwargs) + + def get_paginate_by(self, queryset): + per_page = self.request.GET.get("per_page") + if per_page and per_page.isdigit(): + return max(1, min(int(per_page), 200)) # clamp to something sane + return super().get_paginate_by(queryset) + + def _parse_bool(self, value: str): + if value is None: + return None + v = value.strip().lower() + if v in {"1", "true", "yes", "on"}: + return True + if v in {"0", "false", "no", "off"}: + return False + return None + def get_queryset(self): - tenant = getattr(self.request, 'tenant', None) - if not tenant: - return InsuranceInfo.objects.none() - - queryset = InsuranceInfo.objects.filter(patient__tenant=tenant) - - # Apply filters - patient_id = self.request.GET.get('patient_id') - if patient_id: - queryset = queryset.filter(patient_id=patient_id) - - insurance_company = self.request.GET.get('insurance_company') + qs = ( + InsuranceInfo.objects + .select_related("patient") + .filter(patient__tenant=self.tenant) + ) + + # If URL-scoped to a specific patient, enforce it + if self.patient: + qs = qs.filter(patient=self.patient) + + # Query params + patient_id = self.request.GET.get("patient_id") + if patient_id and patient_id.isdigit() and not self.patient: + # Only apply if not already URL-scoped + qs = qs.filter(patient_id=patient_id) + + insurance_company = self.request.GET.get("insurance_company") if insurance_company: - queryset = queryset.filter(insurance_company__icontains=insurance_company) - - is_primary = self.request.GET.get('is_primary') - if is_primary == 'true': - queryset = queryset.filter(is_primary=True) - elif is_primary == 'false': - queryset = queryset.filter(is_primary=False) - - # Filter by expiry status - expiry_status = self.request.GET.get('expiry_status') + qs = qs.filter(insurance_company__icontains=insurance_company.strip()) + + is_primary = self._parse_bool(self.request.GET.get("is_primary")) + if is_primary is True: + qs = qs.filter(is_primary=True) + elif is_primary is False: + qs = qs.filter(is_primary=False) + + # Expiry status + expiry_status = self.request.GET.get("expiry_status") today = timezone.now().date() - if expiry_status == 'expired': - queryset = queryset.filter(expiry_date__lt=today) - elif expiry_status == 'expiring_soon': - # Expiring within 30 days - expiry_threshold = today + timedelta(days=30) - queryset = queryset.filter(expiry_date__lte=expiry_threshold, expiry_date__gte=today) - - return queryset.order_by('patient__last_name', '-is_primary', '-effective_date') - + if expiry_status == "expired": + qs = qs.filter(expiry_date__lt=today) + elif expiry_status == "expiring_soon": + threshold = today + timedelta(days=30) + qs = qs.filter(expiry_date__range=(today, threshold)) + + # Optional: simple search across a few fields + search = self.request.GET.get("search") + if search: + s = search.strip() + from django.db.models import Q + qs = qs.filter( + Q(insurance_company__icontains=s) + | Q(policy_number__icontains=s) + | Q(patient__first_name__icontains=s) + | Q(patient__last_name__icontains=s) + ) + + return qs.order_by("patient__last_name", "patient__first_name", "-is_primary", "-effective_date") + def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - tenant = getattr(self.request, 'tenant', None) - - if tenant: - context.update({ - 'patients': PatientProfile.objects.filter(tenant=tenant, is_active=True).order_by('last_name', 'first_name'), - }) - - return context + ctx = super().get_context_data(**kwargs) + # Dropdowns / helpers + ctx["patients"] = ( + PatientProfile.objects + .filter(tenant=self.tenant, is_active=True) + .order_by("last_name", "first_name") + ) + # Preserve current filters for the template + ctx["filters"] = { + "patient_id": self.request.GET.get("patient_id") or (self.patient.pk if self.patient else ""), + "insurance_company": self.request.GET.get("insurance_company", ""), + "is_primary": self.request.GET.get("is_primary", ""), + "expiry_status": self.request.GET.get("expiry_status", ""), + "search": self.request.GET.get("search", ""), + "per_page": self.request.GET.get("per_page", self.paginate_by), + } + # If URL-scoped patient + if self.patient: + ctx["patient"] = self.patient + return ctx class InsuranceInfoDetailView(LoginRequiredMixin, DetailView): @@ -516,37 +604,67 @@ class InsuranceInfoDetailView(LoginRequiredMixin, DetailView): class InsuranceInfoCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView): """ - Create new insurance information. + Create new insurance information for a specific patient (passed as in the URL). """ model = InsuranceInfo form_class = InsuranceInfoForm - template_name = 'patients/insurance/insurance_form.html' - permission_required = 'patients.add_insuranceinfo' - success_url = reverse_lazy('patients:insurance_info_list') - + template_name = "patients/insurance/insurance_form.html" + permission_required = "patients.add_insuranceinfo" + success_url = reverse_lazy("patients:insurance_info_list") + + def dispatch(self, request, *args, **kwargs): + self.tenant = getattr(request, "tenant", None) + if not self.tenant: + return JsonResponse({"error": "No tenant found"}, status=400) + + # patient pk comes from URL + self.patient = get_object_or_404( + PatientProfile, + pk=self.kwargs.get("pk"), + tenant=self.tenant, + is_active=True, + ) + return super().dispatch(request, *args, **kwargs) + def get_form_kwargs(self): kwargs = super().get_form_kwargs() - kwargs['user'] = self.request.user + kwargs["user"] = self.request.user + # If the form still includes 'patient', prefill it + kwargs.setdefault("initial", {}) + kwargs["initial"]["patient"] = self.patient return kwargs - + + def get_context_data(self, **kwargs): + ctx = super().get_context_data(**kwargs) + ctx["patient"] = self.patient + return ctx + def form_valid(self, form): + # Always bind to the patient from the URL (ignore any posted patient) + form.instance.patient = self.patient response = super().form_valid(form) - - # Log insurance info creation + AuditLogger.log_event( - tenant=getattr(self.request, 'tenant', None), - event_type='CREATE', - event_category='PATIENT_MANAGEMENT', - action='Create Insurance Info', - description=f'Created insurance info: {self.object.insurance_company} for {self.object.patient}', + tenant=self.tenant, + event_type="CREATE", + event_category="PATIENT_MANAGEMENT", + action="Create Insurance Info", + description=f'Created insurance info with company "{self.object.insurance_company}" for patient {self.patient}', user=self.request.user, content_object=self.object, - request=self.request + request=self.request, + ) + + messages.success( + self.request, + f'Insurance information for "{self.object.insurance_company}" created successfully.' ) - - messages.success(self.request, f'Insurance information for "{self.object.insurance_company}" created successfully.') return response + # Optional: return to the patient detail (or their insurance list) instead of the global list + # def get_success_url(self): + # return reverse("patients:patient_detail", args=[self.patient.pk]) + class InsuranceInfoUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateView): """ @@ -625,10 +743,6 @@ class InsuranceInfoDeleteView(LoginRequiredMixin, PermissionRequiredMixin, Delet return super().delete(request, *args, **kwargs) -# ============================================================================ -# CONSENT TEMPLATE VIEWS (FULL CRUD - Master Data) -# ============================================================================ - class ConsentTemplateListView(LoginRequiredMixin, ListView): """ List consent templates. @@ -802,10 +916,6 @@ class ConsentTemplateDeleteView(LoginRequiredMixin, PermissionRequiredMixin, Del return super().delete(request, *args, **kwargs) -# ============================================================================ -# CONSENT FORM VIEWS (APPEND-ONLY - Clinical Records) -# ============================================================================ - class ConsentFormListView(LoginRequiredMixin, ListView): """ List consent forms. @@ -934,10 +1044,6 @@ class ConsentFormUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateV return response -# ============================================================================ -# PATIENT NOTE VIEWS (APPEND-ONLY - Clinical Records) -# ============================================================================ - class PatientNoteListView(LoginRequiredMixin, ListView): """ List patient notes. @@ -1042,10 +1148,6 @@ class PatientNoteCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateV return response -# ============================================================================ -# HTMX VIEWS FOR REAL-TIME UPDATES -# ============================================================================ - @login_required def patient_search(request): """ @@ -1133,24 +1235,24 @@ def patient_stats(request): return render(request, 'patients/partials/patient_stats.html', {'stats': stats}) -# @login_required -# def emergency_contacts_list(request, patient_id): -# """ -# HTMX view for emergency contacts list. -# """ -# tenant = getattr(request, 'tenant', None) -# if not tenant: -# return JsonResponse({'error': 'No tenant found'}, status=400) -# -# patient = get_object_or_404(PatientProfile, id=patient_id, tenant=tenant) -# emergency_contacts = EmergencyContact.objects.filter( -# patient=patient -# ).order_by('-is_primary', 'name') -# -# return render(request, 'patients/partials/emergency_contacts_list.html', { -# 'emergency_contacts': emergency_contacts, -# 'patient': patient -# }) +@login_required +def emergency_contacts_list(request, patient_id): + """ + HTMX view for emergency contacts list. + """ + tenant = getattr(request, 'tenant', None) + if not tenant: + return JsonResponse({'error': 'No tenant found'}, status=400) + + patient = get_object_or_404(PatientProfile, patient_id=patient_id, tenant=tenant) + emergency_contacts = EmergencyContact.objects.filter( + patient=patient + ).order_by('-is_primary', 'first_name') + + return render(request, 'patients/partials/emergency_contacts_list.html', { + 'emergency_contacts': emergency_contacts, + 'patient': patient + }) @login_required @@ -3002,69 +3104,69 @@ def verify_insurance(request, insurance_id): return JsonResponse({'status': 'error', 'message': 'Invalid request method'}) -@login_required -def emergency_contacts_list(request, patient_id): - """ - HTMX view for listing emergency contacts. - """ - tenant = getattr(request, 'tenant', None) - patient = get_object_or_404(PatientProfile, pk=patient_id, tenant=tenant) - - contacts = EmergencyContact.objects.filter( - patient=patient - ).order_by('-is_active', 'priority') - - # Handle form submission for adding a new contact - if request.method == 'POST': - form = EmergencyContactForm(request.POST, user=request.user) - if form.is_valid(): - contact = form.save(commit=False) - contact.patient = patient - contact.save() - - # Log the addition - from core.models import AuditLogEntry - AuditLogEntry.objects.create( - tenant=tenant, - user=request.user, - action='CREATE', - entity_type='EmergencyContact', - entity_id=str(contact.id), - details={ - 'patient': patient.get_full_name(), - 'mrn': patient.mrn, - 'contact': contact.get_full_name(), - 'relationship': contact.relationship - } - ) - - messages.success(request, 'Emergency contact added successfully.') - - # Refresh contacts list - contacts = EmergencyContact.objects.filter( - patient=patient - ).order_by('-is_active', 'priority') - - return render(request, 'patients/partials/emergency_contacts_list.html', { - 'contacts': contacts, - 'patient': patient - }) - else: - # Return form with errors - return render(request, 'patients/emergency_contacts/emergency_contact_form.html', { - 'form': form, - 'patient': patient - }) - else: - # Initial form for adding new contact - initial_data = {'patient': patient.pk} - form = EmergencyContactForm(initial=initial_data, user=request.user) - - return render(request, 'patients/partials/emergency_contacts_list.html', { - 'contacts': contacts, - 'patient': patient, - 'form': form - }) +# @login_required +# def emergency_contacts_list(request, patient_id): +# """ +# HTMX view for listing emergency contacts. +# """ +# tenant = getattr(request, 'tenant', None) +# patient = get_object_or_404(PatientProfile, pk=patient_id, tenant=tenant) +# +# contacts = EmergencyContact.objects.filter( +# patient=patient +# ).order_by('-is_active', 'priority') +# +# # Handle form submission for adding a new contact +# if request.method == 'POST': +# form = EmergencyContactForm(request.POST, user=request.user) +# if form.is_valid(): +# contact = form.save(commit=False) +# contact.patient = patient +# contact.save() +# +# # Log the addition +# from core.models import AuditLogEntry +# AuditLogEntry.objects.create( +# tenant=tenant, +# user=request.user, +# action='CREATE', +# entity_type='EmergencyContact', +# entity_id=str(contact.id), +# details={ +# 'patient': patient.get_full_name(), +# 'mrn': patient.mrn, +# 'contact': contact.get_full_name(), +# 'relationship': contact.relationship +# } +# ) +# +# messages.success(request, 'Emergency contact added successfully.') +# +# # Refresh contacts list +# contacts = EmergencyContact.objects.filter( +# patient=patient +# ).order_by('-is_active', 'priority') +# +# return render(request, 'patients/partials/emergency_contacts_list.html', { +# 'contacts': contacts, +# 'patient': patient +# }) +# else: +# # Return form with errors +# return render(request, 'patients/emergency_contacts/emergency_contact_form.html', { +# 'form': form, +# 'patient': patient +# }) +# else: +# # Initial form for adding new contact +# initial_data = {'patient': patient.pk} +# form = EmergencyContactForm(initial=initial_data, user=request.user) +# +# return render(request, 'patients/partials/emergency_contacts_list.html', { +# 'contacts': contacts, +# 'patient': patient, +# 'form': form +# }) # # # @login_required @@ -3164,7 +3266,7 @@ def check_eligibility(request, pk): # Get insurance info object from .models import InsuranceInfo - insurance = get_object_or_404(InsuranceInfo, id=pk, patient__tenant=tenant) + insurance = get_object_or_404(InsuranceInfo, pk=pk, patient__tenant=tenant) if request.method == 'POST': # Simulate eligibility check (in real implementation, this would call insurance API) diff --git a/pharmacy/migrations/0001_initial.py b/pharmacy/migrations/0001_initial.py index 881cf3cd..8a84c14b 100644 --- a/pharmacy/migrations/0001_initial.py +++ b/pharmacy/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -742,6 +742,7 @@ class Migration(migrations.Migration): ("EXPIRED", "Expired"), ("ON_HOLD", "On Hold"), ("TRANSFERRED", "Transferred"), + ("DRAFT", "Draft"), ], default="PENDING", help_text="Prescription status", diff --git a/pharmacy/migrations/0002_alter_prescription_status.py b/pharmacy/migrations/0002_alter_prescription_status.py deleted file mode 100644 index 4ac0282b..00000000 --- a/pharmacy/migrations/0002_alter_prescription_status.py +++ /dev/null @@ -1,34 +0,0 @@ -# Generated by Django 5.2.4 on 2025-08-28 19:46 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("pharmacy", "0001_initial"), - ] - - operations = [ - migrations.AlterField( - model_name="prescription", - name="status", - field=models.CharField( - choices=[ - ("PENDING", "Pending"), - ("ACTIVE", "Active"), - ("DISPENSED", "Dispensed"), - ("PARTIALLY_DISPENSED", "Partially Dispensed"), - ("COMPLETED", "Completed"), - ("CANCELLED", "Cancelled"), - ("EXPIRED", "Expired"), - ("ON_HOLD", "On Hold"), - ("TRANSFERRED", "Transferred"), - ("DRAFT", "Draft"), - ], - default="PENDING", - help_text="Prescription status", - max_length=20, - ), - ), - ] diff --git a/pharmacy/migrations/__pycache__/0001_initial.cpython-312.pyc b/pharmacy/migrations/__pycache__/0001_initial.cpython-312.pyc index 2b4af57c..eb0a940e 100644 Binary files a/pharmacy/migrations/__pycache__/0001_initial.cpython-312.pyc and b/pharmacy/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/pharmacy/migrations/__pycache__/0002_alter_prescription_status.cpython-312.pyc b/pharmacy/migrations/__pycache__/0002_alter_prescription_status.cpython-312.pyc deleted file mode 100644 index b450791c..00000000 Binary files a/pharmacy/migrations/__pycache__/0002_alter_prescription_status.cpython-312.pyc and /dev/null differ diff --git a/quality/__pycache__/models.cpython-312.pyc b/quality/__pycache__/models.cpython-312.pyc index a4922b14..06787520 100644 Binary files a/quality/__pycache__/models.cpython-312.pyc and b/quality/__pycache__/models.cpython-312.pyc differ diff --git a/quality/migrations/0001_initial.py b/quality/migrations/0001_initial.py index 87adf8b6..bc092978 100644 --- a/quality/migrations/0001_initial.py +++ b/quality/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.core.validators import django.db.models.deletion @@ -12,6 +12,7 @@ class Migration(migrations.Migration): dependencies = [ ("core", "0001_initial"), + ("hr", "0001_initial"), ("patients", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] @@ -121,7 +122,7 @@ class Migration(migrations.Migration): null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="audit_plans", - to="core.department", + to="hr.department", ), ), ( @@ -409,7 +410,7 @@ class Migration(migrations.Migration): null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="improvement_projects", - to="core.department", + to="hr.department", ), ), ( @@ -648,6 +649,7 @@ class Migration(migrations.Migration): ), ("measurement_unit", models.CharField(max_length=50)), ("target_value", models.DecimalField(decimal_places=2, max_digits=10)), + ("current_value", models.DecimalField(decimal_places=2, max_digits=10)), ( "threshold_warning", models.DecimalField(decimal_places=2, max_digits=10), @@ -681,7 +683,7 @@ class Migration(migrations.Migration): blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, - to="core.department", + to="hr.department", ), ), ( diff --git a/quality/migrations/0002_qualityindicator_current_value.py b/quality/migrations/0002_qualityindicator_current_value.py deleted file mode 100644 index 81beaeba..00000000 --- a/quality/migrations/0002_qualityindicator_current_value.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 5.2.4 on 2025-08-31 19:55 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ("quality", "0001_initial"), - ] - - operations = [ - migrations.AddField( - model_name="qualityindicator", - name="current_value", - field=models.DecimalField(decimal_places=2, default=100, max_digits=10), - preserve_default=False, - ), - ] diff --git a/quality/migrations/__pycache__/0001_initial.cpython-312.pyc b/quality/migrations/__pycache__/0001_initial.cpython-312.pyc index aa17628a..47941b8b 100644 Binary files a/quality/migrations/__pycache__/0001_initial.cpython-312.pyc and b/quality/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/quality/migrations/__pycache__/0002_qualityindicator_current_value.cpython-312.pyc b/quality/migrations/__pycache__/0002_qualityindicator_current_value.cpython-312.pyc deleted file mode 100644 index 754a8810..00000000 Binary files a/quality/migrations/__pycache__/0002_qualityindicator_current_value.cpython-312.pyc and /dev/null differ diff --git a/quality/models.py b/quality/models.py index 2abf903e..f40969cf 100644 --- a/quality/models.py +++ b/quality/models.py @@ -49,7 +49,7 @@ class QualityIndicator(models.Model): calculation_method = models.TextField() data_source = models.CharField(max_length=200) frequency = models.CharField(max_length=20, choices=FREQUENCY_CHOICES) - responsible_department = models.ForeignKey('core.Department', on_delete=models.SET_NULL, null=True, blank=True) + responsible_department = models.ForeignKey('hr.Department', on_delete=models.SET_NULL, null=True, blank=True) responsible_user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='responsible_quality_indicators') is_active = models.BooleanField(default=True) regulatory_requirement = models.BooleanField(default=False) @@ -414,7 +414,7 @@ class AuditPlan(models.Model): audit_type = models.CharField(max_length=20, choices=AUDIT_TYPE_CHOICES) scope = models.TextField() criteria = models.TextField() - department = models.ForeignKey('core.Department', on_delete=models.SET_NULL, null=True, blank=True, related_name='audit_plans') + department = models.ForeignKey('hr.Department', on_delete=models.SET_NULL, null=True, blank=True, related_name='audit_plans') auditor = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='led_audits') audit_team = models.ManyToManyField(User, related_name='audit_team_memberships', blank=True) planned_start_date = models.DateField() @@ -600,7 +600,7 @@ class ImprovementProject(models.Model): project_team = models.ManyToManyField(User, related_name='project_team_memberships', blank=True) sponsor = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='sponsored_projects') # stakeholders = models.ManyToManyField(User, related_name='stakeholder_memberships', blank=True) - department = models.ForeignKey('core.Department', on_delete=models.SET_NULL, null=True, blank=True, related_name='improvement_projects') + department = models.ForeignKey('hr.Department', on_delete=models.SET_NULL, null=True, blank=True, related_name='improvement_projects') planned_start_date = models.DateField() planned_end_date = models.DateField() actual_start_date = models.DateField(null=True, blank=True) diff --git a/radiology/migrations/0001_initial.py b/radiology/migrations/0001_initial.py index 4e10c0b5..ffcf60d7 100644 --- a/radiology/migrations/0001_initial.py +++ b/radiology/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 5.2.4 on 2025-08-04 04:41 +# Generated by Django 5.2.6 on 2025-09-08 07:28 import django.db.models.deletion import django.utils.timezone diff --git a/radiology/migrations/__pycache__/0001_initial.cpython-312.pyc b/radiology/migrations/__pycache__/0001_initial.cpython-312.pyc index 036c8444..5867dd31 100644 Binary files a/radiology/migrations/__pycache__/0001_initial.cpython-312.pyc and b/radiology/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/templates/.DS_Store b/templates/.DS_Store index 6ad85e18..23cb1c15 100644 Binary files a/templates/.DS_Store and b/templates/.DS_Store differ diff --git a/templates/core/departments/.DS_Store b/templates/appointments/.DS_Store similarity index 89% rename from templates/core/departments/.DS_Store rename to templates/appointments/.DS_Store index 5008ddfc..93555ef3 100644 Binary files a/templates/core/departments/.DS_Store and b/templates/appointments/.DS_Store differ diff --git a/templates/appointments/calendar_appointments.html b/templates/appointments/calendar_appointments.html index 51404580..6d4d3563 100644 --- a/templates/appointments/calendar_appointments.html +++ b/templates/appointments/calendar_appointments.html @@ -4,12 +4,11 @@ {% block title %}Appointment Calendar{% endblock %} {% block css %} - {% endblock %} {% block content %}
-
+
- {% for appointment in todays_appointments %} + {% for appointment in appointments %}
{{ appointment.appointment_time|time:"g:i A" }}
@@ -133,19 +132,19 @@
{{ appointment.provider.first_name }} {{ appointment.provider.last_name }}
- {% if appointment.status == 'scheduled' %} + {% if appointment.status == 'SCHEDULED' %} Scheduled - {% elif appointment.status == 'confirmed' %} + {% elif appointment.status == 'CONFIRMED' %} Confirmed - {% elif appointment.status == 'checked_in' %} + {% elif appointment.status == 'CHECKED_IN' %} Checked In - {% elif appointment.status == 'in_progress' %} + {% elif appointment.status == 'IN_PROGRESS' %} In Progress - {% elif appointment.status == 'completed' %} + {% elif appointment.status == 'COMPLETED' %} Completed - {% elif appointment.status == 'cancelled' %} + {% elif appointment.status == 'CANCELLED' %} Cancelled - {% elif appointment.status == 'no_show' %} + {% elif appointment.status == 'NO_SHOW' %} No Show {% endif %}
diff --git a/templates/appointments/partials/appointment_list.html b/templates/appointments/partials/appointment_list.html index 26d8c17c..97a39d5f 100644 --- a/templates/appointments/partials/appointment_list.html +++ b/templates/appointments/partials/appointment_list.html @@ -120,7 +120,8 @@ hx-post="{% url 'appointments:complete_appointment' appointment.id %}" hx-target="#appointment-list" hx-swap="outerHTML" - hx-confirm="Are you sure you want to complete this appointment?"> + hx-confirm="Are you sure you want to complete this appointment?" + hx-headers='{"X-CSRFToken":"{{ csrf_token }}"}'> {% endif %} @@ -229,10 +230,21 @@ document.addEventListener('DOMContentLoaded', function() { const form = document.getElementById('rescheduleForm'); const formData = new FormData(form); - htmx.ajax('POST', `/appointments/reschedule/${currentAppointmentId}/`, { + htmx.ajax('POST', `{% url 'appointments:reschedule_appointment' 0 %}`.replace('0', currentAppointmentId), { values: Object.fromEntries(formData), target: '#appointment-list', - swap: 'outerHTML' + swap: 'outerHTML', + headers: { + 'X-CSRFToken': '{{ csrf_token }}' + }, + onBeforeRequest: function() { + confirmRescheduleBtn.disabled = true; + confirmRescheduleBtn.innerHTML = ' Rescheduling...'; + }, + onAfterRequest: function() { + confirmRescheduleBtn.disabled = false; + confirmRescheduleBtn.innerHTML = ' Reschedule'; + } }).then(() => { bootstrap.Modal.getInstance(rescheduleModal).hide(); }); diff --git a/templates/appointments/queue_management.html b/templates/appointments/queue_management.html index 93bef48e..0f4c2945 100644 --- a/templates/appointments/queue_management.html +++ b/templates/appointments/queue_management.html @@ -7,25 +7,30 @@
-
-
-

- Queue Management -

+
+
+

+ Queue Management +

+
+ + +
- -
+
+
{% for queue in queues %} + {% if queue %}
-
{{ queue.name }}
- {{ queue.current_queue_length }} +
{{ queue.queue.name }}
+ {{ queue.queue.current_queue_size }}
+ hx-get="{% url 'appointments:queue_status' queue.pk %}" + hx-trigger="load, every 60s">
@@ -33,19 +38,21 @@
+ {% endif %} {% empty %}
diff --git a/templates/appointments/appointment_confirm_delete.html b/templates/appointments/requests/appointment_confirm_delete.html similarity index 100% rename from templates/appointments/appointment_confirm_delete.html rename to templates/appointments/requests/appointment_confirm_delete.html diff --git a/templates/appointments/appointment_detail.html b/templates/appointments/requests/appointment_detail.html similarity index 100% rename from templates/appointments/appointment_detail.html rename to templates/appointments/requests/appointment_detail.html diff --git a/templates/appointments/appointment_form.html b/templates/appointments/requests/appointment_form.html similarity index 92% rename from templates/appointments/appointment_form.html rename to templates/appointments/requests/appointment_form.html index f9add5cf..9c2d0727 100644 --- a/templates/appointments/appointment_form.html +++ b/templates/appointments/requests/appointment_form.html @@ -43,14 +43,14 @@
{% csrf_token %} - +
- {% for choice in form.doctor.field.choices %} @@ -97,10 +97,10 @@
- {% if form.appointment_date.errors %} @@ -113,10 +113,10 @@
- {% if form.appointment_time.errors %} @@ -132,9 +132,9 @@
- {% for choice in form.status.field.choices %}