Skip to content

Commit bc3de78

Browse files
committed
refactor(navigation): Group plugin menu items
Reorganizes the plugin menu by grouping items under Access Lists, Rules, and Assignments for improved readability and maintainability. Splits menu definitions into distinct variables for clarity. No functional changes introduced. Fixes: #255
1 parent e716efc commit bc3de78

File tree

1 file changed

+76
-49
lines changed

1 file changed

+76
-49
lines changed

netbox_acls/navigation.py

Lines changed: 76 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,103 @@
11
"""
2-
Define the plugin menu buttons & the plugin navigation bar enteries.
2+
Define the plugin menu buttons and the plugin navigation bar entries.
33
"""
44

55
from django.conf import settings
66
from netbox.plugins import PluginMenu, PluginMenuButton, PluginMenuItem
77

8-
98
plugin_settings = settings.PLUGINS_CONFIG["netbox_acls"]
109

1110
#
1211
# Define plugin menu buttons
1312
#
14-
menu_buttons = (
15-
PluginMenuItem(
16-
link="plugins:netbox_acls:accesslist_list",
17-
link_text="Access Lists",
18-
permissions=["netbox_acls.view_accesslist"],
19-
buttons=(
20-
PluginMenuButton(
21-
link="plugins:netbox_acls:accesslist_add",
22-
title="Add",
23-
icon_class="mdi mdi-plus-thick",
24-
permissions=["netbox_acls.add_accesslist"],
25-
),
13+
14+
# Access List
15+
accesslist_item = PluginMenuItem(
16+
link="plugins:netbox_acls:accesslist_list",
17+
link_text="Access Lists",
18+
permissions=["netbox_acls.view_accesslist"],
19+
buttons=(
20+
PluginMenuButton(
21+
link="plugins:netbox_acls:accesslist_add",
22+
title="Add",
23+
icon_class="mdi mdi-plus-thick",
24+
permissions=["netbox_acls.add_accesslist"],
2625
),
2726
),
28-
PluginMenuItem(
29-
link="plugins:netbox_acls:aclstandardrule_list",
30-
link_text="Standard Rules",
31-
permissions=["netbox_acls.view_aclstandardrule"],
32-
buttons=(
33-
PluginMenuButton(
34-
link="plugins:netbox_acls:aclstandardrule_add",
35-
title="Add",
36-
icon_class="mdi mdi-plus-thick",
37-
permissions=["netbox_acls.add_aclstandardrule"],
38-
),
27+
)
28+
29+
# ACL Standard Rule
30+
aclstandardrule_item = PluginMenuItem(
31+
link="plugins:netbox_acls:aclstandardrule_list",
32+
link_text="Standard Rules",
33+
permissions=["netbox_acls.view_aclstandardrule"],
34+
buttons=(
35+
PluginMenuButton(
36+
link="plugins:netbox_acls:aclstandardrule_add",
37+
title="Add",
38+
icon_class="mdi mdi-plus-thick",
39+
permissions=["netbox_acls.add_aclstandardrule"],
3940
),
4041
),
41-
PluginMenuItem(
42-
link="plugins:netbox_acls:aclextendedrule_list",
43-
link_text="Extended Rules",
44-
permissions=["netbox_acls.view_aclextendedrule"],
45-
buttons=(
46-
PluginMenuButton(
47-
link="plugins:netbox_acls:aclextendedrule_add",
48-
title="Add",
49-
icon_class="mdi mdi-plus-thick",
50-
permissions=["netbox_acls.add_aclextendedrule"],
51-
),
42+
)
43+
44+
# ACL Extended Rule
45+
aclextendedrule_item = PluginMenuItem(
46+
link="plugins:netbox_acls:aclextendedrule_list",
47+
link_text="Extended Rules",
48+
permissions=["netbox_acls.view_aclextendedrule"],
49+
buttons=(
50+
PluginMenuButton(
51+
link="plugins:netbox_acls:aclextendedrule_add",
52+
title="Add",
53+
icon_class="mdi mdi-plus-thick",
54+
permissions=["netbox_acls.add_aclextendedrule"],
5255
),
5356
),
54-
PluginMenuItem(
55-
link="plugins:netbox_acls:aclinterfaceassignment_list",
56-
link_text="Interface Assignments",
57-
permissions=["netbox_acls.view_aclinterfaceassignment"],
58-
buttons=(
59-
PluginMenuButton(
60-
link="plugins:netbox_acls:aclinterfaceassignment_add",
61-
title="Add",
62-
icon_class="mdi mdi-plus-thick",
63-
permissions=["netbox_acls.add_aclinterfaceassignment"],
64-
),
57+
)
58+
59+
# ACL Interface Assignment
60+
aclinterfaceassignment_item = PluginMenuItem(
61+
link="plugins:netbox_acls:aclinterfaceassignment_list",
62+
link_text="Interface Assignments",
63+
permissions=["netbox_acls.view_aclinterfaceassignment"],
64+
buttons=(
65+
PluginMenuButton(
66+
link="plugins:netbox_acls:aclinterfaceassignment_add",
67+
title="Add",
68+
icon_class="mdi mdi-plus-thick",
69+
permissions=["netbox_acls.add_aclinterfaceassignment"],
6570
),
6671
),
6772
)
6873

74+
6975
if plugin_settings.get("top_level_menu"):
7076
menu = PluginMenu(
7177
label="Access Lists",
72-
groups=(("ACLs", menu_buttons),),
78+
groups=(
79+
(
80+
"Access Lists",
81+
(accesslist_item,),
82+
),
83+
(
84+
"Rules",
85+
(
86+
aclstandardrule_item,
87+
aclextendedrule_item,
88+
),
89+
),
90+
(
91+
"Assignments",
92+
(aclinterfaceassignment_item,),
93+
),
94+
),
7395
icon_class="mdi mdi-lock",
7496
)
7597
else:
76-
menu_items = menu_buttons
98+
menu_items = (
99+
accesslist_item,
100+
aclstandardrule_item,
101+
aclextendedrule_item,
102+
aclinterfaceassignment_item,
103+
)

0 commit comments

Comments
 (0)