Skip to content

Commit 27489e4

Browse files
Apply suggestions from code review
Co-authored-by: Steve Piercy <web@stevepiercy.com>
1 parent 50cb6b7 commit 27489e4

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

docs/developer-guide/create-control-panel.md

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
---
22
myst:
33
html_meta:
4-
"description": "How to create a control panel"
5-
"property=og:description": "How to create a control panel"
6-
"property=og:title": "Create a control panel"
7-
"keywords": "Plone, create, control panel, plonecli, registry"
4+
"description": "How to create a control panel in Plone for Classic UI and Volto"
5+
"property=og:description": "How to create a control panel in Plone for Classic UI and Volto"
6+
"property=og:title": "Create a control panel in Plone for Classic UI and Volto"
7+
"keywords": "Plone, create, control panel, plonecli, registry, Classic UI, Volto, frontend, backend"
88
---
99

1010
(backend-controlpanels-label)=
1111

1212
# Create a control panel
1313

14+
This chapter describes how to create a control panel for your Plone add-on, whether accessed through either the Classic UI or Volto frontend.
15+
16+
It also covers advanced topics—including how to group fields in your control panel—and provides a schema field reference, troubleshooting tips, control panel file structure, and a Plone REST API compatibility reference.
17+
18+
19+
## Creation approaches
20+
1421
There are two approaches to create a control panel for your Plone add-on:
1522

1623
- [`plonecli`](https://pypi.org/project/plonecli/)
@@ -140,22 +147,22 @@ Create a {file}`mypackage/profiles/default/controlpanel.xml` in your package's G
140147
```
141148

142149
The category attribute can be one of the following values.
143-
These values correspond to the groups in Site Setup.
150+
These values correspond to the groups in {guilabel}`Site Setup`.
144151

145152
`plone-general`
146-
: General settings
153+
: {guilabel}`General`
147154

148155
`plone-content`
149-
: Content-related settings
156+
: {guilabel}`Content`
150157

151158
`plone-users`
152-
: Users and groups settings
159+
: {guilabel}`Users`
153160

154161
`plone-security`
155-
: Security settings
162+
: {guilabel}`Security`
156163

157164
`plone-advanced`
158-
: Advanced settings
165+
: {guilabel}`Advanced`
159166

160167

161168
### Set default values in the registry
@@ -217,6 +224,8 @@ To manually register a view as a control panel, add the following registration t
217224
</object>
218225
```
219226

227+
Your control panel should now appear in {guilabel}`Site Setup`.
228+
220229

221230
## Use `FieldSet` to group fields
222231

@@ -296,10 +305,10 @@ You'll need to perform one or more of the following steps.
296305

297306
If your control panel doesn't appear or doesn't work as expected:
298307

299-
- Verify that all ZCML is properly registered
300-
- Check for errors in the Plone error log
301-
- Ensure your GenericSetup profiles are correctly installed
302-
- Validate that the interface path in registry.xml matches your actual Python path
308+
- Verify that all ZCML is properly registered.
309+
- Check for errors in the Plone error log.
310+
- Ensure your GenericSetup profiles are correctly installed.
311+
- Validate that the interface path in {file}`registry.xml` matches your actual Python path.
303312

304313

305314
## Example file structure
@@ -321,9 +330,9 @@ mypackage/
321330
└── registry.xml
322331
```
323332

324-
## REST API compatible control panels
333+
## REST API compatibility
325334

326-
For better integration between backend and Volto, you can create REST API compatible control panels using the adapter pattern.
335+
For better integration between Plone's backend and its frontend Volto, you can create REST API compatible control panels using the adapter pattern.
327336
This approach is particularly useful when developing control panels that need to work seamlessly with Volto.
328337

329338
Create a Python module {file}`mypackage/controlpanel.py` as follows.

0 commit comments

Comments
 (0)