• GitHub
  • Documentation
  • Discord
  • Tip
search
  • chevron_right Threads
  • label Dev Development

Adding ACP functionality in plugins

rolfmeles
June 25, 2026
chat_bubble_outline 3
  • check_circle
  • link
    rolfmeles
    Members 8 posts
    June 25, 2026, 1:10 p.m. June 25, 2026, 1:10 p.m.
    link

    Hi,
    I am currently working on a plugin to create static pages. My idea: You can add a static page with a title and a text block from the admin control panel.
    I am stuck at the control panel part. How do I make a plugin add new menu entries in the ACP? What are the hooks to use? Is it even possible yet?

    I am a bloody beginner, so maybe I missed something obvious …

  • arrow_forward

    Thread has been moved from Support.

    • By rafalp on June 25, 2026, 1:23 p.m..
  • link
    rafalp
    Project Lead 2068 posts
    June 25, 2026, 1:29 p.m. June 25, 2026, 1:29 p.m.
    link
    check_box

    Marked as best answer by June 25, 2026, 2:10 p.m..

    There are no hooks for that. Instead Misago scans installed Django apps (which plugins are too) for admin modules defining the MisagoAdminExtension class. This class can define two methods: register_navigation_nodes to add new items to admin menu, and register_urlpatterns to get new URLs.

    Here's how such a file looks like: main admin.py

    And here's a simpler one: acl's admin/__init__.py

    This is kinda complicated and fucky tho, so in future I would like to replace it with a simpler logic. But not anytime so.

    rolfmeles likes this.

    favorite 1

  • link
    rolfmeles
    Members 8 posts
    June 25, 2026, 6:13 p.m. June 25, 2026, 6:13 p.m.
    link

    Thanks! That helped a lot.
    Problem is, that an ACP view always seems to import "generic" from ....admin.views. In the misago docker installation there is no misago/admin/views, and thus I'm stuck again. What would be the solution here?
    The plugin should really be usable in the misago docker releases...

  • link
    rafalp
    Project Lead 2068 posts
    June 25, 2026, 6:15 p.m. June 25, 2026, 6:15 p.m.
    link

    Misago is installed as a python package during Docker build. It's available in Misago docker.

arrow_upward Go to top
  • This site uses cookies to gather statistical data for use in traffic analysis.
  • GitHub
  • Documentation
  • Discord
  • Tip
  • Terms of service
  • Privacy policy
powered by misago