HH/apps/standards/urls.py
2026-03-09 16:10:24 +03:00

73 lines
3.2 KiB
Python

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from apps.standards.views import (
StandardSourceViewSet,
StandardCategoryViewSet,
StandardViewSet,
StandardComplianceViewSet,
StandardAttachmentViewSet,
standards_dashboard,
department_standards_view,
standard_detail,
standard_create,
standard_update,
standard_delete,
standard_compliance_update,
standard_attachment_upload,
standard_attachment_delete,
standards_search,
get_compliance_status,
create_compliance_ajax,
update_compliance_ajax,
source_list,
source_create,
source_update,
source_delete,
category_list,
category_create,
category_update,
category_delete,
)
# API Router
router = DefaultRouter()
router.register(r"sources", StandardSourceViewSet, basename="standard-source")
router.register(r"categories", StandardCategoryViewSet, basename="standard-category")
router.register(r"standards", StandardViewSet, basename="standard")
router.register(r"compliance", StandardComplianceViewSet, basename="standard-compliance")
router.register(r"attachments", StandardAttachmentViewSet, basename="standard-attachment")
app_name = "standards"
urlpatterns = [
# Custom AJAX endpoints (MUST be before router to take precedence)
path("api/compliance/create/", create_compliance_ajax, name="compliance_create_ajax"),
path("api/compliance/update/", update_compliance_ajax, name="compliance_update_ajax"),
path("api/compliance/<uuid:department_id>/<uuid:standard_id>/", get_compliance_status, name="compliance_status"),
# API endpoints (router)
path("api/", include(router.urls)),
# UI Views
path("", standards_dashboard, name="dashboard"),
path("search/", standards_search, name="search"),
path("departments/<uuid:pk>/", department_standards_view, name="department_standards"),
path("departments/<uuid:department_id>/create-standard/", standard_create, name="standard_create"),
path("standards/create/", standard_create, name="standard_create_global"),
path("standards/<uuid:pk>/update/", standard_update, name="standard_update"),
path("standards/<uuid:pk>/delete/", standard_delete, name="standard_delete"),
path("standards/<uuid:pk>/", standard_detail, name="standard_detail"),
path("compliance/<uuid:compliance_id>/update/", standard_compliance_update, name="standard_compliance_update"),
path("attachments/upload/<uuid:compliance_id>/", standard_attachment_upload, name="attachment_upload"),
path("attachments/<uuid:pk>/delete/", standard_attachment_delete, name="attachment_delete"),
# Source Management
path("sources/", source_list, name="source_list"),
path("sources/create/", source_create, name="source_create"),
path("sources/<uuid:pk>/update/", source_update, name="source_update"),
path("sources/<uuid:pk>/delete/", source_delete, name="source_delete"),
# Category Management
path("categories/", category_list, name="category_list"),
path("categories/create/", category_create, name="category_create"),
path("categories/<uuid:pk>/update/", category_update, name="category_update"),
path("categories/<uuid:pk>/delete/", category_delete, name="category_delete"),
]