Facility, origin zone and collector group could only be registered in the Django admin, which left the portal unable to onboard a new supply site, zone or group. Add list/create/edit screens for all three, and create/edit for mitigation actions, EUDR evidence and external-submission references on a due-diligence case. The origin-zone form keeps the map a view of the stored geometry, not a check of it: the map wording is unchanged and geometry is only required to be valid JSON. Verification is stamped from the acting user when the status moves to verified/rejected, and cleared when it returns to unverified. Nothing is removed from the admin; it stays as the superuser fallback. Adds an nginx /tiles/ route on the ops host so the map imagery loads there too (the tile view is root-mounted but ops remaps / to /ops/).
50 lines
3.9 KiB
Python
50 lines
3.9 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/new/', views.BatchCreateView.as_view(), name='batch_create'),
|
|
path('batches/<uuid:pk>/', views.BatchDetailView.as_view(), name='batch_detail'),
|
|
path('batches/<uuid:pk>/edit/', views.BatchUpdateView.as_view(), name='batch_update'),
|
|
path('batches/<uuid:pk>/lineage/', views.BatchLineageView.as_view(), name='batch_lineage'),
|
|
path('intakes/', views.IntakeListView.as_view(), name='intake_list'),
|
|
path('intakes/new/', views.IntakeCreateView.as_view(), name='intake_create'),
|
|
path('intakes/<uuid:pk>/edit/', views.IntakeUpdateView.as_view(), name='intake_update'),
|
|
path('facilities/', views.FacilityListView.as_view(), name='facility_list'),
|
|
path('facilities/new/', views.FacilityCreateView.as_view(), name='facility_create'),
|
|
path('facilities/<uuid:pk>/edit/', views.FacilityUpdateView.as_view(), name='facility_update'),
|
|
path('origin-zones/', views.OriginZoneListView.as_view(), name='origin_zone_list'),
|
|
path('origin-zones/new/', views.OriginZoneCreateView.as_view(), name='origin_zone_create'),
|
|
path('origin-zones/<uuid:pk>/edit/', views.OriginZoneUpdateView.as_view(), name='origin_zone_update'),
|
|
path('collector-groups/', views.CollectorGroupListView.as_view(), name='collector_group_list'),
|
|
path('collector-groups/new/', views.CollectorGroupCreateView.as_view(), name='collector_group_create'),
|
|
path('collector-groups/<uuid:pk>/edit/', views.CollectorGroupUpdateView.as_view(), name='collector_group_update'),
|
|
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/new/', views.ShipmentCreateView.as_view(), name='shipment_new'),
|
|
path('shipments/<uuid:pk>/', views.ShipmentDetailView.as_view(), name='shipment_detail'),
|
|
path('shipments/<uuid:pk>/edit/', views.ShipmentUpdateView.as_view(), name='shipment_update'),
|
|
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('documents/<uuid:pk>/download/', views.DocumentDownloadView.as_view(), name='document_download'),
|
|
path('certificates/<uuid:pk>/download/', views.CoADownloadView.as_view(), name='coa_download'),
|
|
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('eudr/<uuid:case_pk>/evidence/new/', views.EUDREvidenceCreateView.as_view(), name='eudr_evidence_create'),
|
|
path('eudr/<uuid:case_pk>/evidence/<uuid:pk>/edit/', views.EUDREvidenceUpdateView.as_view(), name='eudr_evidence_update'),
|
|
path('eudr/<uuid:case_pk>/mitigation/new/', views.MitigationActionCreateView.as_view(), name='eudr_mitigation_create'),
|
|
path('eudr/<uuid:case_pk>/mitigation/<uuid:pk>/edit/', views.MitigationActionUpdateView.as_view(), name='eudr_mitigation_update'),
|
|
path('eudr/<uuid:case_pk>/statement/<uuid:pk>/edit/', views.StatementReferenceUpdateView.as_view(), name='eudr_statement_update'),
|
|
path('help/', views.GuideIndexView.as_view(), name='guide_index'),
|
|
path('help/<path:page_path>/', views.GuideDetailView.as_view(), name='guide_detail'),
|
|
]
|