85 lines
4.9 KiB
Python
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'),
|
|
]
|