Source code for dsgovbr.menus

from django.urls import reverse, NoReverseMatch
from django.utils.module_loading import autodiscover_modules










[docs] def get_full_admin_app_list(request): from django.contrib import admin class DummyUser: is_active = True is_staff = True is_superuser = True def has_module_perms(self, app_label): return True def has_perm(self, perm, obj=None): return True def is_anonymous(self): return False def is_authenticated(self): return True class MockRequest: def __init__(self, orig_req): self.user = DummyUser() self.META = getattr(orig_req, "META", {}) self.GET = getattr(orig_req, "GET", {}) self.POST = getattr(orig_req, "POST", {}) self.path = getattr(orig_req, "path", "") self.path_info = getattr(orig_req, "path_info", "") self.COOKIES = getattr(orig_req, "COOKIES", {}) self.session = getattr(orig_req, "session", None) mock_req = MockRequest(request) try: return admin.site.get_app_list(mock_req) except Exception as e: print(f"Error getting admin app list with mock request: {e}") return []
registry = MenuRegistry()
[docs] def register_folder( app_label, name=None, icon=None, app_url=None, order=None, permission=None, check=None, ): return registry.register_folder( app_label, name, icon, app_url, order, permission, check )
[docs] def register_item( app_label, name, url, icon=None, order=None, permission=None, check=None ): return registry.register_item(app_label, name, url, icon, order, permission, check)
[docs] def set_order(order_list): registry.set_order(order_list)
[docs] def set_items_order(app_label, order_list): registry.set_items_order(app_label, order_list)
[docs] def add_reorder_callback(callback): registry.add_reorder_callback(callback)
[docs] def get_menu_list(request): return registry.get_menu_list(request)
[docs] def autodiscover(): autodiscover_modules("menus")