You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Unfortunately there are no examples of admin menu with submenu in Wagtail 6 docs, but here's Nigel van Keulen's solution from Wagtail's Slack #support channel with my modifications.
It would be good idea to add this example somewhere here or to new page titled „Creating custom admin menu with submenu”: https://docs.wagtail.org/en/stable/extending/admin_views.html
# wagtail_hooks.pyfromwagtailimporthooksfromwagtail.admin.menuimportMenu, SubmenuMenuItem, MenuItem, SubMenuItemComponentfromwagtail.images.wagtail_hooksimportregister_images_menu_itemfromwagtail.documents.wagtail_hooksimportregister_documents_menu_itemfromwagtail.admin.wagtail_hooksimportregister_collections_menu_item# change app to your main app folder with settings/base.pyfromapp.settings.baseimportHIDDEN_SETTINGS_MENU_ITEMS, HIDDEN_MAIN_MENU_ITEMS# define new menuassets_menu=Menu(
register_hook_name="register_assets_menu",
construct_hook_name="construct_assets_menu",
)
# register images submenu item@hooks.register("register_assets_menu")defregister_assets_menu():
returnregister_images_menu_item()
# register documents submenu item@hooks.register("register_assets_menu")defregister_assets_menu_item():
returnregister_documents_menu_item()
# register collections submenu item@hooks.register("register_assets_menu")defregister_assets_menu_item():
returnregister_collections_menu_item()
# register new menu with submenus@hooks.register("register_admin_menu_item")defregister_assets_menu_item():
returnSubmenuMenuItem(
_("Assets"),
name="assets",
icon_name="folder-open-1",
menu=assets_menu,
order=300,
)
# get list of hidden settings menu items from settings/base.py@hooks.register("construct_settings_menu")defhide_settings_items(request, menu_items):
menu_items[:] =filter(lambdaitem: item.namenotinHIDDEN_SETTINGS_MENU_ITEMS, menu_items)
# get list of hidden admin menu items from settings/base.py@hooks.register("construct_main_menu")defhide_main_items(request, menu_items):
menu_items[:] =filter(lambdaitem: item.namenotinHIDDEN_MAIN_MENU_ITEMS, menu_items)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Unfortunately there are no examples of admin menu with submenu in Wagtail 6 docs, but here's Nigel van Keulen's solution from Wagtail's Slack #support channel with my modifications.
It would be good idea to add this example somewhere here or to new page titled „Creating custom admin menu with submenu”: https://docs.wagtail.org/en/stable/extending/admin_views.html
Beta Was this translation helpful? Give feedback.
All reactions