Files
NetBox-Concept/netbox_rack_concept/navigation.py
T
MrBlakeandClaude Sonnet 5 f0d62bafd9 Fix ImportError: ButtonColorChoices lives in netbox.choices
ButtonColorChoices is defined in netbox/netbox/choices.py, not
utilities/choices.py (which only has the generic ChoiceSet base).
Cross-checked every other NetBox-internal import in the plugin against
the actual v4.6.8 source (dcim, netbox, tenancy, utilities packages)
to rule out further path mistakes; all others were already correct.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 09:18:44 +02:00

60 lines
1.9 KiB
Python

from django.utils.translation import gettext_lazy as _
from netbox.choices import ButtonColorChoices
from netbox.plugins import PluginMenu, PluginMenuButton, PluginMenuItem
concept_buttons = [
PluginMenuButton(
link='plugins:netbox_rack_concept:rackconcept_add',
title=_('Add'),
icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN,
permissions=['netbox_rack_concept.add_rackconcept']
),
PluginMenuButton(
link='plugins:netbox_rack_concept:rackconcept_bulk_import',
title=_('Import'),
icon_class='mdi mdi-upload',
color=ButtonColorChoices.CYAN,
permissions=['netbox_rack_concept.add_rackconcept']
),
]
device_buttons = [
PluginMenuButton(
link='plugins:netbox_rack_concept:conceptdevice_add',
title=_('Add'),
icon_class='mdi mdi-plus-thick',
color=ButtonColorChoices.GREEN,
permissions=['netbox_rack_concept.add_conceptdevice']
),
PluginMenuButton(
link='plugins:netbox_rack_concept:conceptdevice_bulk_import',
title=_('Import'),
icon_class='mdi mdi-upload',
color=ButtonColorChoices.CYAN,
permissions=['netbox_rack_concept.add_conceptdevice']
),
]
menu = PluginMenu(
label=_('Rack Concepts'),
icon_class='mdi mdi-view-grid-plus-outline',
groups=(
(_('Planning'), (
PluginMenuItem(
link='plugins:netbox_rack_concept:rackconcept_list',
link_text=_('Rack Concepts'),
permissions=['netbox_rack_concept.view_rackconcept'],
buttons=concept_buttons
),
PluginMenuItem(
link='plugins:netbox_rack_concept:conceptdevice_list',
link_text=_('Planned Devices'),
permissions=['netbox_rack_concept.view_conceptdevice'],
buttons=device_buttons
),
)),
)
)