from django.urls import include, path from rest_framework.routers import DefaultRouter from .views import ( DepartmentViewSet, HospitalViewSet, LocationViewSet, MainSectionViewSet, OrganizationViewSet, PatientViewSet, StaffViewSet, SubSectionViewSet, api_location_list, api_main_section_list, api_subsection_list, ajax_main_sections, ajax_subsections, ) from . import ui_views app_name = 'organizations' router = DefaultRouter() router.register(r'organizations', OrganizationViewSet, basename='organization-api') router.register(r'hospitals', HospitalViewSet, basename='hospital-api') router.register(r'departments', DepartmentViewSet, basename='department-api') router.register(r'staff', StaffViewSet, basename='staff-api') router.register(r'patients', PatientViewSet, basename='patient-api') router.register(r'locations', LocationViewSet, basename='location-api') router.register(r'main-sections', MainSectionViewSet, basename='main-section-api') router.register(r'subsections', SubSectionViewSet, basename='subsection-api') urlpatterns = [ # UI Views (come first - more specific routes) path('organizations/create/', ui_views.organization_create, name='organization_create'), path('organizations//', ui_views.organization_detail, name='organization_detail'), path('organizations/', ui_views.organization_list, name='organization_list'), path('hospitals/', ui_views.hospital_list, name='hospital_list'), path('departments/', ui_views.department_list, name='department_list'), path('staff/create/', ui_views.staff_create, name='staff_create'), path('staff//edit/', ui_views.staff_update, name='staff_update'), path('staff//', ui_views.staff_detail, name='staff_detail'), path('staff/hierarchy/d3/', ui_views.staff_hierarchy_d3, name='staff_hierarchy_d3'), path('staff/hierarchy/', ui_views.staff_hierarchy, name='staff_hierarchy'), path('staff/', ui_views.staff_list, name='staff_list'), path('patients/', ui_views.patient_list, name='patient_list'), # API Routes for complaint form dropdowns (public access) path('dropdowns/locations/', api_location_list, name='api_location_list'), path('dropdowns/main-sections/', api_main_section_list, name='api_main_section_list'), path('dropdowns/subsections/', api_subsection_list, name='api_subsection_list'), # AJAX Routes for cascading dropdowns in complaint form path('ajax/main-sections/', ajax_main_sections, name='ajax_main_sections'), path('ajax/subsections/', ajax_subsections, name='ajax_subsections'), # API Routes (must come last - catches anything not matched above) path('api/', include(router.urls)), ]