- New apps/guides app with GuidePage model and audience mapping by wiki path - sync_guides management command: one-way read-only sync from wikijs DB - Read-only wikijs_ro DB role + WIKI_DB_* env config (secrets, gitignored) - Markdown rendering with bleach sanitisation; rewrites internal guide links to the portal help root and wiki image paths to WIKI_PUBLIC_BASE - /portal/help/ (buyer) and /ops/help/ (ops) index + detail views with role-based audience filtering (404 on cross-role guides) - Help nav item added to both portal base templates - Tests: audience filtering, markdown sanitisation, link rewriting, sync command
26 lines
1.5 KiB
Python
26 lines
1.5 KiB
Python
from django.urls import path
|
|
from . import views
|
|
|
|
app_name = 'ops'
|
|
|
|
urlpatterns = [
|
|
path('', views.DashboardView.as_view(), name='dashboard'),
|
|
path('batches/', views.BatchListView.as_view(), name='batch_list'),
|
|
path('batches/<uuid:pk>/', views.BatchDetailView.as_view(), name='batch_detail'),
|
|
path('qc/', views.QCListView.as_view(), name='qc_list'),
|
|
path('qc/<uuid:pk>/', views.QCDetailView.as_view(), name='qc_detail'),
|
|
path('shipments/', views.ShipmentListView.as_view(), name='shipment_list'),
|
|
path('shipments/<uuid:pk>/', views.ShipmentDetailView.as_view(), name='shipment_detail'),
|
|
path('capa/', views.CAPAListView.as_view(), name='capa_list'),
|
|
path('capa/<uuid:pk>/', views.CAPADetailView.as_view(), name='capa_detail'),
|
|
path('documents/', views.DocumentListView.as_view(), name='document_list'),
|
|
path('esg/', views.ESGListView.as_view(), name='esg_list'),
|
|
path('qc/verify/', views.QCVerifyListView.as_view(), name='qc_verify_list'),
|
|
path('qc/verify/<uuid:pk>/', views.QCVerifyDetailView.as_view(), name='qc_verify_detail'),
|
|
path('coa/', views.COAReviewListView.as_view(), name='coa_review_list'),
|
|
path('coa/<uuid:pk>/', views.COAReviewDetailView.as_view(), name='coa_review_detail'),
|
|
path('eudr/', views.EUDRCaseListView.as_view(), name='eudr_list'),
|
|
path('eudr/<uuid:pk>/', views.EUDRCaseDetailView.as_view(), name='eudr_detail'),
|
|
path('help/', views.GuideIndexView.as_view(), name='guide_index'),
|
|
path('help/<path:page_path>/', views.GuideDetailView.as_view(), name='guide_detail'),
|
|
]
|