Plugin fix attempt

This commit is contained in:
2025-05-08 11:33:37 +01:00
parent b0744c4acb
commit cad2355350
3 changed files with 28 additions and 41 deletions

View File

@@ -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 "<pre>" + "\n".join(result) + "</pre>"
return app

View File

@@ -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 "<pre>" + "\n".join(result) + "</pre>"

View File

@@ -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",
],
},
)