From a58bbccfd39268c7c67d8a9ffb16d7153667dc17 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 5 Feb 2020 16:12:48 -0500 Subject: [PATCH] Fixes #4094: Convert unnecessary regular expressions to strings in URL patterns --- netbox/circuits/api/urls.py | 10 +- netbox/circuits/urls.py | 60 ++-- netbox/dcim/api/urls.py | 74 ++--- netbox/dcim/urls.py | 496 +++++++++++++++--------------- netbox/extras/api/urls.py | 20 +- netbox/extras/urls.py | 46 +-- netbox/ipam/api/urls.py | 20 +- netbox/ipam/urls.py | 152 ++++----- netbox/netbox/urls.py | 54 ++-- netbox/secrets/api/urls.py | 10 +- netbox/secrets/urls.py | 28 +- netbox/tenancy/api/urls.py | 6 +- netbox/tenancy/urls.py | 30 +- netbox/users/urls.py | 18 +- netbox/virtualization/api/urls.py | 12 +- netbox/virtualization/urls.py | 80 ++--- 16 files changed, 558 insertions(+), 558 deletions(-) diff --git a/netbox/circuits/api/urls.py b/netbox/circuits/api/urls.py index b9d1b439b..cd3015d0a 100644 --- a/netbox/circuits/api/urls.py +++ b/netbox/circuits/api/urls.py @@ -15,15 +15,15 @@ router = routers.DefaultRouter() router.APIRootView = CircuitsRootView # Field choices -router.register(r'_choices', views.CircuitsFieldChoicesViewSet, basename='field-choice') +router.register('_choices', views.CircuitsFieldChoicesViewSet, basename='field-choice') # Providers -router.register(r'providers', views.ProviderViewSet) +router.register('providers', views.ProviderViewSet) # Circuits -router.register(r'circuit-types', views.CircuitTypeViewSet) -router.register(r'circuits', views.CircuitViewSet) -router.register(r'circuit-terminations', views.CircuitTerminationViewSet) +router.register('circuit-types', views.CircuitTypeViewSet) +router.register('circuits', views.CircuitViewSet) +router.register('circuit-terminations', views.CircuitTerminationViewSet) app_name = 'circuits-api' urlpatterns = router.urls diff --git a/netbox/circuits/urls.py b/netbox/circuits/urls.py index c142a831a..72d9720df 100644 --- a/netbox/circuits/urls.py +++ b/netbox/circuits/urls.py @@ -9,42 +9,42 @@ app_name = 'circuits' urlpatterns = [ # Providers - path(r'providers/', views.ProviderListView.as_view(), name='provider_list'), - path(r'providers/add/', views.ProviderCreateView.as_view(), name='provider_add'), - path(r'providers/import/', views.ProviderBulkImportView.as_view(), name='provider_import'), - path(r'providers/edit/', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'), - path(r'providers/delete/', views.ProviderBulkDeleteView.as_view(), name='provider_bulk_delete'), - path(r'providers//', views.ProviderView.as_view(), name='provider'), - path(r'providers//edit/', views.ProviderEditView.as_view(), name='provider_edit'), - path(r'providers//delete/', views.ProviderDeleteView.as_view(), name='provider_delete'), - path(r'providers//changelog/', ObjectChangeLogView.as_view(), name='provider_changelog', kwargs={'model': Provider}), + path('providers/', views.ProviderListView.as_view(), name='provider_list'), + path('providers/add/', views.ProviderCreateView.as_view(), name='provider_add'), + path('providers/import/', views.ProviderBulkImportView.as_view(), name='provider_import'), + path('providers/edit/', views.ProviderBulkEditView.as_view(), name='provider_bulk_edit'), + path('providers/delete/', views.ProviderBulkDeleteView.as_view(), name='provider_bulk_delete'), + path('providers//', views.ProviderView.as_view(), name='provider'), + path('providers//edit/', views.ProviderEditView.as_view(), name='provider_edit'), + path('providers//delete/', views.ProviderDeleteView.as_view(), name='provider_delete'), + path('providers//changelog/', ObjectChangeLogView.as_view(), name='provider_changelog', kwargs={'model': Provider}), # Circuit types - path(r'circuit-types/', views.CircuitTypeListView.as_view(), name='circuittype_list'), - path(r'circuit-types/add/', views.CircuitTypeCreateView.as_view(), name='circuittype_add'), - path(r'circuit-types/import/', views.CircuitTypeBulkImportView.as_view(), name='circuittype_import'), - path(r'circuit-types/delete/', views.CircuitTypeBulkDeleteView.as_view(), name='circuittype_bulk_delete'), - path(r'circuit-types//edit/', views.CircuitTypeEditView.as_view(), name='circuittype_edit'), - path(r'circuit-types//changelog/', ObjectChangeLogView.as_view(), name='circuittype_changelog', kwargs={'model': CircuitType}), + path('circuit-types/', views.CircuitTypeListView.as_view(), name='circuittype_list'), + path('circuit-types/add/', views.CircuitTypeCreateView.as_view(), name='circuittype_add'), + path('circuit-types/import/', views.CircuitTypeBulkImportView.as_view(), name='circuittype_import'), + path('circuit-types/delete/', views.CircuitTypeBulkDeleteView.as_view(), name='circuittype_bulk_delete'), + path('circuit-types//edit/', views.CircuitTypeEditView.as_view(), name='circuittype_edit'), + path('circuit-types//changelog/', ObjectChangeLogView.as_view(), name='circuittype_changelog', kwargs={'model': CircuitType}), # Circuits - path(r'circuits/', views.CircuitListView.as_view(), name='circuit_list'), - path(r'circuits/add/', views.CircuitCreateView.as_view(), name='circuit_add'), - path(r'circuits/import/', views.CircuitBulkImportView.as_view(), name='circuit_import'), - path(r'circuits/edit/', views.CircuitBulkEditView.as_view(), name='circuit_bulk_edit'), - path(r'circuits/delete/', views.CircuitBulkDeleteView.as_view(), name='circuit_bulk_delete'), - path(r'circuits//', views.CircuitView.as_view(), name='circuit'), - path(r'circuits//edit/', views.CircuitEditView.as_view(), name='circuit_edit'), - path(r'circuits//delete/', views.CircuitDeleteView.as_view(), name='circuit_delete'), - path(r'circuits//changelog/', ObjectChangeLogView.as_view(), name='circuit_changelog', kwargs={'model': Circuit}), - path(r'circuits//terminations/swap/', views.circuit_terminations_swap, name='circuit_terminations_swap'), + path('circuits/', views.CircuitListView.as_view(), name='circuit_list'), + path('circuits/add/', views.CircuitCreateView.as_view(), name='circuit_add'), + path('circuits/import/', views.CircuitBulkImportView.as_view(), name='circuit_import'), + path('circuits/edit/', views.CircuitBulkEditView.as_view(), name='circuit_bulk_edit'), + path('circuits/delete/', views.CircuitBulkDeleteView.as_view(), name='circuit_bulk_delete'), + path('circuits//', views.CircuitView.as_view(), name='circuit'), + path('circuits//edit/', views.CircuitEditView.as_view(), name='circuit_edit'), + path('circuits//delete/', views.CircuitDeleteView.as_view(), name='circuit_delete'), + path('circuits//changelog/', ObjectChangeLogView.as_view(), name='circuit_changelog', kwargs={'model': Circuit}), + path('circuits//terminations/swap/', views.circuit_terminations_swap, name='circuit_terminations_swap'), # Circuit terminations - path(r'circuits//terminations/add/', views.CircuitTerminationCreateView.as_view(), name='circuittermination_add'), - path(r'circuit-terminations//edit/', views.CircuitTerminationEditView.as_view(), name='circuittermination_edit'), - path(r'circuit-terminations//delete/', views.CircuitTerminationDeleteView.as_view(), name='circuittermination_delete'), - path(r'circuit-terminations//connect//', CableCreateView.as_view(), name='circuittermination_connect', kwargs={'termination_a_type': CircuitTermination}), - path(r'circuit-terminations//trace/', CableTraceView.as_view(), name='circuittermination_trace', kwargs={'model': CircuitTermination}), + path('circuits//terminations/add/', views.CircuitTerminationCreateView.as_view(), name='circuittermination_add'), + path('circuit-terminations//edit/', views.CircuitTerminationEditView.as_view(), name='circuittermination_edit'), + path('circuit-terminations//delete/', views.CircuitTerminationDeleteView.as_view(), name='circuittermination_delete'), + path('circuit-terminations//connect//', CableCreateView.as_view(), name='circuittermination_connect', kwargs={'termination_a_type': CircuitTermination}), + path('circuit-terminations//trace/', CableTraceView.as_view(), name='circuittermination_trace', kwargs={'model': CircuitTermination}), ] diff --git a/netbox/dcim/api/urls.py b/netbox/dcim/api/urls.py index fd55d9b05..5a915becc 100644 --- a/netbox/dcim/api/urls.py +++ b/netbox/dcim/api/urls.py @@ -15,65 +15,65 @@ router = routers.DefaultRouter() router.APIRootView = DCIMRootView # Field choices -router.register(r'_choices', views.DCIMFieldChoicesViewSet, basename='field-choice') +router.register('_choices', views.DCIMFieldChoicesViewSet, basename='field-choice') # Sites -router.register(r'regions', views.RegionViewSet) -router.register(r'sites', views.SiteViewSet) +router.register('regions', views.RegionViewSet) +router.register('sites', views.SiteViewSet) # Racks -router.register(r'rack-groups', views.RackGroupViewSet) -router.register(r'rack-roles', views.RackRoleViewSet) -router.register(r'racks', views.RackViewSet) -router.register(r'rack-reservations', views.RackReservationViewSet) +router.register('rack-groups', views.RackGroupViewSet) +router.register('rack-roles', views.RackRoleViewSet) +router.register('racks', views.RackViewSet) +router.register('rack-reservations', views.RackReservationViewSet) # Device types -router.register(r'manufacturers', views.ManufacturerViewSet) -router.register(r'device-types', views.DeviceTypeViewSet) +router.register('manufacturers', views.ManufacturerViewSet) +router.register('device-types', views.DeviceTypeViewSet) # Device type components -router.register(r'console-port-templates', views.ConsolePortTemplateViewSet) -router.register(r'console-server-port-templates', views.ConsoleServerPortTemplateViewSet) -router.register(r'power-port-templates', views.PowerPortTemplateViewSet) -router.register(r'power-outlet-templates', views.PowerOutletTemplateViewSet) -router.register(r'interface-templates', views.InterfaceTemplateViewSet) -router.register(r'front-port-templates', views.FrontPortTemplateViewSet) -router.register(r'rear-port-templates', views.RearPortTemplateViewSet) -router.register(r'device-bay-templates', views.DeviceBayTemplateViewSet) +router.register('console-port-templates', views.ConsolePortTemplateViewSet) +router.register('console-server-port-templates', views.ConsoleServerPortTemplateViewSet) +router.register('power-port-templates', views.PowerPortTemplateViewSet) +router.register('power-outlet-templates', views.PowerOutletTemplateViewSet) +router.register('interface-templates', views.InterfaceTemplateViewSet) +router.register('front-port-templates', views.FrontPortTemplateViewSet) +router.register('rear-port-templates', views.RearPortTemplateViewSet) +router.register('device-bay-templates', views.DeviceBayTemplateViewSet) # Devices -router.register(r'device-roles', views.DeviceRoleViewSet) -router.register(r'platforms', views.PlatformViewSet) -router.register(r'devices', views.DeviceViewSet) +router.register('device-roles', views.DeviceRoleViewSet) +router.register('platforms', views.PlatformViewSet) +router.register('devices', views.DeviceViewSet) # Device components -router.register(r'console-ports', views.ConsolePortViewSet) -router.register(r'console-server-ports', views.ConsoleServerPortViewSet) -router.register(r'power-ports', views.PowerPortViewSet) -router.register(r'power-outlets', views.PowerOutletViewSet) -router.register(r'interfaces', views.InterfaceViewSet) -router.register(r'front-ports', views.FrontPortViewSet) -router.register(r'rear-ports', views.RearPortViewSet) -router.register(r'device-bays', views.DeviceBayViewSet) -router.register(r'inventory-items', views.InventoryItemViewSet) +router.register('console-ports', views.ConsolePortViewSet) +router.register('console-server-ports', views.ConsoleServerPortViewSet) +router.register('power-ports', views.PowerPortViewSet) +router.register('power-outlets', views.PowerOutletViewSet) +router.register('interfaces', views.InterfaceViewSet) +router.register('front-ports', views.FrontPortViewSet) +router.register('rear-ports', views.RearPortViewSet) +router.register('device-bays', views.DeviceBayViewSet) +router.register('inventory-items', views.InventoryItemViewSet) # Connections -router.register(r'console-connections', views.ConsoleConnectionViewSet, basename='consoleconnections') -router.register(r'power-connections', views.PowerConnectionViewSet, basename='powerconnections') -router.register(r'interface-connections', views.InterfaceConnectionViewSet, basename='interfaceconnections') +router.register('console-connections', views.ConsoleConnectionViewSet, basename='consoleconnections') +router.register('power-connections', views.PowerConnectionViewSet, basename='powerconnections') +router.register('interface-connections', views.InterfaceConnectionViewSet, basename='interfaceconnections') # Cables -router.register(r'cables', views.CableViewSet) +router.register('cables', views.CableViewSet) # Virtual chassis -router.register(r'virtual-chassis', views.VirtualChassisViewSet) +router.register('virtual-chassis', views.VirtualChassisViewSet) # Power -router.register(r'power-panels', views.PowerPanelViewSet) -router.register(r'power-feeds', views.PowerFeedViewSet) +router.register('power-panels', views.PowerPanelViewSet) +router.register('power-feeds', views.PowerFeedViewSet) # Miscellaneous -router.register(r'connected-device', views.ConnectedDeviceViewSet, basename='connected-device') +router.register('connected-device', views.ConnectedDeviceViewSet, basename='connected-device') app_name = 'dcim-api' urlpatterns = router.urls diff --git a/netbox/dcim/urls.py b/netbox/dcim/urls.py index 121beff97..caf1ccd16 100644 --- a/netbox/dcim/urls.py +++ b/netbox/dcim/urls.py @@ -14,321 +14,321 @@ app_name = 'dcim' urlpatterns = [ # Regions - path(r'regions/', views.RegionListView.as_view(), name='region_list'), - path(r'regions/add/', views.RegionCreateView.as_view(), name='region_add'), - path(r'regions/import/', views.RegionBulkImportView.as_view(), name='region_import'), - path(r'regions/delete/', views.RegionBulkDeleteView.as_view(), name='region_bulk_delete'), - path(r'regions//edit/', views.RegionEditView.as_view(), name='region_edit'), - path(r'regions//changelog/', ObjectChangeLogView.as_view(), name='region_changelog', kwargs={'model': Region}), + path('regions/', views.RegionListView.as_view(), name='region_list'), + path('regions/add/', views.RegionCreateView.as_view(), name='region_add'), + path('regions/import/', views.RegionBulkImportView.as_view(), name='region_import'), + path('regions/delete/', views.RegionBulkDeleteView.as_view(), name='region_bulk_delete'), + path('regions//edit/', views.RegionEditView.as_view(), name='region_edit'), + path('regions//changelog/', ObjectChangeLogView.as_view(), name='region_changelog', kwargs={'model': Region}), # Sites - path(r'sites/', views.SiteListView.as_view(), name='site_list'), - path(r'sites/add/', views.SiteCreateView.as_view(), name='site_add'), - path(r'sites/import/', views.SiteBulkImportView.as_view(), name='site_import'), - path(r'sites/edit/', views.SiteBulkEditView.as_view(), name='site_bulk_edit'), - path(r'sites/delete/', views.SiteBulkDeleteView.as_view(), name='site_bulk_delete'), - path(r'sites//', views.SiteView.as_view(), name='site'), - path(r'sites//edit/', views.SiteEditView.as_view(), name='site_edit'), - path(r'sites//delete/', views.SiteDeleteView.as_view(), name='site_delete'), - path(r'sites//changelog/', ObjectChangeLogView.as_view(), name='site_changelog', kwargs={'model': Site}), - path(r'sites//images/add/', ImageAttachmentEditView.as_view(), name='site_add_image', kwargs={'model': Site}), + path('sites/', views.SiteListView.as_view(), name='site_list'), + path('sites/add/', views.SiteCreateView.as_view(), name='site_add'), + path('sites/import/', views.SiteBulkImportView.as_view(), name='site_import'), + path('sites/edit/', views.SiteBulkEditView.as_view(), name='site_bulk_edit'), + path('sites/delete/', views.SiteBulkDeleteView.as_view(), name='site_bulk_delete'), + path('sites//', views.SiteView.as_view(), name='site'), + path('sites//edit/', views.SiteEditView.as_view(), name='site_edit'), + path('sites//delete/', views.SiteDeleteView.as_view(), name='site_delete'), + path('sites//changelog/', ObjectChangeLogView.as_view(), name='site_changelog', kwargs={'model': Site}), + path('sites//images/add/', ImageAttachmentEditView.as_view(), name='site_add_image', kwargs={'model': Site}), # Rack groups - path(r'rack-groups/', views.RackGroupListView.as_view(), name='rackgroup_list'), - path(r'rack-groups/add/', views.RackGroupCreateView.as_view(), name='rackgroup_add'), - path(r'rack-groups/import/', views.RackGroupBulkImportView.as_view(), name='rackgroup_import'), - path(r'rack-groups/delete/', views.RackGroupBulkDeleteView.as_view(), name='rackgroup_bulk_delete'), - path(r'rack-groups//edit/', views.RackGroupEditView.as_view(), name='rackgroup_edit'), - path(r'rack-groups//changelog/', ObjectChangeLogView.as_view(), name='rackgroup_changelog', kwargs={'model': RackGroup}), + path('rack-groups/', views.RackGroupListView.as_view(), name='rackgroup_list'), + path('rack-groups/add/', views.RackGroupCreateView.as_view(), name='rackgroup_add'), + path('rack-groups/import/', views.RackGroupBulkImportView.as_view(), name='rackgroup_import'), + path('rack-groups/delete/', views.RackGroupBulkDeleteView.as_view(), name='rackgroup_bulk_delete'), + path('rack-groups//edit/', views.RackGroupEditView.as_view(), name='rackgroup_edit'), + path('rack-groups//changelog/', ObjectChangeLogView.as_view(), name='rackgroup_changelog', kwargs={'model': RackGroup}), # Rack roles - path(r'rack-roles/', views.RackRoleListView.as_view(), name='rackrole_list'), - path(r'rack-roles/add/', views.RackRoleCreateView.as_view(), name='rackrole_add'), - path(r'rack-roles/import/', views.RackRoleBulkImportView.as_view(), name='rackrole_import'), - path(r'rack-roles/delete/', views.RackRoleBulkDeleteView.as_view(), name='rackrole_bulk_delete'), - path(r'rack-roles//edit/', views.RackRoleEditView.as_view(), name='rackrole_edit'), - path(r'rack-roles//changelog/', ObjectChangeLogView.as_view(), name='rackrole_changelog', kwargs={'model': RackRole}), + path('rack-roles/', views.RackRoleListView.as_view(), name='rackrole_list'), + path('rack-roles/add/', views.RackRoleCreateView.as_view(), name='rackrole_add'), + path('rack-roles/import/', views.RackRoleBulkImportView.as_view(), name='rackrole_import'), + path('rack-roles/delete/', views.RackRoleBulkDeleteView.as_view(), name='rackrole_bulk_delete'), + path('rack-roles//edit/', views.RackRoleEditView.as_view(), name='rackrole_edit'), + path('rack-roles//changelog/', ObjectChangeLogView.as_view(), name='rackrole_changelog', kwargs={'model': RackRole}), # Rack reservations - path(r'rack-reservations/', views.RackReservationListView.as_view(), name='rackreservation_list'), - path(r'rack-reservations/edit/', views.RackReservationBulkEditView.as_view(), name='rackreservation_bulk_edit'), - path(r'rack-reservations/delete/', views.RackReservationBulkDeleteView.as_view(), name='rackreservation_bulk_delete'), - path(r'rack-reservations//edit/', views.RackReservationEditView.as_view(), name='rackreservation_edit'), - path(r'rack-reservations//delete/', views.RackReservationDeleteView.as_view(), name='rackreservation_delete'), - path(r'rack-reservations//changelog/', ObjectChangeLogView.as_view(), name='rackreservation_changelog', kwargs={'model': RackReservation}), + path('rack-reservations/', views.RackReservationListView.as_view(), name='rackreservation_list'), + path('rack-reservations/edit/', views.RackReservationBulkEditView.as_view(), name='rackreservation_bulk_edit'), + path('rack-reservations/delete/', views.RackReservationBulkDeleteView.as_view(), name='rackreservation_bulk_delete'), + path('rack-reservations//edit/', views.RackReservationEditView.as_view(), name='rackreservation_edit'), + path('rack-reservations//delete/', views.RackReservationDeleteView.as_view(), name='rackreservation_delete'), + path('rack-reservations//changelog/', ObjectChangeLogView.as_view(), name='rackreservation_changelog', kwargs={'model': RackReservation}), # Racks - path(r'racks/', views.RackListView.as_view(), name='rack_list'), - path(r'rack-elevations/', views.RackElevationListView.as_view(), name='rack_elevation_list'), - path(r'racks/add/', views.RackCreateView.as_view(), name='rack_add'), - path(r'racks/import/', views.RackBulkImportView.as_view(), name='rack_import'), - path(r'racks/edit/', views.RackBulkEditView.as_view(), name='rack_bulk_edit'), - path(r'racks/delete/', views.RackBulkDeleteView.as_view(), name='rack_bulk_delete'), - path(r'racks//', views.RackView.as_view(), name='rack'), - path(r'racks//edit/', views.RackEditView.as_view(), name='rack_edit'), - path(r'racks//delete/', views.RackDeleteView.as_view(), name='rack_delete'), - path(r'racks//changelog/', ObjectChangeLogView.as_view(), name='rack_changelog', kwargs={'model': Rack}), - path(r'racks//reservations/add/', views.RackReservationCreateView.as_view(), name='rack_add_reservation'), - path(r'racks//images/add/', ImageAttachmentEditView.as_view(), name='rack_add_image', kwargs={'model': Rack}), + path('racks/', views.RackListView.as_view(), name='rack_list'), + path('rack-elevations/', views.RackElevationListView.as_view(), name='rack_elevation_list'), + path('racks/add/', views.RackCreateView.as_view(), name='rack_add'), + path('racks/import/', views.RackBulkImportView.as_view(), name='rack_import'), + path('racks/edit/', views.RackBulkEditView.as_view(), name='rack_bulk_edit'), + path('racks/delete/', views.RackBulkDeleteView.as_view(), name='rack_bulk_delete'), + path('racks//', views.RackView.as_view(), name='rack'), + path('racks//edit/', views.RackEditView.as_view(), name='rack_edit'), + path('racks//delete/', views.RackDeleteView.as_view(), name='rack_delete'), + path('racks//changelog/', ObjectChangeLogView.as_view(), name='rack_changelog', kwargs={'model': Rack}), + path('racks//reservations/add/', views.RackReservationCreateView.as_view(), name='rack_add_reservation'), + path('racks//images/add/', ImageAttachmentEditView.as_view(), name='rack_add_image', kwargs={'model': Rack}), # Manufacturers - path(r'manufacturers/', views.ManufacturerListView.as_view(), name='manufacturer_list'), - path(r'manufacturers/add/', views.ManufacturerCreateView.as_view(), name='manufacturer_add'), - path(r'manufacturers/import/', views.ManufacturerBulkImportView.as_view(), name='manufacturer_import'), - path(r'manufacturers/delete/', views.ManufacturerBulkDeleteView.as_view(), name='manufacturer_bulk_delete'), - path(r'manufacturers//edit/', views.ManufacturerEditView.as_view(), name='manufacturer_edit'), - path(r'manufacturers//changelog/', ObjectChangeLogView.as_view(), name='manufacturer_changelog', kwargs={'model': Manufacturer}), + path('manufacturers/', views.ManufacturerListView.as_view(), name='manufacturer_list'), + path('manufacturers/add/', views.ManufacturerCreateView.as_view(), name='manufacturer_add'), + path('manufacturers/import/', views.ManufacturerBulkImportView.as_view(), name='manufacturer_import'), + path('manufacturers/delete/', views.ManufacturerBulkDeleteView.as_view(), name='manufacturer_bulk_delete'), + path('manufacturers//edit/', views.ManufacturerEditView.as_view(), name='manufacturer_edit'), + path('manufacturers//changelog/', ObjectChangeLogView.as_view(), name='manufacturer_changelog', kwargs={'model': Manufacturer}), # Device types - path(r'device-types/', views.DeviceTypeListView.as_view(), name='devicetype_list'), - path(r'device-types/add/', views.DeviceTypeCreateView.as_view(), name='devicetype_add'), - path(r'device-types/import/', views.DeviceTypeImportView.as_view(), name='devicetype_import'), - path(r'device-types/edit/', views.DeviceTypeBulkEditView.as_view(), name='devicetype_bulk_edit'), - path(r'device-types/delete/', views.DeviceTypeBulkDeleteView.as_view(), name='devicetype_bulk_delete'), - path(r'device-types//', views.DeviceTypeView.as_view(), name='devicetype'), - path(r'device-types//edit/', views.DeviceTypeEditView.as_view(), name='devicetype_edit'), - path(r'device-types//delete/', views.DeviceTypeDeleteView.as_view(), name='devicetype_delete'), - path(r'device-types//changelog/', ObjectChangeLogView.as_view(), name='devicetype_changelog', kwargs={'model': DeviceType}), + path('device-types/', views.DeviceTypeListView.as_view(), name='devicetype_list'), + path('device-types/add/', views.DeviceTypeCreateView.as_view(), name='devicetype_add'), + path('device-types/import/', views.DeviceTypeImportView.as_view(), name='devicetype_import'), + path('device-types/edit/', views.DeviceTypeBulkEditView.as_view(), name='devicetype_bulk_edit'), + path('device-types/delete/', views.DeviceTypeBulkDeleteView.as_view(), name='devicetype_bulk_delete'), + path('device-types//', views.DeviceTypeView.as_view(), name='devicetype'), + path('device-types//edit/', views.DeviceTypeEditView.as_view(), name='devicetype_edit'), + path('device-types//delete/', views.DeviceTypeDeleteView.as_view(), name='devicetype_delete'), + path('device-types//changelog/', ObjectChangeLogView.as_view(), name='devicetype_changelog', kwargs={'model': DeviceType}), # Console port templates - path(r'device-types//console-ports/add/', views.ConsolePortTemplateCreateView.as_view(), name='devicetype_add_consoleport'), - path(r'device-types//console-ports/delete/', views.ConsolePortTemplateBulkDeleteView.as_view(), name='devicetype_delete_consoleport'), - path(r'console-port-templates//edit/', views.ConsolePortTemplateEditView.as_view(), name='consoleporttemplate_edit'), + path('device-types//console-ports/add/', views.ConsolePortTemplateCreateView.as_view(), name='devicetype_add_consoleport'), + path('device-types//console-ports/delete/', views.ConsolePortTemplateBulkDeleteView.as_view(), name='devicetype_delete_consoleport'), + path('console-port-templates//edit/', views.ConsolePortTemplateEditView.as_view(), name='consoleporttemplate_edit'), # Console server port templates - path(r'device-types//console-server-ports/add/', views.ConsoleServerPortTemplateCreateView.as_view(), name='devicetype_add_consoleserverport'), - path(r'device-types//console-server-ports/delete/', views.ConsoleServerPortTemplateBulkDeleteView.as_view(), name='devicetype_delete_consoleserverport'), - path(r'console-server-port-templates//edit/', views.ConsoleServerPortTemplateEditView.as_view(), name='consoleserverporttemplate_edit'), + path('device-types//console-server-ports/add/', views.ConsoleServerPortTemplateCreateView.as_view(), name='devicetype_add_consoleserverport'), + path('device-types//console-server-ports/delete/', views.ConsoleServerPortTemplateBulkDeleteView.as_view(), name='devicetype_delete_consoleserverport'), + path('console-server-port-templates//edit/', views.ConsoleServerPortTemplateEditView.as_view(), name='consoleserverporttemplate_edit'), # Power port templates - path(r'device-types//power-ports/add/', views.PowerPortTemplateCreateView.as_view(), name='devicetype_add_powerport'), - path(r'device-types//power-ports/delete/', views.PowerPortTemplateBulkDeleteView.as_view(), name='devicetype_delete_powerport'), - path(r'power-port-templates//edit/', views.PowerPortTemplateEditView.as_view(), name='powerporttemplate_edit'), + path('device-types//power-ports/add/', views.PowerPortTemplateCreateView.as_view(), name='devicetype_add_powerport'), + path('device-types//power-ports/delete/', views.PowerPortTemplateBulkDeleteView.as_view(), name='devicetype_delete_powerport'), + path('power-port-templates//edit/', views.PowerPortTemplateEditView.as_view(), name='powerporttemplate_edit'), # Power outlet templates - path(r'device-types//power-outlets/add/', views.PowerOutletTemplateCreateView.as_view(), name='devicetype_add_poweroutlet'), - path(r'device-types//power-outlets/delete/', views.PowerOutletTemplateBulkDeleteView.as_view(), name='devicetype_delete_poweroutlet'), - path(r'power-outlet-templates//edit/', views.PowerOutletTemplateEditView.as_view(), name='poweroutlettemplate_edit'), + path('device-types//power-outlets/add/', views.PowerOutletTemplateCreateView.as_view(), name='devicetype_add_poweroutlet'), + path('device-types//power-outlets/delete/', views.PowerOutletTemplateBulkDeleteView.as_view(), name='devicetype_delete_poweroutlet'), + path('power-outlet-templates//edit/', views.PowerOutletTemplateEditView.as_view(), name='poweroutlettemplate_edit'), # Interface templates - path(r'device-types//interfaces/add/', views.InterfaceTemplateCreateView.as_view(), name='devicetype_add_interface'), - path(r'device-types//interfaces/edit/', views.InterfaceTemplateBulkEditView.as_view(), name='devicetype_bulkedit_interface'), - path(r'device-types//interfaces/delete/', views.InterfaceTemplateBulkDeleteView.as_view(), name='devicetype_delete_interface'), - path(r'interface-templates//edit/', views.InterfaceTemplateEditView.as_view(), name='interfacetemplate_edit'), + path('device-types//interfaces/add/', views.InterfaceTemplateCreateView.as_view(), name='devicetype_add_interface'), + path('device-types//interfaces/edit/', views.InterfaceTemplateBulkEditView.as_view(), name='devicetype_bulkedit_interface'), + path('device-types//interfaces/delete/', views.InterfaceTemplateBulkDeleteView.as_view(), name='devicetype_delete_interface'), + path('interface-templates//edit/', views.InterfaceTemplateEditView.as_view(), name='interfacetemplate_edit'), # Front port templates - path(r'device-types//front-ports/add/', views.FrontPortTemplateCreateView.as_view(), name='devicetype_add_frontport'), - path(r'device-types//front-ports/delete/', views.FrontPortTemplateBulkDeleteView.as_view(), name='devicetype_delete_frontport'), - path(r'front-port-templates//edit/', views.FrontPortTemplateEditView.as_view(), name='frontporttemplate_edit'), + path('device-types//front-ports/add/', views.FrontPortTemplateCreateView.as_view(), name='devicetype_add_frontport'), + path('device-types//front-ports/delete/', views.FrontPortTemplateBulkDeleteView.as_view(), name='devicetype_delete_frontport'), + path('front-port-templates//edit/', views.FrontPortTemplateEditView.as_view(), name='frontporttemplate_edit'), # Rear port templates - path(r'device-types//rear-ports/add/', views.RearPortTemplateCreateView.as_view(), name='devicetype_add_rearport'), - path(r'device-types//rear-ports/delete/', views.RearPortTemplateBulkDeleteView.as_view(), name='devicetype_delete_rearport'), - path(r'rear-port-templates//edit/', views.RearPortTemplateEditView.as_view(), name='rearporttemplate_edit'), + path('device-types//rear-ports/add/', views.RearPortTemplateCreateView.as_view(), name='devicetype_add_rearport'), + path('device-types//rear-ports/delete/', views.RearPortTemplateBulkDeleteView.as_view(), name='devicetype_delete_rearport'), + path('rear-port-templates//edit/', views.RearPortTemplateEditView.as_view(), name='rearporttemplate_edit'), # Device bay templates - path(r'device-types//device-bays/add/', views.DeviceBayTemplateCreateView.as_view(), name='devicetype_add_devicebay'), - path(r'device-types//device-bays/delete/', views.DeviceBayTemplateBulkDeleteView.as_view(), name='devicetype_delete_devicebay'), - path(r'device-bay-templates//edit/', views.DeviceBayTemplateEditView.as_view(), name='devicebaytemplate_edit'), + path('device-types//device-bays/add/', views.DeviceBayTemplateCreateView.as_view(), name='devicetype_add_devicebay'), + path('device-types//device-bays/delete/', views.DeviceBayTemplateBulkDeleteView.as_view(), name='devicetype_delete_devicebay'), + path('device-bay-templates//edit/', views.DeviceBayTemplateEditView.as_view(), name='devicebaytemplate_edit'), # Device roles - path(r'device-roles/', views.DeviceRoleListView.as_view(), name='devicerole_list'), - path(r'device-roles/add/', views.DeviceRoleCreateView.as_view(), name='devicerole_add'), - path(r'device-roles/import/', views.DeviceRoleBulkImportView.as_view(), name='devicerole_import'), - path(r'device-roles/delete/', views.DeviceRoleBulkDeleteView.as_view(), name='devicerole_bulk_delete'), - path(r'device-roles//edit/', views.DeviceRoleEditView.as_view(), name='devicerole_edit'), - path(r'device-roles//changelog/', ObjectChangeLogView.as_view(), name='devicerole_changelog', kwargs={'model': DeviceRole}), + path('device-roles/', views.DeviceRoleListView.as_view(), name='devicerole_list'), + path('device-roles/add/', views.DeviceRoleCreateView.as_view(), name='devicerole_add'), + path('device-roles/import/', views.DeviceRoleBulkImportView.as_view(), name='devicerole_import'), + path('device-roles/delete/', views.DeviceRoleBulkDeleteView.as_view(), name='devicerole_bulk_delete'), + path('device-roles//edit/', views.DeviceRoleEditView.as_view(), name='devicerole_edit'), + path('device-roles//changelog/', ObjectChangeLogView.as_view(), name='devicerole_changelog', kwargs={'model': DeviceRole}), # Platforms - path(r'platforms/', views.PlatformListView.as_view(), name='platform_list'), - path(r'platforms/add/', views.PlatformCreateView.as_view(), name='platform_add'), - path(r'platforms/import/', views.PlatformBulkImportView.as_view(), name='platform_import'), - path(r'platforms/delete/', views.PlatformBulkDeleteView.as_view(), name='platform_bulk_delete'), - path(r'platforms//edit/', views.PlatformEditView.as_view(), name='platform_edit'), - path(r'platforms//changelog/', ObjectChangeLogView.as_view(), name='platform_changelog', kwargs={'model': Platform}), + path('platforms/', views.PlatformListView.as_view(), name='platform_list'), + path('platforms/add/', views.PlatformCreateView.as_view(), name='platform_add'), + path('platforms/import/', views.PlatformBulkImportView.as_view(), name='platform_import'), + path('platforms/delete/', views.PlatformBulkDeleteView.as_view(), name='platform_bulk_delete'), + path('platforms//edit/', views.PlatformEditView.as_view(), name='platform_edit'), + path('platforms//changelog/', ObjectChangeLogView.as_view(), name='platform_changelog', kwargs={'model': Platform}), # Devices - path(r'devices/', views.DeviceListView.as_view(), name='device_list'), - path(r'devices/add/', views.DeviceCreateView.as_view(), name='device_add'), - path(r'devices/import/', views.DeviceBulkImportView.as_view(), name='device_import'), - path(r'devices/import/child-devices/', views.ChildDeviceBulkImportView.as_view(), name='device_import_child'), - path(r'devices/edit/', views.DeviceBulkEditView.as_view(), name='device_bulk_edit'), - path(r'devices/delete/', views.DeviceBulkDeleteView.as_view(), name='device_bulk_delete'), - path(r'devices//', views.DeviceView.as_view(), name='device'), - path(r'devices//edit/', views.DeviceEditView.as_view(), name='device_edit'), - path(r'devices//delete/', views.DeviceDeleteView.as_view(), name='device_delete'), - path(r'devices//config-context/', views.DeviceConfigContextView.as_view(), name='device_configcontext'), - path(r'devices//changelog/', ObjectChangeLogView.as_view(), name='device_changelog', kwargs={'model': Device}), - path(r'devices//inventory/', views.DeviceInventoryView.as_view(), name='device_inventory'), - path(r'devices//status/', views.DeviceStatusView.as_view(), name='device_status'), - path(r'devices//lldp-neighbors/', views.DeviceLLDPNeighborsView.as_view(), name='device_lldp_neighbors'), - path(r'devices//config/', views.DeviceConfigView.as_view(), name='device_config'), - path(r'devices//add-secret/', secret_add, name='device_addsecret'), - path(r'devices//services/assign/', ServiceCreateView.as_view(), name='device_service_assign'), - path(r'devices//images/add/', ImageAttachmentEditView.as_view(), name='device_add_image', kwargs={'model': Device}), + path('devices/', views.DeviceListView.as_view(), name='device_list'), + path('devices/add/', views.DeviceCreateView.as_view(), name='device_add'), + path('devices/import/', views.DeviceBulkImportView.as_view(), name='device_import'), + path('devices/import/child-devices/', views.ChildDeviceBulkImportView.as_view(), name='device_import_child'), + path('devices/edit/', views.DeviceBulkEditView.as_view(), name='device_bulk_edit'), + path('devices/delete/', views.DeviceBulkDeleteView.as_view(), name='device_bulk_delete'), + path('devices//', views.DeviceView.as_view(), name='device'), + path('devices//edit/', views.DeviceEditView.as_view(), name='device_edit'), + path('devices//delete/', views.DeviceDeleteView.as_view(), name='device_delete'), + path('devices//config-context/', views.DeviceConfigContextView.as_view(), name='device_configcontext'), + path('devices//changelog/', ObjectChangeLogView.as_view(), name='device_changelog', kwargs={'model': Device}), + path('devices//inventory/', views.DeviceInventoryView.as_view(), name='device_inventory'), + path('devices//status/', views.DeviceStatusView.as_view(), name='device_status'), + path('devices//lldp-neighbors/', views.DeviceLLDPNeighborsView.as_view(), name='device_lldp_neighbors'), + path('devices//config/', views.DeviceConfigView.as_view(), name='device_config'), + path('devices//add-secret/', secret_add, name='device_addsecret'), + path('devices//services/assign/', ServiceCreateView.as_view(), name='device_service_assign'), + path('devices//images/add/', ImageAttachmentEditView.as_view(), name='device_add_image', kwargs={'model': Device}), # Console ports - path(r'devices/console-ports/add/', views.DeviceBulkAddConsolePortView.as_view(), name='device_bulk_add_consoleport'), - path(r'console-ports/', views.ConsolePortListView.as_view(), name='consoleport_list'), - path(r'console-ports/add/', views.ConsolePortCreateView.as_view(), name='consoleport_add'), - path(r'console-ports/import/', views.ConsolePortBulkImportView.as_view(), name='consoleport_import'), + path('devices/console-ports/add/', views.DeviceBulkAddConsolePortView.as_view(), name='device_bulk_add_consoleport'), + path('console-ports/', views.ConsolePortListView.as_view(), name='consoleport_list'), + path('console-ports/add/', views.ConsolePortCreateView.as_view(), name='consoleport_add'), + path('console-ports/import/', views.ConsolePortBulkImportView.as_view(), name='consoleport_import'), # TODO: Bulk edit view for ConsolePorts - path(r'console-ports/delete/', views.ConsolePortBulkDeleteView.as_view(), name='consoleport_bulk_delete'), - path(r'console-ports//connect//', views.CableCreateView.as_view(), name='consoleport_connect', kwargs={'termination_a_type': ConsolePort}), - path(r'console-ports//edit/', views.ConsolePortEditView.as_view(), name='consoleport_edit'), - path(r'console-ports//delete/', views.ConsolePortDeleteView.as_view(), name='consoleport_delete'), - path(r'console-ports//trace/', views.CableTraceView.as_view(), name='consoleport_trace', kwargs={'model': ConsolePort}), + path('console-ports/delete/', views.ConsolePortBulkDeleteView.as_view(), name='consoleport_bulk_delete'), + path('console-ports//connect//', views.CableCreateView.as_view(), name='consoleport_connect', kwargs={'termination_a_type': ConsolePort}), + path('console-ports//edit/', views.ConsolePortEditView.as_view(), name='consoleport_edit'), + path('console-ports//delete/', views.ConsolePortDeleteView.as_view(), name='consoleport_delete'), + path('console-ports//trace/', views.CableTraceView.as_view(), name='consoleport_trace', kwargs={'model': ConsolePort}), # Console server ports - path(r'devices/console-server-ports/add/', views.DeviceBulkAddConsoleServerPortView.as_view(), name='device_bulk_add_consoleserverport'), - path(r'console-server-ports/', views.ConsoleServerPortListView.as_view(), name='consoleserverport_list'), - path(r'console-server-ports/rename/', views.ConsoleServerPortBulkRenameView.as_view(), name='consoleserverport_bulk_rename'), - path(r'console-server-ports/disconnect/', views.ConsoleServerPortBulkDisconnectView.as_view(), name='consoleserverport_bulk_disconnect'), - path(r'console-server-ports/add/', views.ConsoleServerPortCreateView.as_view(), name='consoleserverport_add'), - path(r'console-server-ports/import/', views.ConsoleServerPortBulkImportView.as_view(), name='consoleserverport_import'), - path(r'console-server-ports/edit/', views.ConsoleServerPortBulkEditView.as_view(), name='consoleserverport_bulk_edit'), - path(r'console-server-ports/delete/', views.ConsoleServerPortBulkDeleteView.as_view(), name='consoleserverport_bulk_delete'), - path(r'console-server-ports//connect//', views.CableCreateView.as_view(), name='consoleserverport_connect', kwargs={'termination_a_type': ConsoleServerPort}), - path(r'console-server-ports//edit/', views.ConsoleServerPortEditView.as_view(), name='consoleserverport_edit'), - path(r'console-server-ports//delete/', views.ConsoleServerPortDeleteView.as_view(), name='consoleserverport_delete'), - path(r'console-server-ports//trace/', views.CableTraceView.as_view(), name='consoleserverport_trace', kwargs={'model': ConsoleServerPort}), + path('devices/console-server-ports/add/', views.DeviceBulkAddConsoleServerPortView.as_view(), name='device_bulk_add_consoleserverport'), + path('console-server-ports/', views.ConsoleServerPortListView.as_view(), name='consoleserverport_list'), + path('console-server-ports/rename/', views.ConsoleServerPortBulkRenameView.as_view(), name='consoleserverport_bulk_rename'), + path('console-server-ports/disconnect/', views.ConsoleServerPortBulkDisconnectView.as_view(), name='consoleserverport_bulk_disconnect'), + path('console-server-ports/add/', views.ConsoleServerPortCreateView.as_view(), name='consoleserverport_add'), + path('console-server-ports/import/', views.ConsoleServerPortBulkImportView.as_view(), name='consoleserverport_import'), + path('console-server-ports/edit/', views.ConsoleServerPortBulkEditView.as_view(), name='consoleserverport_bulk_edit'), + path('console-server-ports/delete/', views.ConsoleServerPortBulkDeleteView.as_view(), name='consoleserverport_bulk_delete'), + path('console-server-ports//connect//', views.CableCreateView.as_view(), name='consoleserverport_connect', kwargs={'termination_a_type': ConsoleServerPort}), + path('console-server-ports//edit/', views.ConsoleServerPortEditView.as_view(), name='consoleserverport_edit'), + path('console-server-ports//delete/', views.ConsoleServerPortDeleteView.as_view(), name='consoleserverport_delete'), + path('console-server-ports//trace/', views.CableTraceView.as_view(), name='consoleserverport_trace', kwargs={'model': ConsoleServerPort}), # Power ports - path(r'devices/power-ports/add/', views.DeviceBulkAddPowerPortView.as_view(), name='device_bulk_add_powerport'), - path(r'power-ports/', views.PowerPortListView.as_view(), name='powerport_list'), - path(r'power-ports/add/', views.PowerPortCreateView.as_view(), name='powerport_add'), - path(r'power-ports/import/', views.PowerPortBulkImportView.as_view(), name='powerport_import'), + path('devices/power-ports/add/', views.DeviceBulkAddPowerPortView.as_view(), name='device_bulk_add_powerport'), + path('power-ports/', views.PowerPortListView.as_view(), name='powerport_list'), + path('power-ports/add/', views.PowerPortCreateView.as_view(), name='powerport_add'), + path('power-ports/import/', views.PowerPortBulkImportView.as_view(), name='powerport_import'), # TODO: Bulk edit view for PowerPorts - path(r'power-ports/delete/', views.PowerPortBulkDeleteView.as_view(), name='powerport_bulk_delete'), - path(r'power-ports//connect//', views.CableCreateView.as_view(), name='powerport_connect', kwargs={'termination_a_type': PowerPort}), - path(r'power-ports//edit/', views.PowerPortEditView.as_view(), name='powerport_edit'), - path(r'power-ports//delete/', views.PowerPortDeleteView.as_view(), name='powerport_delete'), - path(r'power-ports//trace/', views.CableTraceView.as_view(), name='powerport_trace', kwargs={'model': PowerPort}), + path('power-ports/delete/', views.PowerPortBulkDeleteView.as_view(), name='powerport_bulk_delete'), + path('power-ports//connect//', views.CableCreateView.as_view(), name='powerport_connect', kwargs={'termination_a_type': PowerPort}), + path('power-ports//edit/', views.PowerPortEditView.as_view(), name='powerport_edit'), + path('power-ports//delete/', views.PowerPortDeleteView.as_view(), name='powerport_delete'), + path('power-ports//trace/', views.CableTraceView.as_view(), name='powerport_trace', kwargs={'model': PowerPort}), # Power outlets - path(r'devices/power-outlets/add/', views.DeviceBulkAddPowerOutletView.as_view(), name='device_bulk_add_poweroutlet'), - path(r'power-outlets/', views.PowerOutletListView.as_view(), name='poweroutlet_list'), - path(r'power-outlets/rename/', views.PowerOutletBulkRenameView.as_view(), name='poweroutlet_bulk_rename'), - path(r'power-outlets/disconnect/', views.PowerOutletBulkDisconnectView.as_view(), name='poweroutlet_bulk_disconnect'), - path(r'power-outlets/add/', views.PowerOutletCreateView.as_view(), name='poweroutlet_add'), - path(r'power-outlets/import/', views.PowerOutletBulkImportView.as_view(), name='poweroutlet_import'), - path(r'power-outlets/edit/', views.PowerOutletBulkEditView.as_view(), name='poweroutlet_bulk_edit'), - path(r'power-outlets/delete/', views.PowerOutletBulkDeleteView.as_view(), name='poweroutlet_bulk_delete'), - path(r'power-outlets//connect//', views.CableCreateView.as_view(), name='poweroutlet_connect', kwargs={'termination_a_type': PowerOutlet}), - path(r'power-outlets//edit/', views.PowerOutletEditView.as_view(), name='poweroutlet_edit'), - path(r'power-outlets//delete/', views.PowerOutletDeleteView.as_view(), name='poweroutlet_delete'), - path(r'power-outlets//trace/', views.CableTraceView.as_view(), name='poweroutlet_trace', kwargs={'model': PowerOutlet}), + path('devices/power-outlets/add/', views.DeviceBulkAddPowerOutletView.as_view(), name='device_bulk_add_poweroutlet'), + path('power-outlets/', views.PowerOutletListView.as_view(), name='poweroutlet_list'), + path('power-outlets/rename/', views.PowerOutletBulkRenameView.as_view(), name='poweroutlet_bulk_rename'), + path('power-outlets/disconnect/', views.PowerOutletBulkDisconnectView.as_view(), name='poweroutlet_bulk_disconnect'), + path('power-outlets/add/', views.PowerOutletCreateView.as_view(), name='poweroutlet_add'), + path('power-outlets/import/', views.PowerOutletBulkImportView.as_view(), name='poweroutlet_import'), + path('power-outlets/edit/', views.PowerOutletBulkEditView.as_view(), name='poweroutlet_bulk_edit'), + path('power-outlets/delete/', views.PowerOutletBulkDeleteView.as_view(), name='poweroutlet_bulk_delete'), + path('power-outlets//connect//', views.CableCreateView.as_view(), name='poweroutlet_connect', kwargs={'termination_a_type': PowerOutlet}), + path('power-outlets//edit/', views.PowerOutletEditView.as_view(), name='poweroutlet_edit'), + path('power-outlets//delete/', views.PowerOutletDeleteView.as_view(), name='poweroutlet_delete'), + path('power-outlets//trace/', views.CableTraceView.as_view(), name='poweroutlet_trace', kwargs={'model': PowerOutlet}), # Interfaces - path(r'devices/interfaces/add/', views.DeviceBulkAddInterfaceView.as_view(), name='device_bulk_add_interface'), - path(r'interfaces/', views.InterfaceListView.as_view(), name='interface_list'), - path(r'interfaces/rename/', views.InterfaceBulkRenameView.as_view(), name='interface_bulk_rename'), - path(r'interfaces/disconnect/', views.InterfaceBulkDisconnectView.as_view(), name='interface_bulk_disconnect'), - path(r'interfaces/add/', views.InterfaceCreateView.as_view(), name='interface_add'), - path(r'interfaces/import/', views.InterfaceBulkImportView.as_view(), name='interface_import'), - path(r'interfaces/edit/', views.InterfaceBulkEditView.as_view(), name='interface_bulk_edit'), - path(r'interfaces/delete/', views.InterfaceBulkDeleteView.as_view(), name='interface_bulk_delete'), - path(r'interfaces//connect//', views.CableCreateView.as_view(), name='interface_connect', kwargs={'termination_a_type': Interface}), - path(r'interfaces//', views.InterfaceView.as_view(), name='interface'), - path(r'interfaces//edit/', views.InterfaceEditView.as_view(), name='interface_edit'), - path(r'interfaces//delete/', views.InterfaceDeleteView.as_view(), name='interface_delete'), - path(r'interfaces//changelog/', ObjectChangeLogView.as_view(), name='interface_changelog', kwargs={'model': Interface}), - path(r'interfaces//trace/', views.CableTraceView.as_view(), name='interface_trace', kwargs={'model': Interface}), + path('devices/interfaces/add/', views.DeviceBulkAddInterfaceView.as_view(), name='device_bulk_add_interface'), + path('interfaces/', views.InterfaceListView.as_view(), name='interface_list'), + path('interfaces/rename/', views.InterfaceBulkRenameView.as_view(), name='interface_bulk_rename'), + path('interfaces/disconnect/', views.InterfaceBulkDisconnectView.as_view(), name='interface_bulk_disconnect'), + path('interfaces/add/', views.InterfaceCreateView.as_view(), name='interface_add'), + path('interfaces/import/', views.InterfaceBulkImportView.as_view(), name='interface_import'), + path('interfaces/edit/', views.InterfaceBulkEditView.as_view(), name='interface_bulk_edit'), + path('interfaces/delete/', views.InterfaceBulkDeleteView.as_view(), name='interface_bulk_delete'), + path('interfaces//connect//', views.CableCreateView.as_view(), name='interface_connect', kwargs={'termination_a_type': Interface}), + path('interfaces//', views.InterfaceView.as_view(), name='interface'), + path('interfaces//edit/', views.InterfaceEditView.as_view(), name='interface_edit'), + path('interfaces//delete/', views.InterfaceDeleteView.as_view(), name='interface_delete'), + path('interfaces//changelog/', ObjectChangeLogView.as_view(), name='interface_changelog', kwargs={'model': Interface}), + path('interfaces//trace/', views.CableTraceView.as_view(), name='interface_trace', kwargs={'model': Interface}), # Front ports - # path(r'devices/front-ports/add/', views.DeviceBulkAddFrontPortView.as_view(), name='device_bulk_add_frontport'), - path(r'front-ports/', views.FrontPortListView.as_view(), name='frontport_list'), - path(r'front-ports/rename/', views.FrontPortBulkRenameView.as_view(), name='frontport_bulk_rename'), - path(r'front-ports/disconnect/', views.FrontPortBulkDisconnectView.as_view(), name='frontport_bulk_disconnect'), - path(r'front-ports/add/', views.FrontPortCreateView.as_view(), name='frontport_add'), - path(r'front-ports/import/', views.FrontPortBulkImportView.as_view(), name='frontport_import'), - path(r'front-ports/edit/', views.FrontPortBulkEditView.as_view(), name='frontport_bulk_edit'), - path(r'front-ports/delete/', views.FrontPortBulkDeleteView.as_view(), name='frontport_bulk_delete'), - path(r'front-ports//connect//', views.CableCreateView.as_view(), name='frontport_connect', kwargs={'termination_a_type': FrontPort}), - path(r'front-ports//edit/', views.FrontPortEditView.as_view(), name='frontport_edit'), - path(r'front-ports//delete/', views.FrontPortDeleteView.as_view(), name='frontport_delete'), - path(r'front-ports//trace/', views.CableTraceView.as_view(), name='frontport_trace', kwargs={'model': FrontPort}), + # path('devices/front-ports/add/', views.DeviceBulkAddFrontPortView.as_view(), name='device_bulk_add_frontport'), + path('front-ports/', views.FrontPortListView.as_view(), name='frontport_list'), + path('front-ports/rename/', views.FrontPortBulkRenameView.as_view(), name='frontport_bulk_rename'), + path('front-ports/disconnect/', views.FrontPortBulkDisconnectView.as_view(), name='frontport_bulk_disconnect'), + path('front-ports/add/', views.FrontPortCreateView.as_view(), name='frontport_add'), + path('front-ports/import/', views.FrontPortBulkImportView.as_view(), name='frontport_import'), + path('front-ports/edit/', views.FrontPortBulkEditView.as_view(), name='frontport_bulk_edit'), + path('front-ports/delete/', views.FrontPortBulkDeleteView.as_view(), name='frontport_bulk_delete'), + path('front-ports//connect//', views.CableCreateView.as_view(), name='frontport_connect', kwargs={'termination_a_type': FrontPort}), + path('front-ports//edit/', views.FrontPortEditView.as_view(), name='frontport_edit'), + path('front-ports//delete/', views.FrontPortDeleteView.as_view(), name='frontport_delete'), + path('front-ports//trace/', views.CableTraceView.as_view(), name='frontport_trace', kwargs={'model': FrontPort}), # Rear ports - # path(r'devices/rear-ports/add/', views.DeviceBulkAddRearPortView.as_view(), name='device_bulk_add_rearport'), - path(r'rear-ports/', views.RearPortListView.as_view(), name='rearport_list'), - path(r'rear-ports/rename/', views.RearPortBulkRenameView.as_view(), name='rearport_bulk_rename'), - path(r'rear-ports/disconnect/', views.RearPortBulkDisconnectView.as_view(), name='rearport_bulk_disconnect'), - path(r'rear-ports/add/', views.RearPortCreateView.as_view(), name='rearport_add'), - path(r'rear-ports/import/', views.RearPortBulkImportView.as_view(), name='rearport_import'), - path(r'rear-ports/edit/', views.RearPortBulkEditView.as_view(), name='rearport_bulk_edit'), - path(r'rear-ports/delete/', views.RearPortBulkDeleteView.as_view(), name='rearport_bulk_delete'), - path(r'rear-ports//connect//', views.CableCreateView.as_view(), name='rearport_connect', kwargs={'termination_a_type': RearPort}), - path(r'rear-ports//edit/', views.RearPortEditView.as_view(), name='rearport_edit'), - path(r'rear-ports//delete/', views.RearPortDeleteView.as_view(), name='rearport_delete'), - path(r'rear-ports//trace/', views.CableTraceView.as_view(), name='rearport_trace', kwargs={'model': RearPort}), + # path('devices/rear-ports/add/', views.DeviceBulkAddRearPortView.as_view(), name='device_bulk_add_rearport'), + path('rear-ports/', views.RearPortListView.as_view(), name='rearport_list'), + path('rear-ports/rename/', views.RearPortBulkRenameView.as_view(), name='rearport_bulk_rename'), + path('rear-ports/disconnect/', views.RearPortBulkDisconnectView.as_view(), name='rearport_bulk_disconnect'), + path('rear-ports/add/', views.RearPortCreateView.as_view(), name='rearport_add'), + path('rear-ports/import/', views.RearPortBulkImportView.as_view(), name='rearport_import'), + path('rear-ports/edit/', views.RearPortBulkEditView.as_view(), name='rearport_bulk_edit'), + path('rear-ports/delete/', views.RearPortBulkDeleteView.as_view(), name='rearport_bulk_delete'), + path('rear-ports//connect//', views.CableCreateView.as_view(), name='rearport_connect', kwargs={'termination_a_type': RearPort}), + path('rear-ports//edit/', views.RearPortEditView.as_view(), name='rearport_edit'), + path('rear-ports//delete/', views.RearPortDeleteView.as_view(), name='rearport_delete'), + path('rear-ports//trace/', views.CableTraceView.as_view(), name='rearport_trace', kwargs={'model': RearPort}), # Device bays - path(r'devices/device-bays/add/', views.DeviceBulkAddDeviceBayView.as_view(), name='device_bulk_add_devicebay'), - path(r'device-bays/', views.DeviceBayListView.as_view(), name='devicebay_list'), - path(r'device-bays/rename/', views.DeviceBayBulkRenameView.as_view(), name='devicebay_bulk_rename'), - path(r'device-bays/add/', views.DeviceBayCreateView.as_view(), name='devicebay_add'), - path(r'device-bays/import/', views.DeviceBayBulkImportView.as_view(), name='devicebay_import'), + path('devices/device-bays/add/', views.DeviceBulkAddDeviceBayView.as_view(), name='device_bulk_add_devicebay'), + path('device-bays/', views.DeviceBayListView.as_view(), name='devicebay_list'), + path('device-bays/rename/', views.DeviceBayBulkRenameView.as_view(), name='devicebay_bulk_rename'), + path('device-bays/add/', views.DeviceBayCreateView.as_view(), name='devicebay_add'), + path('device-bays/import/', views.DeviceBayBulkImportView.as_view(), name='devicebay_import'), # TODO: Bulk edit view for DeviceBays - path(r'device-bays/delete/', views.DeviceBayBulkDeleteView.as_view(), name='devicebay_bulk_delete'), - path(r'device-bays//edit/', views.DeviceBayEditView.as_view(), name='devicebay_edit'), - path(r'device-bays//delete/', views.DeviceBayDeleteView.as_view(), name='devicebay_delete'), - path(r'device-bays//populate/', views.DeviceBayPopulateView.as_view(), name='devicebay_populate'), - path(r'device-bays//depopulate/', views.DeviceBayDepopulateView.as_view(), name='devicebay_depopulate'), + path('device-bays/delete/', views.DeviceBayBulkDeleteView.as_view(), name='devicebay_bulk_delete'), + path('device-bays//edit/', views.DeviceBayEditView.as_view(), name='devicebay_edit'), + path('device-bays//delete/', views.DeviceBayDeleteView.as_view(), name='devicebay_delete'), + path('device-bays//populate/', views.DeviceBayPopulateView.as_view(), name='devicebay_populate'), + path('device-bays//depopulate/', views.DeviceBayDepopulateView.as_view(), name='devicebay_depopulate'), # Inventory items - path(r'inventory-items/', views.InventoryItemListView.as_view(), name='inventoryitem_list'), - path(r'inventory-items/import/', views.InventoryItemBulkImportView.as_view(), name='inventoryitem_import'), - path(r'inventory-items/edit/', views.InventoryItemBulkEditView.as_view(), name='inventoryitem_bulk_edit'), - path(r'inventory-items/delete/', views.InventoryItemBulkDeleteView.as_view(), name='inventoryitem_bulk_delete'), - path(r'inventory-items//edit/', views.InventoryItemEditView.as_view(), name='inventoryitem_edit'), - path(r'inventory-items//delete/', views.InventoryItemDeleteView.as_view(), name='inventoryitem_delete'), + path('inventory-items/', views.InventoryItemListView.as_view(), name='inventoryitem_list'), + path('inventory-items/import/', views.InventoryItemBulkImportView.as_view(), name='inventoryitem_import'), + path('inventory-items/edit/', views.InventoryItemBulkEditView.as_view(), name='inventoryitem_bulk_edit'), + path('inventory-items/delete/', views.InventoryItemBulkDeleteView.as_view(), name='inventoryitem_bulk_delete'), + path('inventory-items//edit/', views.InventoryItemEditView.as_view(), name='inventoryitem_edit'), + path('inventory-items//delete/', views.InventoryItemDeleteView.as_view(), name='inventoryitem_delete'), # TODO: Replace below with InventoryItemCreateView - path(r'devices//inventory-items/add/', views.InventoryItemEditView.as_view(), name='inventoryitem_add'), + path('devices//inventory-items/add/', views.InventoryItemEditView.as_view(), name='inventoryitem_add'), # Cables - path(r'cables/', views.CableListView.as_view(), name='cable_list'), - path(r'cables/import/', views.CableBulkImportView.as_view(), name='cable_import'), - path(r'cables/edit/', views.CableBulkEditView.as_view(), name='cable_bulk_edit'), - path(r'cables/delete/', views.CableBulkDeleteView.as_view(), name='cable_bulk_delete'), - path(r'cables//', views.CableView.as_view(), name='cable'), - path(r'cables//edit/', views.CableEditView.as_view(), name='cable_edit'), - path(r'cables//delete/', views.CableDeleteView.as_view(), name='cable_delete'), - path(r'cables//changelog/', ObjectChangeLogView.as_view(), name='cable_changelog', kwargs={'model': Cable}), + path('cables/', views.CableListView.as_view(), name='cable_list'), + path('cables/import/', views.CableBulkImportView.as_view(), name='cable_import'), + path('cables/edit/', views.CableBulkEditView.as_view(), name='cable_bulk_edit'), + path('cables/delete/', views.CableBulkDeleteView.as_view(), name='cable_bulk_delete'), + path('cables//', views.CableView.as_view(), name='cable'), + path('cables//edit/', views.CableEditView.as_view(), name='cable_edit'), + path('cables//delete/', views.CableDeleteView.as_view(), name='cable_delete'), + path('cables//changelog/', ObjectChangeLogView.as_view(), name='cable_changelog', kwargs={'model': Cable}), # Console/power/interface connections (read-only) - path(r'console-connections/', views.ConsoleConnectionsListView.as_view(), name='console_connections_list'), - path(r'power-connections/', views.PowerConnectionsListView.as_view(), name='power_connections_list'), - path(r'interface-connections/', views.InterfaceConnectionsListView.as_view(), name='interface_connections_list'), + path('console-connections/', views.ConsoleConnectionsListView.as_view(), name='console_connections_list'), + path('power-connections/', views.PowerConnectionsListView.as_view(), name='power_connections_list'), + path('interface-connections/', views.InterfaceConnectionsListView.as_view(), name='interface_connections_list'), # Virtual chassis - path(r'virtual-chassis/', views.VirtualChassisListView.as_view(), name='virtualchassis_list'), - path(r'virtual-chassis/add/', views.VirtualChassisCreateView.as_view(), name='virtualchassis_add'), - path(r'virtual-chassis//edit/', views.VirtualChassisEditView.as_view(), name='virtualchassis_edit'), - path(r'virtual-chassis//delete/', views.VirtualChassisDeleteView.as_view(), name='virtualchassis_delete'), - path(r'virtual-chassis//changelog/', ObjectChangeLogView.as_view(), name='virtualchassis_changelog', kwargs={'model': VirtualChassis}), - path(r'virtual-chassis//add-member/', views.VirtualChassisAddMemberView.as_view(), name='virtualchassis_add_member'), - path(r'virtual-chassis-members//delete/', views.VirtualChassisRemoveMemberView.as_view(), name='virtualchassis_remove_member'), + path('virtual-chassis/', views.VirtualChassisListView.as_view(), name='virtualchassis_list'), + path('virtual-chassis/add/', views.VirtualChassisCreateView.as_view(), name='virtualchassis_add'), + path('virtual-chassis//edit/', views.VirtualChassisEditView.as_view(), name='virtualchassis_edit'), + path('virtual-chassis//delete/', views.VirtualChassisDeleteView.as_view(), name='virtualchassis_delete'), + path('virtual-chassis//changelog/', ObjectChangeLogView.as_view(), name='virtualchassis_changelog', kwargs={'model': VirtualChassis}), + path('virtual-chassis//add-member/', views.VirtualChassisAddMemberView.as_view(), name='virtualchassis_add_member'), + path('virtual-chassis-members//delete/', views.VirtualChassisRemoveMemberView.as_view(), name='virtualchassis_remove_member'), # Power panels - path(r'power-panels/', views.PowerPanelListView.as_view(), name='powerpanel_list'), - path(r'power-panels/add/', views.PowerPanelCreateView.as_view(), name='powerpanel_add'), - path(r'power-panels/import/', views.PowerPanelBulkImportView.as_view(), name='powerpanel_import'), - path(r'power-panels/delete/', views.PowerPanelBulkDeleteView.as_view(), name='powerpanel_bulk_delete'), - path(r'power-panels//', views.PowerPanelView.as_view(), name='powerpanel'), - path(r'power-panels//edit/', views.PowerPanelEditView.as_view(), name='powerpanel_edit'), - path(r'power-panels//delete/', views.PowerPanelDeleteView.as_view(), name='powerpanel_delete'), - path(r'power-panels//changelog/', ObjectChangeLogView.as_view(), name='powerpanel_changelog', kwargs={'model': PowerPanel}), + path('power-panels/', views.PowerPanelListView.as_view(), name='powerpanel_list'), + path('power-panels/add/', views.PowerPanelCreateView.as_view(), name='powerpanel_add'), + path('power-panels/import/', views.PowerPanelBulkImportView.as_view(), name='powerpanel_import'), + path('power-panels/delete/', views.PowerPanelBulkDeleteView.as_view(), name='powerpanel_bulk_delete'), + path('power-panels//', views.PowerPanelView.as_view(), name='powerpanel'), + path('power-panels//edit/', views.PowerPanelEditView.as_view(), name='powerpanel_edit'), + path('power-panels//delete/', views.PowerPanelDeleteView.as_view(), name='powerpanel_delete'), + path('power-panels//changelog/', ObjectChangeLogView.as_view(), name='powerpanel_changelog', kwargs={'model': PowerPanel}), # Power feeds - path(r'power-feeds/', views.PowerFeedListView.as_view(), name='powerfeed_list'), - path(r'power-feeds/add/', views.PowerFeedCreateView.as_view(), name='powerfeed_add'), - path(r'power-feeds/import/', views.PowerFeedBulkImportView.as_view(), name='powerfeed_import'), - path(r'power-feeds/edit/', views.PowerFeedBulkEditView.as_view(), name='powerfeed_bulk_edit'), - path(r'power-feeds/delete/', views.PowerFeedBulkDeleteView.as_view(), name='powerfeed_bulk_delete'), - path(r'power-feeds//', views.PowerFeedView.as_view(), name='powerfeed'), - path(r'power-feeds//edit/', views.PowerFeedEditView.as_view(), name='powerfeed_edit'), - path(r'power-feeds//delete/', views.PowerFeedDeleteView.as_view(), name='powerfeed_delete'), - path(r'power-feeds//changelog/', ObjectChangeLogView.as_view(), name='powerfeed_changelog', kwargs={'model': PowerFeed}), + path('power-feeds/', views.PowerFeedListView.as_view(), name='powerfeed_list'), + path('power-feeds/add/', views.PowerFeedCreateView.as_view(), name='powerfeed_add'), + path('power-feeds/import/', views.PowerFeedBulkImportView.as_view(), name='powerfeed_import'), + path('power-feeds/edit/', views.PowerFeedBulkEditView.as_view(), name='powerfeed_bulk_edit'), + path('power-feeds/delete/', views.PowerFeedBulkDeleteView.as_view(), name='powerfeed_bulk_delete'), + path('power-feeds//', views.PowerFeedView.as_view(), name='powerfeed'), + path('power-feeds//edit/', views.PowerFeedEditView.as_view(), name='powerfeed_edit'), + path('power-feeds//delete/', views.PowerFeedDeleteView.as_view(), name='powerfeed_delete'), + path('power-feeds//changelog/', ObjectChangeLogView.as_view(), name='powerfeed_changelog', kwargs={'model': PowerFeed}), ] diff --git a/netbox/extras/api/urls.py b/netbox/extras/api/urls.py index 50a54d3fe..d699cd22e 100644 --- a/netbox/extras/api/urls.py +++ b/netbox/extras/api/urls.py @@ -15,34 +15,34 @@ router = routers.DefaultRouter() router.APIRootView = ExtrasRootView # Field choices -router.register(r'_choices', views.ExtrasFieldChoicesViewSet, basename='field-choice') +router.register('_choices', views.ExtrasFieldChoicesViewSet, basename='field-choice') # Custom field choices -router.register(r'_custom_field_choices', views.CustomFieldChoicesViewSet, basename='custom-field-choice') +router.register('_custom_field_choices', views.CustomFieldChoicesViewSet, basename='custom-field-choice') # Graphs -router.register(r'graphs', views.GraphViewSet) +router.register('graphs', views.GraphViewSet) # Export templates -router.register(r'export-templates', views.ExportTemplateViewSet) +router.register('export-templates', views.ExportTemplateViewSet) # Tags -router.register(r'tags', views.TagViewSet) +router.register('tags', views.TagViewSet) # Image attachments -router.register(r'image-attachments', views.ImageAttachmentViewSet) +router.register('image-attachments', views.ImageAttachmentViewSet) # Config contexts -router.register(r'config-contexts', views.ConfigContextViewSet) +router.register('config-contexts', views.ConfigContextViewSet) # Reports -router.register(r'reports', views.ReportViewSet, basename='report') +router.register('reports', views.ReportViewSet, basename='report') # Scripts -router.register(r'scripts', views.ScriptViewSet, basename='script') +router.register('scripts', views.ScriptViewSet, basename='script') # Change logging -router.register(r'object-changes', views.ObjectChangeViewSet) +router.register('object-changes', views.ObjectChangeViewSet) app_name = 'extras-api' urlpatterns = router.urls diff --git a/netbox/extras/urls.py b/netbox/extras/urls.py index 653fe7c7f..a486ce7fc 100644 --- a/netbox/extras/urls.py +++ b/netbox/extras/urls.py @@ -8,38 +8,38 @@ app_name = 'extras' urlpatterns = [ # Tags - path(r'tags/', views.TagListView.as_view(), name='tag_list'), - path(r'tags/edit/', views.TagBulkEditView.as_view(), name='tag_bulk_edit'), - path(r'tags/delete/', views.TagBulkDeleteView.as_view(), name='tag_bulk_delete'), - path(r'tags//', views.TagView.as_view(), name='tag'), - path(r'tags//edit/', views.TagEditView.as_view(), name='tag_edit'), - path(r'tags//delete/', views.TagDeleteView.as_view(), name='tag_delete'), - path(r'tags//changelog/', views.ObjectChangeLogView.as_view(), name='tag_changelog', kwargs={'model': Tag}), + path('tags/', views.TagListView.as_view(), name='tag_list'), + path('tags/edit/', views.TagBulkEditView.as_view(), name='tag_bulk_edit'), + path('tags/delete/', views.TagBulkDeleteView.as_view(), name='tag_bulk_delete'), + path('tags//', views.TagView.as_view(), name='tag'), + path('tags//edit/', views.TagEditView.as_view(), name='tag_edit'), + path('tags//delete/', views.TagDeleteView.as_view(), name='tag_delete'), + path('tags//changelog/', views.ObjectChangeLogView.as_view(), name='tag_changelog', kwargs={'model': Tag}), # Config contexts - path(r'config-contexts/', views.ConfigContextListView.as_view(), name='configcontext_list'), - path(r'config-contexts/add/', views.ConfigContextCreateView.as_view(), name='configcontext_add'), - path(r'config-contexts/edit/', views.ConfigContextBulkEditView.as_view(), name='configcontext_bulk_edit'), - path(r'config-contexts/delete/', views.ConfigContextBulkDeleteView.as_view(), name='configcontext_bulk_delete'), - path(r'config-contexts//', views.ConfigContextView.as_view(), name='configcontext'), - path(r'config-contexts//edit/', views.ConfigContextEditView.as_view(), name='configcontext_edit'), - path(r'config-contexts//delete/', views.ConfigContextDeleteView.as_view(), name='configcontext_delete'), + path('config-contexts/', views.ConfigContextListView.as_view(), name='configcontext_list'), + path('config-contexts/add/', views.ConfigContextCreateView.as_view(), name='configcontext_add'), + path('config-contexts/edit/', views.ConfigContextBulkEditView.as_view(), name='configcontext_bulk_edit'), + path('config-contexts/delete/', views.ConfigContextBulkDeleteView.as_view(), name='configcontext_bulk_delete'), + path('config-contexts//', views.ConfigContextView.as_view(), name='configcontext'), + path('config-contexts//edit/', views.ConfigContextEditView.as_view(), name='configcontext_edit'), + path('config-contexts//delete/', views.ConfigContextDeleteView.as_view(), name='configcontext_delete'), # Image attachments - path(r'image-attachments//edit/', views.ImageAttachmentEditView.as_view(), name='imageattachment_edit'), - path(r'image-attachments//delete/', views.ImageAttachmentDeleteView.as_view(), name='imageattachment_delete'), + path('image-attachments//edit/', views.ImageAttachmentEditView.as_view(), name='imageattachment_edit'), + path('image-attachments//delete/', views.ImageAttachmentDeleteView.as_view(), name='imageattachment_delete'), # Change logging - path(r'changelog/', views.ObjectChangeListView.as_view(), name='objectchange_list'), - path(r'changelog//', views.ObjectChangeView.as_view(), name='objectchange'), + path('changelog/', views.ObjectChangeListView.as_view(), name='objectchange_list'), + path('changelog//', views.ObjectChangeView.as_view(), name='objectchange'), # Reports - path(r'reports/', views.ReportListView.as_view(), name='report_list'), - path(r'reports//', views.ReportView.as_view(), name='report'), - path(r'reports//run/', views.ReportRunView.as_view(), name='report_run'), + path('reports/', views.ReportListView.as_view(), name='report_list'), + path('reports//', views.ReportView.as_view(), name='report'), + path('reports//run/', views.ReportRunView.as_view(), name='report_run'), # Scripts - path(r'scripts/', views.ScriptListView.as_view(), name='script_list'), - path(r'scripts///', views.ScriptView.as_view(), name='script'), + path('scripts/', views.ScriptListView.as_view(), name='script_list'), + path('scripts///', views.ScriptView.as_view(), name='script'), ] diff --git a/netbox/ipam/api/urls.py b/netbox/ipam/api/urls.py index 9a2e1bc1f..c4d68f9c0 100644 --- a/netbox/ipam/api/urls.py +++ b/netbox/ipam/api/urls.py @@ -15,30 +15,30 @@ router = routers.DefaultRouter() router.APIRootView = IPAMRootView # Field choices -router.register(r'_choices', views.IPAMFieldChoicesViewSet, basename='field-choice') +router.register('_choices', views.IPAMFieldChoicesViewSet, basename='field-choice') # VRFs -router.register(r'vrfs', views.VRFViewSet) +router.register('vrfs', views.VRFViewSet) # RIRs -router.register(r'rirs', views.RIRViewSet) +router.register('rirs', views.RIRViewSet) # Aggregates -router.register(r'aggregates', views.AggregateViewSet) +router.register('aggregates', views.AggregateViewSet) # Prefixes -router.register(r'roles', views.RoleViewSet) -router.register(r'prefixes', views.PrefixViewSet) +router.register('roles', views.RoleViewSet) +router.register('prefixes', views.PrefixViewSet) # IP addresses -router.register(r'ip-addresses', views.IPAddressViewSet) +router.register('ip-addresses', views.IPAddressViewSet) # VLANs -router.register(r'vlan-groups', views.VLANGroupViewSet) -router.register(r'vlans', views.VLANViewSet) +router.register('vlan-groups', views.VLANGroupViewSet) +router.register('vlans', views.VLANViewSet) # Services -router.register(r'services', views.ServiceViewSet) +router.register('services', views.ServiceViewSet) app_name = 'ipam-api' urlpatterns = router.urls diff --git a/netbox/ipam/urls.py b/netbox/ipam/urls.py index 2a1dcdf05..604287f24 100644 --- a/netbox/ipam/urls.py +++ b/netbox/ipam/urls.py @@ -8,97 +8,97 @@ app_name = 'ipam' urlpatterns = [ # VRFs - path(r'vrfs/', views.VRFListView.as_view(), name='vrf_list'), - path(r'vrfs/add/', views.VRFCreateView.as_view(), name='vrf_add'), - path(r'vrfs/import/', views.VRFBulkImportView.as_view(), name='vrf_import'), - path(r'vrfs/edit/', views.VRFBulkEditView.as_view(), name='vrf_bulk_edit'), - path(r'vrfs/delete/', views.VRFBulkDeleteView.as_view(), name='vrf_bulk_delete'), - path(r'vrfs//', views.VRFView.as_view(), name='vrf'), - path(r'vrfs//edit/', views.VRFEditView.as_view(), name='vrf_edit'), - path(r'vrfs//delete/', views.VRFDeleteView.as_view(), name='vrf_delete'), - path(r'vrfs//changelog/', ObjectChangeLogView.as_view(), name='vrf_changelog', kwargs={'model': VRF}), + path('vrfs/', views.VRFListView.as_view(), name='vrf_list'), + path('vrfs/add/', views.VRFCreateView.as_view(), name='vrf_add'), + path('vrfs/import/', views.VRFBulkImportView.as_view(), name='vrf_import'), + path('vrfs/edit/', views.VRFBulkEditView.as_view(), name='vrf_bulk_edit'), + path('vrfs/delete/', views.VRFBulkDeleteView.as_view(), name='vrf_bulk_delete'), + path('vrfs//', views.VRFView.as_view(), name='vrf'), + path('vrfs//edit/', views.VRFEditView.as_view(), name='vrf_edit'), + path('vrfs//delete/', views.VRFDeleteView.as_view(), name='vrf_delete'), + path('vrfs//changelog/', ObjectChangeLogView.as_view(), name='vrf_changelog', kwargs={'model': VRF}), # RIRs - path(r'rirs/', views.RIRListView.as_view(), name='rir_list'), - path(r'rirs/add/', views.RIRCreateView.as_view(), name='rir_add'), - path(r'rirs/import/', views.RIRBulkImportView.as_view(), name='rir_import'), - path(r'rirs/delete/', views.RIRBulkDeleteView.as_view(), name='rir_bulk_delete'), - path(r'rirs//edit/', views.RIREditView.as_view(), name='rir_edit'), - path(r'vrfs//changelog/', ObjectChangeLogView.as_view(), name='rir_changelog', kwargs={'model': RIR}), + path('rirs/', views.RIRListView.as_view(), name='rir_list'), + path('rirs/add/', views.RIRCreateView.as_view(), name='rir_add'), + path('rirs/import/', views.RIRBulkImportView.as_view(), name='rir_import'), + path('rirs/delete/', views.RIRBulkDeleteView.as_view(), name='rir_bulk_delete'), + path('rirs//edit/', views.RIREditView.as_view(), name='rir_edit'), + path('vrfs//changelog/', ObjectChangeLogView.as_view(), name='rir_changelog', kwargs={'model': RIR}), # Aggregates - path(r'aggregates/', views.AggregateListView.as_view(), name='aggregate_list'), - path(r'aggregates/add/', views.AggregateCreateView.as_view(), name='aggregate_add'), - path(r'aggregates/import/', views.AggregateBulkImportView.as_view(), name='aggregate_import'), - path(r'aggregates/edit/', views.AggregateBulkEditView.as_view(), name='aggregate_bulk_edit'), - path(r'aggregates/delete/', views.AggregateBulkDeleteView.as_view(), name='aggregate_bulk_delete'), - path(r'aggregates//', views.AggregateView.as_view(), name='aggregate'), - path(r'aggregates//edit/', views.AggregateEditView.as_view(), name='aggregate_edit'), - path(r'aggregates//delete/', views.AggregateDeleteView.as_view(), name='aggregate_delete'), - path(r'aggregates//changelog/', ObjectChangeLogView.as_view(), name='aggregate_changelog', kwargs={'model': Aggregate}), + path('aggregates/', views.AggregateListView.as_view(), name='aggregate_list'), + path('aggregates/add/', views.AggregateCreateView.as_view(), name='aggregate_add'), + path('aggregates/import/', views.AggregateBulkImportView.as_view(), name='aggregate_import'), + path('aggregates/edit/', views.AggregateBulkEditView.as_view(), name='aggregate_bulk_edit'), + path('aggregates/delete/', views.AggregateBulkDeleteView.as_view(), name='aggregate_bulk_delete'), + path('aggregates//', views.AggregateView.as_view(), name='aggregate'), + path('aggregates//edit/', views.AggregateEditView.as_view(), name='aggregate_edit'), + path('aggregates//delete/', views.AggregateDeleteView.as_view(), name='aggregate_delete'), + path('aggregates//changelog/', ObjectChangeLogView.as_view(), name='aggregate_changelog', kwargs={'model': Aggregate}), # Roles - path(r'roles/', views.RoleListView.as_view(), name='role_list'), - path(r'roles/add/', views.RoleCreateView.as_view(), name='role_add'), - path(r'roles/import/', views.RoleBulkImportView.as_view(), name='role_import'), - path(r'roles/delete/', views.RoleBulkDeleteView.as_view(), name='role_bulk_delete'), - path(r'roles//edit/', views.RoleEditView.as_view(), name='role_edit'), - path(r'roles//changelog/', ObjectChangeLogView.as_view(), name='role_changelog', kwargs={'model': Role}), + path('roles/', views.RoleListView.as_view(), name='role_list'), + path('roles/add/', views.RoleCreateView.as_view(), name='role_add'), + path('roles/import/', views.RoleBulkImportView.as_view(), name='role_import'), + path('roles/delete/', views.RoleBulkDeleteView.as_view(), name='role_bulk_delete'), + path('roles//edit/', views.RoleEditView.as_view(), name='role_edit'), + path('roles//changelog/', ObjectChangeLogView.as_view(), name='role_changelog', kwargs={'model': Role}), # Prefixes - path(r'prefixes/', views.PrefixListView.as_view(), name='prefix_list'), - path(r'prefixes/add/', views.PrefixCreateView.as_view(), name='prefix_add'), - path(r'prefixes/import/', views.PrefixBulkImportView.as_view(), name='prefix_import'), - path(r'prefixes/edit/', views.PrefixBulkEditView.as_view(), name='prefix_bulk_edit'), - path(r'prefixes/delete/', views.PrefixBulkDeleteView.as_view(), name='prefix_bulk_delete'), - path(r'prefixes//', views.PrefixView.as_view(), name='prefix'), - path(r'prefixes//edit/', views.PrefixEditView.as_view(), name='prefix_edit'), - path(r'prefixes//delete/', views.PrefixDeleteView.as_view(), name='prefix_delete'), - path(r'prefixes//changelog/', ObjectChangeLogView.as_view(), name='prefix_changelog', kwargs={'model': Prefix}), - path(r'prefixes//prefixes/', views.PrefixPrefixesView.as_view(), name='prefix_prefixes'), - path(r'prefixes//ip-addresses/', views.PrefixIPAddressesView.as_view(), name='prefix_ipaddresses'), + path('prefixes/', views.PrefixListView.as_view(), name='prefix_list'), + path('prefixes/add/', views.PrefixCreateView.as_view(), name='prefix_add'), + path('prefixes/import/', views.PrefixBulkImportView.as_view(), name='prefix_import'), + path('prefixes/edit/', views.PrefixBulkEditView.as_view(), name='prefix_bulk_edit'), + path('prefixes/delete/', views.PrefixBulkDeleteView.as_view(), name='prefix_bulk_delete'), + path('prefixes//', views.PrefixView.as_view(), name='prefix'), + path('prefixes//edit/', views.PrefixEditView.as_view(), name='prefix_edit'), + path('prefixes//delete/', views.PrefixDeleteView.as_view(), name='prefix_delete'), + path('prefixes//changelog/', ObjectChangeLogView.as_view(), name='prefix_changelog', kwargs={'model': Prefix}), + path('prefixes//prefixes/', views.PrefixPrefixesView.as_view(), name='prefix_prefixes'), + path('prefixes//ip-addresses/', views.PrefixIPAddressesView.as_view(), name='prefix_ipaddresses'), # IP addresses - path(r'ip-addresses/', views.IPAddressListView.as_view(), name='ipaddress_list'), - path(r'ip-addresses/add/', views.IPAddressCreateView.as_view(), name='ipaddress_add'), - path(r'ip-addresses/bulk-add/', views.IPAddressBulkCreateView.as_view(), name='ipaddress_bulk_add'), - path(r'ip-addresses/import/', views.IPAddressBulkImportView.as_view(), name='ipaddress_import'), - path(r'ip-addresses/edit/', views.IPAddressBulkEditView.as_view(), name='ipaddress_bulk_edit'), - path(r'ip-addresses/delete/', views.IPAddressBulkDeleteView.as_view(), name='ipaddress_bulk_delete'), - path(r'ip-addresses//changelog/', ObjectChangeLogView.as_view(), name='ipaddress_changelog', kwargs={'model': IPAddress}), - path(r'ip-addresses/assign/', views.IPAddressAssignView.as_view(), name='ipaddress_assign'), - path(r'ip-addresses//', views.IPAddressView.as_view(), name='ipaddress'), - path(r'ip-addresses//edit/', views.IPAddressEditView.as_view(), name='ipaddress_edit'), - path(r'ip-addresses//delete/', views.IPAddressDeleteView.as_view(), name='ipaddress_delete'), + path('ip-addresses/', views.IPAddressListView.as_view(), name='ipaddress_list'), + path('ip-addresses/add/', views.IPAddressCreateView.as_view(), name='ipaddress_add'), + path('ip-addresses/bulk-add/', views.IPAddressBulkCreateView.as_view(), name='ipaddress_bulk_add'), + path('ip-addresses/import/', views.IPAddressBulkImportView.as_view(), name='ipaddress_import'), + path('ip-addresses/edit/', views.IPAddressBulkEditView.as_view(), name='ipaddress_bulk_edit'), + path('ip-addresses/delete/', views.IPAddressBulkDeleteView.as_view(), name='ipaddress_bulk_delete'), + path('ip-addresses//changelog/', ObjectChangeLogView.as_view(), name='ipaddress_changelog', kwargs={'model': IPAddress}), + path('ip-addresses/assign/', views.IPAddressAssignView.as_view(), name='ipaddress_assign'), + path('ip-addresses//', views.IPAddressView.as_view(), name='ipaddress'), + path('ip-addresses//edit/', views.IPAddressEditView.as_view(), name='ipaddress_edit'), + path('ip-addresses//delete/', views.IPAddressDeleteView.as_view(), name='ipaddress_delete'), # VLAN groups - path(r'vlan-groups/', views.VLANGroupListView.as_view(), name='vlangroup_list'), - path(r'vlan-groups/add/', views.VLANGroupCreateView.as_view(), name='vlangroup_add'), - path(r'vlan-groups/import/', views.VLANGroupBulkImportView.as_view(), name='vlangroup_import'), - path(r'vlan-groups/delete/', views.VLANGroupBulkDeleteView.as_view(), name='vlangroup_bulk_delete'), - path(r'vlan-groups//edit/', views.VLANGroupEditView.as_view(), name='vlangroup_edit'), - path(r'vlan-groups//vlans/', views.VLANGroupVLANsView.as_view(), name='vlangroup_vlans'), - path(r'vlan-groups//changelog/', ObjectChangeLogView.as_view(), name='vlangroup_changelog', kwargs={'model': VLANGroup}), + path('vlan-groups/', views.VLANGroupListView.as_view(), name='vlangroup_list'), + path('vlan-groups/add/', views.VLANGroupCreateView.as_view(), name='vlangroup_add'), + path('vlan-groups/import/', views.VLANGroupBulkImportView.as_view(), name='vlangroup_import'), + path('vlan-groups/delete/', views.VLANGroupBulkDeleteView.as_view(), name='vlangroup_bulk_delete'), + path('vlan-groups//edit/', views.VLANGroupEditView.as_view(), name='vlangroup_edit'), + path('vlan-groups//vlans/', views.VLANGroupVLANsView.as_view(), name='vlangroup_vlans'), + path('vlan-groups//changelog/', ObjectChangeLogView.as_view(), name='vlangroup_changelog', kwargs={'model': VLANGroup}), # VLANs - path(r'vlans/', views.VLANListView.as_view(), name='vlan_list'), - path(r'vlans/add/', views.VLANCreateView.as_view(), name='vlan_add'), - path(r'vlans/import/', views.VLANBulkImportView.as_view(), name='vlan_import'), - path(r'vlans/edit/', views.VLANBulkEditView.as_view(), name='vlan_bulk_edit'), - path(r'vlans/delete/', views.VLANBulkDeleteView.as_view(), name='vlan_bulk_delete'), - path(r'vlans//', views.VLANView.as_view(), name='vlan'), - path(r'vlans//members/', views.VLANMembersView.as_view(), name='vlan_members'), - path(r'vlans//edit/', views.VLANEditView.as_view(), name='vlan_edit'), - path(r'vlans//delete/', views.VLANDeleteView.as_view(), name='vlan_delete'), - path(r'vlans//changelog/', ObjectChangeLogView.as_view(), name='vlan_changelog', kwargs={'model': VLAN}), + path('vlans/', views.VLANListView.as_view(), name='vlan_list'), + path('vlans/add/', views.VLANCreateView.as_view(), name='vlan_add'), + path('vlans/import/', views.VLANBulkImportView.as_view(), name='vlan_import'), + path('vlans/edit/', views.VLANBulkEditView.as_view(), name='vlan_bulk_edit'), + path('vlans/delete/', views.VLANBulkDeleteView.as_view(), name='vlan_bulk_delete'), + path('vlans//', views.VLANView.as_view(), name='vlan'), + path('vlans//members/', views.VLANMembersView.as_view(), name='vlan_members'), + path('vlans//edit/', views.VLANEditView.as_view(), name='vlan_edit'), + path('vlans//delete/', views.VLANDeleteView.as_view(), name='vlan_delete'), + path('vlans//changelog/', ObjectChangeLogView.as_view(), name='vlan_changelog', kwargs={'model': VLAN}), # Services - path(r'services/', views.ServiceListView.as_view(), name='service_list'), - path(r'services/edit/', views.ServiceBulkEditView.as_view(), name='service_bulk_edit'), - path(r'services/delete/', views.ServiceBulkDeleteView.as_view(), name='service_bulk_delete'), - path(r'services//', views.ServiceView.as_view(), name='service'), - path(r'services//edit/', views.ServiceEditView.as_view(), name='service_edit'), - path(r'services//delete/', views.ServiceDeleteView.as_view(), name='service_delete'), - path(r'services//changelog/', ObjectChangeLogView.as_view(), name='service_changelog', kwargs={'model': Service}), + path('services/', views.ServiceListView.as_view(), name='service_list'), + path('services/edit/', views.ServiceBulkEditView.as_view(), name='service_bulk_edit'), + path('services/delete/', views.ServiceBulkDeleteView.as_view(), name='service_bulk_delete'), + path('services//', views.ServiceView.as_view(), name='service'), + path('services//edit/', views.ServiceEditView.as_view(), name='service_edit'), + path('services//delete/', views.ServiceDeleteView.as_view(), name='service_delete'), + path('services//changelog/', ObjectChangeLogView.as_view(), name='service_changelog', kwargs={'model': Service}), ] diff --git a/netbox/netbox/urls.py b/netbox/netbox/urls.py index 66ab982eb..2c4d504b2 100644 --- a/netbox/netbox/urls.py +++ b/netbox/netbox/urls.py @@ -26,49 +26,49 @@ schema_view = get_schema_view( _patterns = [ # Base views - path(r'', HomeView.as_view(), name='home'), - path(r'search/', SearchView.as_view(), name='search'), + path('', HomeView.as_view(), name='home'), + path('search/', SearchView.as_view(), name='search'), # Login/logout - path(r'login/', LoginView.as_view(), name='login'), - path(r'logout/', LogoutView.as_view(), name='logout'), + path('login/', LoginView.as_view(), name='login'), + path('logout/', LogoutView.as_view(), name='logout'), # Apps - path(r'circuits/', include('circuits.urls')), - path(r'dcim/', include('dcim.urls')), - path(r'extras/', include('extras.urls')), - path(r'ipam/', include('ipam.urls')), - path(r'secrets/', include('secrets.urls')), - path(r'tenancy/', include('tenancy.urls')), - path(r'user/', include('users.urls')), - path(r'virtualization/', include('virtualization.urls')), + path('circuits/', include('circuits.urls')), + path('dcim/', include('dcim.urls')), + path('extras/', include('extras.urls')), + path('ipam/', include('ipam.urls')), + path('secrets/', include('secrets.urls')), + path('tenancy/', include('tenancy.urls')), + path('user/', include('users.urls')), + path('virtualization/', include('virtualization.urls')), # API - path(r'api/', APIRootView.as_view(), name='api-root'), - path(r'api/circuits/', include('circuits.api.urls')), - path(r'api/dcim/', include('dcim.api.urls')), - path(r'api/extras/', include('extras.api.urls')), - path(r'api/ipam/', include('ipam.api.urls')), - path(r'api/secrets/', include('secrets.api.urls')), - path(r'api/tenancy/', include('tenancy.api.urls')), - path(r'api/virtualization/', include('virtualization.api.urls')), - path(r'api/docs/', schema_view.with_ui('swagger'), name='api_docs'), - path(r'api/redoc/', schema_view.with_ui('redoc'), name='api_redocs'), + path('api/', APIRootView.as_view(), name='api-root'), + path('api/circuits/', include('circuits.api.urls')), + path('api/dcim/', include('dcim.api.urls')), + path('api/extras/', include('extras.api.urls')), + path('api/ipam/', include('ipam.api.urls')), + path('api/secrets/', include('secrets.api.urls')), + path('api/tenancy/', include('tenancy.api.urls')), + path('api/virtualization/', include('virtualization.api.urls')), + path('api/docs/', schema_view.with_ui('swagger'), name='api_docs'), + path('api/redoc/', schema_view.with_ui('redoc'), name='api_redocs'), re_path(r'^api/swagger(?P.json|.yaml)$', schema_view.without_ui(), name='schema_swagger'), # Serving static media in Django to pipe it through LoginRequiredMiddleware - path(r'media/', serve, {'document_root': settings.MEDIA_ROOT}), + path('media/', serve, {'document_root': settings.MEDIA_ROOT}), # Admin - path(r'admin/', admin_site.urls), - path(r'admin/webhook-backend-status/', include('django_rq.urls')), + path('admin/', admin_site.urls), + path('admin/webhook-backend-status/', include('django_rq.urls')), ] if settings.DEBUG: import debug_toolbar _patterns += [ - path(r'__debug__/', include(debug_toolbar.urls)), + path('__debug__/', include(debug_toolbar.urls)), ] if settings.METRICS_ENABLED: @@ -78,7 +78,7 @@ if settings.METRICS_ENABLED: # Prepend BASE_PATH urlpatterns = [ - path(r'{}'.format(settings.BASE_PATH), include(_patterns)) + path('{}'.format(settings.BASE_PATH), include(_patterns)) ] handler500 = 'utilities.views.server_error' diff --git a/netbox/secrets/api/urls.py b/netbox/secrets/api/urls.py index def87b3a1..70abcfe29 100644 --- a/netbox/secrets/api/urls.py +++ b/netbox/secrets/api/urls.py @@ -15,15 +15,15 @@ router = routers.DefaultRouter() router.APIRootView = SecretsRootView # Field choices -router.register(r'_choices', views.SecretsFieldChoicesViewSet, basename='field-choice') +router.register('_choices', views.SecretsFieldChoicesViewSet, basename='field-choice') # Secrets -router.register(r'secret-roles', views.SecretRoleViewSet) -router.register(r'secrets', views.SecretViewSet) +router.register('secret-roles', views.SecretRoleViewSet) +router.register('secrets', views.SecretViewSet) # Miscellaneous -router.register(r'get-session-key', views.GetSessionKeyViewSet, basename='get-session-key') -router.register(r'generate-rsa-key-pair', views.GenerateRSAKeyPairViewSet, basename='generate-rsa-key-pair') +router.register('get-session-key', views.GetSessionKeyViewSet, basename='get-session-key') +router.register('generate-rsa-key-pair', views.GenerateRSAKeyPairViewSet, basename='generate-rsa-key-pair') app_name = 'secrets-api' urlpatterns = router.urls diff --git a/netbox/secrets/urls.py b/netbox/secrets/urls.py index 9d07dd63c..4ed08da7f 100644 --- a/netbox/secrets/urls.py +++ b/netbox/secrets/urls.py @@ -8,21 +8,21 @@ app_name = 'secrets' urlpatterns = [ # Secret roles - path(r'secret-roles/', views.SecretRoleListView.as_view(), name='secretrole_list'), - path(r'secret-roles/add/', views.SecretRoleCreateView.as_view(), name='secretrole_add'), - path(r'secret-roles/import/', views.SecretRoleBulkImportView.as_view(), name='secretrole_import'), - path(r'secret-roles/delete/', views.SecretRoleBulkDeleteView.as_view(), name='secretrole_bulk_delete'), - path(r'secret-roles//edit/', views.SecretRoleEditView.as_view(), name='secretrole_edit'), - path(r'secret-roles//changelog/', ObjectChangeLogView.as_view(), name='secretrole_changelog', kwargs={'model': SecretRole}), + path('secret-roles/', views.SecretRoleListView.as_view(), name='secretrole_list'), + path('secret-roles/add/', views.SecretRoleCreateView.as_view(), name='secretrole_add'), + path('secret-roles/import/', views.SecretRoleBulkImportView.as_view(), name='secretrole_import'), + path('secret-roles/delete/', views.SecretRoleBulkDeleteView.as_view(), name='secretrole_bulk_delete'), + path('secret-roles//edit/', views.SecretRoleEditView.as_view(), name='secretrole_edit'), + path('secret-roles//changelog/', ObjectChangeLogView.as_view(), name='secretrole_changelog', kwargs={'model': SecretRole}), # Secrets - path(r'secrets/', views.SecretListView.as_view(), name='secret_list'), - path(r'secrets/import/', views.SecretBulkImportView.as_view(), name='secret_import'), - path(r'secrets/edit/', views.SecretBulkEditView.as_view(), name='secret_bulk_edit'), - path(r'secrets/delete/', views.SecretBulkDeleteView.as_view(), name='secret_bulk_delete'), - path(r'secrets//', views.SecretView.as_view(), name='secret'), - path(r'secrets//edit/', views.secret_edit, name='secret_edit'), - path(r'secrets//delete/', views.SecretDeleteView.as_view(), name='secret_delete'), - path(r'secrets//changelog/', ObjectChangeLogView.as_view(), name='secret_changelog', kwargs={'model': Secret}), + path('secrets/', views.SecretListView.as_view(), name='secret_list'), + path('secrets/import/', views.SecretBulkImportView.as_view(), name='secret_import'), + path('secrets/edit/', views.SecretBulkEditView.as_view(), name='secret_bulk_edit'), + path('secrets/delete/', views.SecretBulkDeleteView.as_view(), name='secret_bulk_delete'), + path('secrets//', views.SecretView.as_view(), name='secret'), + path('secrets//edit/', views.secret_edit, name='secret_edit'), + path('secrets//delete/', views.SecretDeleteView.as_view(), name='secret_delete'), + path('secrets//changelog/', ObjectChangeLogView.as_view(), name='secret_changelog', kwargs={'model': Secret}), ] diff --git a/netbox/tenancy/api/urls.py b/netbox/tenancy/api/urls.py index 3da0e0f82..5762f9a0d 100644 --- a/netbox/tenancy/api/urls.py +++ b/netbox/tenancy/api/urls.py @@ -15,11 +15,11 @@ router = routers.DefaultRouter() router.APIRootView = TenancyRootView # Field choices -router.register(r'_choices', views.TenancyFieldChoicesViewSet, basename='field-choice') +router.register('_choices', views.TenancyFieldChoicesViewSet, basename='field-choice') # Tenants -router.register(r'tenant-groups', views.TenantGroupViewSet) -router.register(r'tenants', views.TenantViewSet) +router.register('tenant-groups', views.TenantGroupViewSet) +router.register('tenants', views.TenantViewSet) app_name = 'tenancy-api' urlpatterns = router.urls diff --git a/netbox/tenancy/urls.py b/netbox/tenancy/urls.py index fb23a6ef1..0218a5674 100644 --- a/netbox/tenancy/urls.py +++ b/netbox/tenancy/urls.py @@ -8,22 +8,22 @@ app_name = 'tenancy' urlpatterns = [ # Tenant groups - path(r'tenant-groups/', views.TenantGroupListView.as_view(), name='tenantgroup_list'), - path(r'tenant-groups/add/', views.TenantGroupCreateView.as_view(), name='tenantgroup_add'), - path(r'tenant-groups/import/', views.TenantGroupBulkImportView.as_view(), name='tenantgroup_import'), - path(r'tenant-groups/delete/', views.TenantGroupBulkDeleteView.as_view(), name='tenantgroup_bulk_delete'), - path(r'tenant-groups//edit/', views.TenantGroupEditView.as_view(), name='tenantgroup_edit'), - path(r'tenant-groups//changelog/', ObjectChangeLogView.as_view(), name='tenantgroup_changelog', kwargs={'model': TenantGroup}), + path('tenant-groups/', views.TenantGroupListView.as_view(), name='tenantgroup_list'), + path('tenant-groups/add/', views.TenantGroupCreateView.as_view(), name='tenantgroup_add'), + path('tenant-groups/import/', views.TenantGroupBulkImportView.as_view(), name='tenantgroup_import'), + path('tenant-groups/delete/', views.TenantGroupBulkDeleteView.as_view(), name='tenantgroup_bulk_delete'), + path('tenant-groups//edit/', views.TenantGroupEditView.as_view(), name='tenantgroup_edit'), + path('tenant-groups//changelog/', ObjectChangeLogView.as_view(), name='tenantgroup_changelog', kwargs={'model': TenantGroup}), # Tenants - path(r'tenants/', views.TenantListView.as_view(), name='tenant_list'), - path(r'tenants/add/', views.TenantCreateView.as_view(), name='tenant_add'), - path(r'tenants/import/', views.TenantBulkImportView.as_view(), name='tenant_import'), - path(r'tenants/edit/', views.TenantBulkEditView.as_view(), name='tenant_bulk_edit'), - path(r'tenants/delete/', views.TenantBulkDeleteView.as_view(), name='tenant_bulk_delete'), - path(r'tenants//', views.TenantView.as_view(), name='tenant'), - path(r'tenants//edit/', views.TenantEditView.as_view(), name='tenant_edit'), - path(r'tenants//delete/', views.TenantDeleteView.as_view(), name='tenant_delete'), - path(r'tenants//changelog/', ObjectChangeLogView.as_view(), name='tenant_changelog', kwargs={'model': Tenant}), + path('tenants/', views.TenantListView.as_view(), name='tenant_list'), + path('tenants/add/', views.TenantCreateView.as_view(), name='tenant_add'), + path('tenants/import/', views.TenantBulkImportView.as_view(), name='tenant_import'), + path('tenants/edit/', views.TenantBulkEditView.as_view(), name='tenant_bulk_edit'), + path('tenants/delete/', views.TenantBulkDeleteView.as_view(), name='tenant_bulk_delete'), + path('tenants//', views.TenantView.as_view(), name='tenant'), + path('tenants//edit/', views.TenantEditView.as_view(), name='tenant_edit'), + path('tenants//delete/', views.TenantDeleteView.as_view(), name='tenant_delete'), + path('tenants//changelog/', ObjectChangeLogView.as_view(), name='tenant_changelog', kwargs={'model': Tenant}), ] diff --git a/netbox/users/urls.py b/netbox/users/urls.py index 40fdbeab1..dae540726 100644 --- a/netbox/users/urls.py +++ b/netbox/users/urls.py @@ -5,14 +5,14 @@ from . import views app_name = 'user' urlpatterns = [ - path(r'profile/', views.ProfileView.as_view(), name='profile'), - path(r'password/', views.ChangePasswordView.as_view(), name='change_password'), - path(r'api-tokens/', views.TokenListView.as_view(), name='token_list'), - path(r'api-tokens/add/', views.TokenEditView.as_view(), name='token_add'), - path(r'api-tokens//edit/', views.TokenEditView.as_view(), name='token_edit'), - path(r'api-tokens//delete/', views.TokenDeleteView.as_view(), name='token_delete'), - path(r'user-key/', views.UserKeyView.as_view(), name='userkey'), - path(r'user-key/edit/', views.UserKeyEditView.as_view(), name='userkey_edit'), - path(r'session-key/delete/', views.SessionKeyDeleteView.as_view(), name='sessionkey_delete'), + path('profile/', views.ProfileView.as_view(), name='profile'), + path('password/', views.ChangePasswordView.as_view(), name='change_password'), + path('api-tokens/', views.TokenListView.as_view(), name='token_list'), + path('api-tokens/add/', views.TokenEditView.as_view(), name='token_add'), + path('api-tokens//edit/', views.TokenEditView.as_view(), name='token_edit'), + path('api-tokens//delete/', views.TokenDeleteView.as_view(), name='token_delete'), + path('user-key/', views.UserKeyView.as_view(), name='userkey'), + path('user-key/edit/', views.UserKeyEditView.as_view(), name='userkey_edit'), + path('session-key/delete/', views.SessionKeyDeleteView.as_view(), name='sessionkey_delete'), ] diff --git a/netbox/virtualization/api/urls.py b/netbox/virtualization/api/urls.py index b27e5be3d..a94e043b2 100644 --- a/netbox/virtualization/api/urls.py +++ b/netbox/virtualization/api/urls.py @@ -15,16 +15,16 @@ router = routers.DefaultRouter() router.APIRootView = VirtualizationRootView # Field choices -router.register(r'_choices', views.VirtualizationFieldChoicesViewSet, basename='field-choice') +router.register('_choices', views.VirtualizationFieldChoicesViewSet, basename='field-choice') # Clusters -router.register(r'cluster-types', views.ClusterTypeViewSet) -router.register(r'cluster-groups', views.ClusterGroupViewSet) -router.register(r'clusters', views.ClusterViewSet) +router.register('cluster-types', views.ClusterTypeViewSet) +router.register('cluster-groups', views.ClusterGroupViewSet) +router.register('clusters', views.ClusterViewSet) # VirtualMachines -router.register(r'virtual-machines', views.VirtualMachineViewSet) -router.register(r'interfaces', views.InterfaceViewSet) +router.register('virtual-machines', views.VirtualMachineViewSet) +router.register('interfaces', views.InterfaceViewSet) app_name = 'virtualization-api' urlpatterns = router.urls diff --git a/netbox/virtualization/urls.py b/netbox/virtualization/urls.py index b478cd57b..1cea7ec62 100644 --- a/netbox/virtualization/urls.py +++ b/netbox/virtualization/urls.py @@ -9,54 +9,54 @@ app_name = 'virtualization' urlpatterns = [ # Cluster types - path(r'cluster-types/', views.ClusterTypeListView.as_view(), name='clustertype_list'), - path(r'cluster-types/add/', views.ClusterTypeCreateView.as_view(), name='clustertype_add'), - path(r'cluster-types/import/', views.ClusterTypeBulkImportView.as_view(), name='clustertype_import'), - path(r'cluster-types/delete/', views.ClusterTypeBulkDeleteView.as_view(), name='clustertype_bulk_delete'), - path(r'cluster-types//edit/', views.ClusterTypeEditView.as_view(), name='clustertype_edit'), - path(r'cluster-types//changelog/', ObjectChangeLogView.as_view(), name='clustertype_changelog', kwargs={'model': ClusterType}), + path('cluster-types/', views.ClusterTypeListView.as_view(), name='clustertype_list'), + path('cluster-types/add/', views.ClusterTypeCreateView.as_view(), name='clustertype_add'), + path('cluster-types/import/', views.ClusterTypeBulkImportView.as_view(), name='clustertype_import'), + path('cluster-types/delete/', views.ClusterTypeBulkDeleteView.as_view(), name='clustertype_bulk_delete'), + path('cluster-types//edit/', views.ClusterTypeEditView.as_view(), name='clustertype_edit'), + path('cluster-types//changelog/', ObjectChangeLogView.as_view(), name='clustertype_changelog', kwargs={'model': ClusterType}), # Cluster groups - path(r'cluster-groups/', views.ClusterGroupListView.as_view(), name='clustergroup_list'), - path(r'cluster-groups/add/', views.ClusterGroupCreateView.as_view(), name='clustergroup_add'), - path(r'cluster-groups/import/', views.ClusterGroupBulkImportView.as_view(), name='clustergroup_import'), - path(r'cluster-groups/delete/', views.ClusterGroupBulkDeleteView.as_view(), name='clustergroup_bulk_delete'), - path(r'cluster-groups//edit/', views.ClusterGroupEditView.as_view(), name='clustergroup_edit'), - path(r'cluster-groups//changelog/', ObjectChangeLogView.as_view(), name='clustergroup_changelog', kwargs={'model': ClusterGroup}), + path('cluster-groups/', views.ClusterGroupListView.as_view(), name='clustergroup_list'), + path('cluster-groups/add/', views.ClusterGroupCreateView.as_view(), name='clustergroup_add'), + path('cluster-groups/import/', views.ClusterGroupBulkImportView.as_view(), name='clustergroup_import'), + path('cluster-groups/delete/', views.ClusterGroupBulkDeleteView.as_view(), name='clustergroup_bulk_delete'), + path('cluster-groups//edit/', views.ClusterGroupEditView.as_view(), name='clustergroup_edit'), + path('cluster-groups//changelog/', ObjectChangeLogView.as_view(), name='clustergroup_changelog', kwargs={'model': ClusterGroup}), # Clusters - path(r'clusters/', views.ClusterListView.as_view(), name='cluster_list'), - path(r'clusters/add/', views.ClusterCreateView.as_view(), name='cluster_add'), - path(r'clusters/import/', views.ClusterBulkImportView.as_view(), name='cluster_import'), - path(r'clusters/edit/', views.ClusterBulkEditView.as_view(), name='cluster_bulk_edit'), - path(r'clusters/delete/', views.ClusterBulkDeleteView.as_view(), name='cluster_bulk_delete'), - path(r'clusters//', views.ClusterView.as_view(), name='cluster'), - path(r'clusters//edit/', views.ClusterEditView.as_view(), name='cluster_edit'), - path(r'clusters//delete/', views.ClusterDeleteView.as_view(), name='cluster_delete'), - path(r'clusters//changelog/', ObjectChangeLogView.as_view(), name='cluster_changelog', kwargs={'model': Cluster}), - path(r'clusters//devices/add/', views.ClusterAddDevicesView.as_view(), name='cluster_add_devices'), - path(r'clusters//devices/remove/', views.ClusterRemoveDevicesView.as_view(), name='cluster_remove_devices'), + path('clusters/', views.ClusterListView.as_view(), name='cluster_list'), + path('clusters/add/', views.ClusterCreateView.as_view(), name='cluster_add'), + path('clusters/import/', views.ClusterBulkImportView.as_view(), name='cluster_import'), + path('clusters/edit/', views.ClusterBulkEditView.as_view(), name='cluster_bulk_edit'), + path('clusters/delete/', views.ClusterBulkDeleteView.as_view(), name='cluster_bulk_delete'), + path('clusters//', views.ClusterView.as_view(), name='cluster'), + path('clusters//edit/', views.ClusterEditView.as_view(), name='cluster_edit'), + path('clusters//delete/', views.ClusterDeleteView.as_view(), name='cluster_delete'), + path('clusters//changelog/', ObjectChangeLogView.as_view(), name='cluster_changelog', kwargs={'model': Cluster}), + path('clusters//devices/add/', views.ClusterAddDevicesView.as_view(), name='cluster_add_devices'), + path('clusters//devices/remove/', views.ClusterRemoveDevicesView.as_view(), name='cluster_remove_devices'), # Virtual machines - path(r'virtual-machines/', views.VirtualMachineListView.as_view(), name='virtualmachine_list'), - path(r'virtual-machines/add/', views.VirtualMachineCreateView.as_view(), name='virtualmachine_add'), - path(r'virtual-machines/import/', views.VirtualMachineBulkImportView.as_view(), name='virtualmachine_import'), - path(r'virtual-machines/edit/', views.VirtualMachineBulkEditView.as_view(), name='virtualmachine_bulk_edit'), - path(r'virtual-machines/delete/', views.VirtualMachineBulkDeleteView.as_view(), name='virtualmachine_bulk_delete'), - path(r'virtual-machines//', views.VirtualMachineView.as_view(), name='virtualmachine'), - path(r'virtual-machines//edit/', views.VirtualMachineEditView.as_view(), name='virtualmachine_edit'), - path(r'virtual-machines//delete/', views.VirtualMachineDeleteView.as_view(), name='virtualmachine_delete'), - path(r'virtual-machines//config-context/', views.VirtualMachineConfigContextView.as_view(), name='virtualmachine_configcontext'), - path(r'virtual-machines//changelog/', ObjectChangeLogView.as_view(), name='virtualmachine_changelog', kwargs={'model': VirtualMachine}), - path(r'virtual-machines//services/assign/', ServiceCreateView.as_view(), name='virtualmachine_service_assign'), + path('virtual-machines/', views.VirtualMachineListView.as_view(), name='virtualmachine_list'), + path('virtual-machines/add/', views.VirtualMachineCreateView.as_view(), name='virtualmachine_add'), + path('virtual-machines/import/', views.VirtualMachineBulkImportView.as_view(), name='virtualmachine_import'), + path('virtual-machines/edit/', views.VirtualMachineBulkEditView.as_view(), name='virtualmachine_bulk_edit'), + path('virtual-machines/delete/', views.VirtualMachineBulkDeleteView.as_view(), name='virtualmachine_bulk_delete'), + path('virtual-machines//', views.VirtualMachineView.as_view(), name='virtualmachine'), + path('virtual-machines//edit/', views.VirtualMachineEditView.as_view(), name='virtualmachine_edit'), + path('virtual-machines//delete/', views.VirtualMachineDeleteView.as_view(), name='virtualmachine_delete'), + path('virtual-machines//config-context/', views.VirtualMachineConfigContextView.as_view(), name='virtualmachine_configcontext'), + path('virtual-machines//changelog/', ObjectChangeLogView.as_view(), name='virtualmachine_changelog', kwargs={'model': VirtualMachine}), + path('virtual-machines//services/assign/', ServiceCreateView.as_view(), name='virtualmachine_service_assign'), # VM interfaces - path(r'virtual-machines/interfaces/add/', views.VirtualMachineBulkAddInterfaceView.as_view(), name='virtualmachine_bulk_add_interface'), - path(r'interfaces/add/', views.InterfaceCreateView.as_view(), name='interface_add'), - path(r'interfaces/edit/', views.InterfaceBulkEditView.as_view(), name='interface_bulk_edit'), - path(r'interfaces/delete/', views.InterfaceBulkDeleteView.as_view(), name='interface_bulk_delete'), + path('virtual-machines/interfaces/add/', views.VirtualMachineBulkAddInterfaceView.as_view(), name='virtualmachine_bulk_add_interface'), + path('interfaces/add/', views.InterfaceCreateView.as_view(), name='interface_add'), + path('interfaces/edit/', views.InterfaceBulkEditView.as_view(), name='interface_bulk_edit'), + path('interfaces/delete/', views.InterfaceBulkDeleteView.as_view(), name='interface_bulk_delete'), # TODO: Rename vm-interfaces to interfaces - path(r'vm-interfaces//edit/', views.InterfaceEditView.as_view(), name='interface_edit'), - path(r'vm-interfaces//delete/', views.InterfaceDeleteView.as_view(), name='interface_delete'), + path('vm-interfaces//edit/', views.InterfaceEditView.as_view(), name='interface_edit'), + path('vm-interfaces//delete/', views.InterfaceDeleteView.as_view(), name='interface_delete'), ]