1# SPDX-License-Identifier: Apache-2.0
2# Copyright (C) 2025 Marcin Zieba <marcinpsk@gmail.com>
3from django.urls import path
4from . import views
5
6urlpatterns = [
7 # Import Profiles
8 path("profiles/", views.ImportProfileListView.as_view(), name="importprofile_list"),
9 path("profiles/add/", views.ImportProfileEditView.as_view(), name="importprofile_add"),
10 path("profiles/<int:pk>/", views.ImportProfileView.as_view(), name="importprofile"),
11 path("profiles/<int:pk>/edit/", views.ImportProfileEditView.as_view(), name="importprofile_edit"),
12 path("profiles/<int:pk>/delete/", views.ImportProfileDeleteView.as_view(), name="importprofile_delete"),
13 # Column Mappings
14 path("profiles/<int:profile_pk>/columns/add/", views.ColumnMappingAddView.as_view(), name="columnmapping_add"),
15 path("column-mappings/<int:pk>/edit/", views.ColumnMappingEditView.as_view(), name="columnmapping_edit"),
16 path("column-mappings/<int:pk>/delete/", views.ColumnMappingDeleteView.as_view(), name="columnmapping_delete"),
17 # Class → Role Mappings
18 path(
19 "profiles/<int:profile_pk>/class-roles/add/",
20 views.ClassRoleMappingAddView.as_view(),
21 name="classrolemapping_add",
22 ),
23 path("class-role-mappings/<int:pk>/edit/", views.ClassRoleMappingEditView.as_view(), name="classrolemapping_edit"),
24 path(
25 "class-role-mappings/<int:pk>/delete/",
26 views.ClassRoleMappingDeleteView.as_view(),
27 name="classrolemapping_delete",
28 ),
29 # Device Type Mappings
30 path(
31 "profiles/<int:profile_pk>/device-types/add/",
32 views.DeviceTypeMappingAddView.as_view(),
33 name="devicetypemapping_add",
34 ),
35 path(
36 "device-type-mappings/<int:pk>/edit/", views.DeviceTypeMappingEditView.as_view(), name="devicetypemapping_edit"
37 ),
38 path(
39 "device-type-mappings/<int:pk>/delete/",
40 views.DeviceTypeMappingDeleteView.as_view(),
41 name="devicetypemapping_delete",
42 ),
43 # Column Transform Rules
44 path(
45 "profiles/<int:profile_pk>/transforms/add/",
46 views.ColumnTransformRuleAddView.as_view(),
47 name="columntransformrule_add",
48 ),
49 path(
50 "column-transforms/<int:pk>/edit/", views.ColumnTransformRuleEditView.as_view(), name="columntransformrule_edit"
51 ),
52 path(
53 "column-transforms/<int:pk>/delete/",
54 views.ColumnTransformRuleDeleteView.as_view(),
55 name="columntransformrule_delete",
56 ),
57 # Import Wizard
58 path("import/", views.ImportSetupView.as_view(), name="import_setup"),
59 path("import/preview/", views.ImportPreviewView.as_view(), name="import_preview"),
60 path("import/run/", views.ImportRunView.as_view(), name="import_run"),
61 path("import/results/", views.ImportResultsView.as_view(), name="import_results"),
62 # Ignore / Unignore device
63 path("ignore-device/", views.IgnoreDeviceView.as_view(), name="ignore_device"),
64 path("unignore-device/", views.UnignoreDeviceView.as_view(), name="unignore_device"),
65 # Save resolution (rerere)
66 path("save-resolution/", views.SaveResolutionView.as_view(), name="save_resolution"),
67 # Source resolutions list (per profile)
68 path(
69 "profiles/<int:profile_pk>/resolutions/",
70 views.SourceResolutionListView.as_view(),
71 name="source_resolution_list",
72 ),
73 path(
74 "source-resolutions/<int:pk>/delete/",
75 views.SourceResolutionDeleteView.as_view(),
76 name="source_resolution_delete",
77 ),
78 # Device type analysis
79 path("analysis/", views.DeviceTypeAnalysisView.as_view(), name="device_type_analysis"),
80 path("analysis/<int:profile_pk>/", views.DeviceTypeAnalysisView.as_view(), name="device_type_analysis_profile"),
81 # Bulk YAML import
82 path("profiles/<int:profile_pk>/bulk-yaml/", views.BulkYamlImportView.as_view(), name="bulk_yaml_import"),
83 # Profile YAML export / full-profile import
84 path("profiles/<int:pk>/export-yaml/", views.ExportProfileYamlView.as_view(), name="exportprofile_yaml"),
85 path("import-profile-yaml/", views.ImportProfileYamlView.as_view(), name="import_profile_yaml"),
86 # AJAX helpers
87 path("check-device/", views.CheckDeviceNameView.as_view(), name="check_device"),
88 path("search-objects/", views.SearchNetBoxObjectsView.as_view(), name="search_objects"),
89 # Quick-resolve views (POST from preview inline fix buttons)
90 path("quick-create-manufacturer/", views.QuickCreateManufacturerView.as_view(), name="quick_create_manufacturer"),
91 path(
92 "quick-resolve-manufacturer/", views.QuickResolveManufacturerView.as_view(), name="quick_resolve_manufacturer"
93 ),
94 path("quick-resolve-device-type/", views.QuickResolveDeviceTypeView.as_view(), name="quick_resolve_device_type"),
95 path("quick-add-class-mapping/", views.QuickAddClassRoleMappingView.as_view(), name="quick_add_class_mapping"),
96 path("match-existing-device/", views.MatchExistingDeviceView.as_view(), name="match_existing_device"),
97 path("auto-match-devices/", views.AutoMatchDevicesView.as_view(), name="auto_match_devices"),
98 # Import Job history
99 path("jobs/", views.ImportJobListView.as_view(), name="importjob_list"),
100]