Coverage for /home/runner/work/netbox-InterfaceNameRules-plugin/netbox-InterfaceNameRules-plugin/netbox-InterfaceNameRules-plugin/netbox_interface_name_rules/urls.py: 100%

5 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-22 21:16 +0000

1# SPDX-License-Identifier: Apache-2.0 

2# Copyright (C) 2025 Marcin Zieba <marcinpsk@gmail.com> 

3from django.urls import path 

4 

5from . import views 

6from .models import InterfaceNameRule 

7 

8app_name = "netbox_interface_name_rules" 

9 

10urlpatterns = [ 

11 # List / CRUD 

12 path("rules/", views.InterfaceNameRuleListView.as_view(), name="interfacenamerule_list"), 

13 path("rules/add/", views.InterfaceNameRuleCreateView.as_view(), name="interfacenamerule_add"), 

14 path("rules/import/", views.InterfaceNameRuleBulkImportView.as_view(), name="interfacenamerule_bulk_import"), 

15 path("rules/edit/", views.InterfaceNameRuleBulkEditView.as_view(), name="interfacenamerule_bulk_edit"), 

16 path("rules/bulk_delete/", views.InterfaceNameRuleBulkDeleteView.as_view(), name="interfacenamerule_bulk_delete"), 

17 # Rule tester (Build Rule) 

18 path("rules/test/", views.RuleTestView.as_view(), name="interfacenamerule_test"), 

19 # Apply rules to existing interfaces 

20 path("rules/apply/", views.RuleApplyListView.as_view(), name="interfacenamerule_apply"), 

21 # Per-rule parameterised routes 

22 path("rules/<int:pk>/", views.InterfaceNameRuleView.as_view(), name="interfacenamerule_detail"), 

23 path( 

24 "rules/<int:pk>/duplicate/", views.InterfaceNameRuleDuplicateView.as_view(), name="interfacenamerule_duplicate" 

25 ), 

26 path("rules/<int:pk>/edit/", views.InterfaceNameRuleEditView.as_view(), name="interfacenamerule_edit"), 

27 path("rules/<int:pk>/delete/", views.InterfaceNameRuleDeleteView.as_view(), name="interfacenamerule_delete"), 

28 path( 

29 "rules/<int:pk>/changelog/", 

30 views.InterfaceNameRuleChangeLogView.as_view(), 

31 name="interfacenamerule_changelog", 

32 # ObjectChangeLogView.get() takes the model as a URL kwarg; without it the tab 500s. 

33 kwargs={"model": InterfaceNameRule}, 

34 ), 

35 path("rules/<int:pk>/apply/", views.RuleApplyDetailView.as_view(), name="interfacenamerule_apply_detail"), 

36 path("rules/<int:pk>/applicable/", views.RuleApplicableView.as_view(), name="interfacenamerule_applicable"), 

37 path("rules/<int:pk>/toggle/", views.RuleToggleView.as_view(), name="interfacenamerule_toggle"), 

38]