Skip to content

Add description, group_id, and icon to @controlpanels - #2086

Merged
davisagli merged 7 commits into
mainfrom
controlpanels-icon-description
Nov 1, 2026
Merged

davisagli merged 7 commits into
mainfrom
controlpanels-icon-description

Conversation

@sneridagh

Copy link
Copy Markdown
Member

GET @controlpanels lists the control panels with their title and group only. Each configlet in portal_controlpanel already carries an icon (its icon_expr) and can carry a description, but the endpoint drops both, so a frontend has to keep its own icon map by panel id and can't show anything for add-on panels. The group is also only available as a translated title.

This adds three fields to each control panel, in the listing and in a single control panel:

  • description: the configlet's description, translated. Plone's core configlets have none yet, so it is "" for them for now.
  • group_id: the configlet's category, such as plone-general, which doesn't change with the language.
  • icon: the configlet's icon as its icon_expr evaluates, such as clock or shield-check. Plone's configlets use Bootstrap Icons names, and add-on configlets already set theirs.

Control panels that don't extend RegistryConfigletPanel get empty values, so nothing changes for them. No existing field changes.

Also:

  • Documented the new fields, and the order of the listing: by group, then by translated title within each group. That order comes from enumConfiglets in CMFPlone.
  • Built the control panel @id with an f-string instead of .format.

Plone Aurora's site setup page will use the icon and description instead of its own map. A follow-up would add descriptions to the core configlets (CMFPlone, plone.app.dexterity, plone.app.discussion).

Each control panel now carries the description and icon of its configlet,
and the id of its group, which doesn't change with the language.
@sneridagh
sneridagh requested review from davisagli and ericof October 31, 2026 19:29
@mister-roboto

Copy link
Copy Markdown

@sneridagh thanks for creating this Pull Request and helping to improve Plone!

TL;DR: Finish pushing changes, pass all other checks, then paste a comment:

@jenkins-plone-org please run jobs

To ensure that these changes do not break other parts of Plone, the Plone test suite matrix needs to pass, but it takes 30-60 min. Other CI checks are usually much faster and the Plone Jenkins resources are limited, so when done pushing changes and all other checks pass either start all Jenkins PR jobs yourself, or simply add the comment above in this PR to start all the jobs automatically.

Happy hacking!

@read-the-docs-community

read-the-docs-community Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 plone.restapi | 🛠️ Build #35564912 | 📁 Comparing 0738246 against latest (0c32417)

  🔍 Preview build  

3 files changed
± genindex.html
± glossary.html
± endpoints/controlpanels.html

@sneridagh

Copy link
Copy Markdown
Member Author

@jenkins-plone-org please run jobs

@sneridagh

Copy link
Copy Markdown
Member Author

@jenkins-plone-org please run jobs

Added definition for JSON Schema.
Comment thread docs/source/endpoints/controlpanels.md Resolved
Comment thread docs/source/endpoints/controlpanels.md Resolved
@sneridagh

Copy link
Copy Markdown
Member Author

@jenkins-plone-org please run jobs

@sneridagh

Copy link
Copy Markdown
Member Author

@davisagli having this one released would be great! Then I can go with the improvements in the main control panels route, both in Volto and Aurora.

Comment thread news/2086.feature Resolved
@davisagli
davisagli merged commit 209f96b into main Nov 1, 2026
16 of 20 checks passed
@davisagli
davisagli deleted the controlpanels-icon-description branch November 1, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants