discoverer.py 732 B

123456789101112131415161718192021
  1. from importlib import import_module
  2. from django.apps import apps
  3. from .site import site
  4. from .urlpatterns import urlpatterns
  5. def discover_misago_admin():
  6. for app in apps.get_app_configs():
  7. module = import_module(app.name)
  8. if not hasattr(module, "admin"):
  9. continue
  10. admin_module = import_module("%s.admin" % app.name)
  11. if hasattr(admin_module, "MisagoAdminExtension"):
  12. extension = getattr(admin_module, "MisagoAdminExtension")()
  13. if hasattr(extension, "register_navigation_nodes"):
  14. extension.register_navigation_nodes(site)
  15. if hasattr(extension, "register_urlpatterns"):
  16. extension.register_urlpatterns(urlpatterns)