agdar/core/urls.py
Marwan Alwali 25c9701c34 update
2025-11-06 18:18:43 +03:00

85 lines
4.9 KiB
Python

"""
Core app URL configuration.
"""
from django.urls import path
from . import views
from . import api_consent
app_name = 'core'
urlpatterns = [
# Public Landing Page (Root URL)
path('', views.LandingPageView.as_view(), name='landing_page'),
# Contact Form Submission (Public - No authentication required)
path('contact/submit/', views.ContactMessageCreateView.as_view(), name='contact_submit'),
# Dashboard
path('dashboard/', views.DashboardView.as_view(), name='dashboard'),
# User Signup
path('signup/', views.SignupView.as_view(), name='signup'),
# API Endpoints
path('api/consent-content/', api_consent.get_consent_content, name='api_consent_content'),
# Patient URLs
path('patients/', views.PatientListView.as_view(), name='patient_list'),
path('patients/create/', views.PatientCreateView.as_view(), name='patient_create'),
path('patients/<uuid:pk>/', views.PatientDetailView.as_view(), name='patient_detail'),
path('patients/<uuid:pk>/update/', views.PatientUpdateView.as_view(), name='patient_update'),
path('patients/<uuid:pk>/pdf/', views.PatientSummaryPDFView.as_view(), name='patient_summary_pdf'),
path('patients/<uuid:pk>/email-pdf/', views.PatientSummaryEmailPDFView.as_view(), name='patient_summary_email_pdf'),
# Consent URLs
path('consents/', views.ConsentListView.as_view(), name='consent_list'),
path('consents/create/', views.ConsentCreateView.as_view(), name='consent_create'),
path('consents/<uuid:pk>/', views.ConsentDetailView.as_view(), name='consent_detail'),
path('consents/<uuid:pk>/pdf/', views.ConsentPDFView.as_view(), name='consent_pdf'),
path('consents/<uuid:pk>/email-pdf/', views.ConsentEmailPDFView.as_view(), name='consent_email_pdf'),
path('consents/<uuid:consent_id>/send-email/', views.ConsentSendEmailView.as_view(), name='consent_send_email'),
# Public Consent Signing URLs (No authentication required)
path('consent/sign/<str:token>/', views.ConsentSignPublicView.as_view(), name='consent_sign_public'),
path('consent/sign/<str:token>/submit/', views.ConsentSignPublicSubmitView.as_view(), name='consent_sign_public_submit'),
# Consent Template URLs
path('consent-templates/', views.ConsentTemplateListView.as_view(), name='consent_template_list'),
path('consent-templates/create/', views.ConsentTemplateCreateView.as_view(), name='consent_template_create'),
path('consent-templates/<uuid:pk>/', views.ConsentTemplateDetailView.as_view(), name='consent_template_detail'),
path('consent-templates/<uuid:pk>/edit/', views.ConsentTemplateUpdateView.as_view(), name='consent_template_update'),
path('consent-templates/<uuid:pk>/delete/', views.ConsentTemplateDeleteView.as_view(), name='consent_template_delete'),
# File History
path('file-history/', views.FileHistoryView.as_view(), name='file_history'),
# Tenant Settings URLs
path('settings/', views.TenantSettingsView.as_view(), name='tenant_settings'),
path('settings/<str:category>/', views.CategorySettingsView.as_view(), name='category_settings'),
path('settings/export/', views.SettingsExportView.as_view(), name='settings_export'),
path('settings/import/', views.SettingsImportView.as_view(), name='settings_import'),
# User Profile URLs
path('profile/', views.UserProfileView.as_view(), name='user_profile'),
path('profile/edit/', views.UserProfileUpdateView.as_view(), name='user_profile_edit'),
path('profile/password/', views.UserPasswordChangeView.as_view(), name='user_password_change'),
# Staff Management URLs (Admin only)
path('staff/', views.UserListView.as_view(), name='user_list'),
path('staff/create/', views.UserCreateView.as_view(), name='user_create'),
path('staff/<uuid:pk>/', views.UserDetailView.as_view(), name='user_detail'),
path('staff/<uuid:pk>/edit/', views.UserUpdateView.as_view(), name='user_update'),
path('staff/<uuid:pk>/deactivate/', views.UserDeactivateView.as_view(), name='user_deactivate'),
# Employee HR Self-Service URLs
path('my-hr/', views.EmployeeHRDashboardView.as_view(), name='employee_hr_dashboard'),
path('my-hr/attendance/', views.EmployeeAttendanceView.as_view(), name='employee_attendance'),
path('my-hr/schedule/', views.EmployeeScheduleView.as_view(), name='employee_schedule'),
path('my-hr/leave-requests/', views.EmployeeLeaveRequestListView.as_view(), name='employee_leave_requests'),
path('my-hr/leave-requests/new/', views.EmployeeLeaveRequestCreateView.as_view(), name='employee_leave_request_create'),
path('my-hr/leave-requests/<uuid:pk>/', views.EmployeeLeaveRequestDetailView.as_view(), name='employee_leave_request_detail'),
path('my-hr/holidays/', views.EmployeeHolidaysView.as_view(), name='employee_holidays'),
path('my-hr/clock-in-out/', views.EmployeeClockInOutView.as_view(), name='employee_clock_in_out'),
]