diff --git a/invenio/plugin/custom_invenio_plugin/__init__.py b/invenio/plugin/custom_invenio_plugin/__init__.py index 63d67c8..1d5bbf3 100644 --- a/invenio/plugin/custom_invenio_plugin/__init__.py +++ b/invenio/plugin/custom_invenio_plugin/__init__.py @@ -1,14 +1,32 @@ -from flask import Blueprint - - def init_app(app): """Initialize application.""" from . import views - app.register_blueprint(views.blueprint) - @app.before_first_request def init_menus(): - views.init_menu() + views.init_main_menu() + + @app.route("/debug-menu") + def debug_menu(): + """Debug endpoint to view menu structure.""" + result = [] + + def inspect_menu(menu_node, level=0): + indent = " " * level + for child in menu_node.children: + item_info = { + "name": child.name, + "endpoint": getattr(child, "_endpoint", None), + "url": getattr(child, "url", None), + "text": getattr(child, "_text", None), + "order": child.order, + "has_children": bool(child.children), + } + result.append(f"{indent}{item_info}") + if child.children: + inspect_menu(child, level + 1) + + inspect_menu(current_menu.submenu("main")) + return "
" + "\n".join(result) + "
" return app diff --git a/invenio/plugin/custom_invenio_plugin/views.py b/invenio/plugin/custom_invenio_plugin/views.py index 0a6976d..c6ff0b1 100644 --- a/invenio/plugin/custom_invenio_plugin/views.py +++ b/invenio/plugin/custom_invenio_plugin/views.py @@ -1,41 +1,10 @@ -from flask import Blueprint -from flask_menu import current_menu - -blueprint = Blueprint( - "custom_menu", - __name__, -) - - -def init_menu(): +def init_main_menu(): """Add custom items to main menu.""" + from flask_menu import current_menu + current_menu.submenu("main").register( id="amdmodel", text="About AM-D-Model", external_url="https://am-d-model.eu", order=0, ) - - -@blueprint.route("/debug-menu") -def debug_menu(): - """Debug endpoint to view menu structure.""" - result = [] - - def inspect_menu(menu_node, level=0): - indent = " " * level - for child in menu_node.children: - item_info = { - "name": child.name, - "endpoint": getattr(child, "_endpoint", None), - "url": getattr(child, "url", None), - "text": getattr(child, "_text", None), - "order": child.order, - "has_children": bool(child.children), - } - result.append(f"{indent}{item_info}") - if child.children: - inspect_menu(child, level + 1) - - inspect_menu(current_menu.submenu("main")) - return "
" + "\n".join(result) + "
" diff --git a/invenio/plugin/setup.py b/invenio/plugin/setup.py index dea7384..f93eabd 100644 --- a/invenio/plugin/setup.py +++ b/invenio/plugin/setup.py @@ -6,7 +6,7 @@ setup( packages=["custom_invenio_plugin"], entry_points={ "invenio_base.apps": [ - "custom_menu = custom_invenio_plugin:init_app", + "custom_invenio_plugin = custom_invenio_plugin:init_app", ], }, )