fix: don't generate final navbar on file import

This commit is contained in:
KX 2024-07-23 14:49:14 +02:00 committed by Kek5chen
parent 36df9228a6
commit 1102c8d291
2 changed files with 35 additions and 20 deletions

View File

@ -1,6 +1,5 @@
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from netbox.registry import registry
from . import * from . import *
# #
@ -464,13 +463,27 @@ MENUS = [
OPERATIONS_MENU, OPERATIONS_MENU,
] ]
# Add top-level plugin menus has_initialized_function_menus = False
def add_plugin_menus():
"""
Build the plugin navigation menu and add plugin defined
menus to the global context.
"""
global has_initialized_function_menus
if has_initialized_function_menus:
return
else:
has_initialized_function_menus = True
from netbox.registry import registry
for menu in registry['plugins']['menus']: for menu in registry['plugins']['menus']:
MENUS.append(menu) MENUS.append(menu)
# Add the default "plugins" menu
if registry['plugins']['menu_items']: if registry['plugins']['menu_items']:
# Build the default plugins menu # Build the default plugins menu
groups = [ groups = [
MenuGroup(label=label, items=items) MenuGroup(label=label, items=items)

View File

@ -1,7 +1,7 @@
from django import template from django import template
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from netbox.navigation.menu import MENUS from netbox.navigation.menu import MENUS, add_plugin_menus
__all__ = ( __all__ = (
'nav', 'nav',
@ -14,6 +14,8 @@ register = template.Library()
@register.inclusion_tag("navigation/menu.html", takes_context=True) @register.inclusion_tag("navigation/menu.html", takes_context=True)
def nav(context): def nav(context):
add_plugin_menus()
""" """
Render the navigation menu. Render the navigation menu.
""" """