#153: Portal type configlet in plone setup
- Contents
- Proposed by
- Danny Bloemendaal
- Seconded by
- Alexander Limi
- Proposal type
- User interface
- Assigned to release
- State
- completed
Motivation
Right now you have to go into ZMI to control various portal type settings like discussable, workflow assignment etc. Some of these options are desired to have in plone's UI.
Proposal
The configlet controls per page-type various options. The configlet can be extended with new options over time (eventually, this has to be pluggable where products or whatever can inject their type related settings in this form). For this plip, the following options will be covered:
- Title of the type
- Default discussable setting
- Addable settings
- Visibility in searches
- Wheter revision browsing is available or not
- Workflow assignment
UI Mockup:
+-[ Page (Document) |v]--------------------------------------------------+
| |
| Title |
| [ Page ] |
| |
| [x] Discussable by default [x] Addable |
| [x] Visible in searches [x] Revision browsing |
| |
| Current workflow New workflow |
| Plone workflow [ |v] |
| |
+-------------------------------------------------------------------------+
Current Default workflow New default workflow
Plone workflow [ |v]
[Cancel] [Apply] ! Updating the workflows may take a long time !
Notes:
As soon as you pick a new workflow a mapping section will be made visible where you can control how objects with states are mapped to states in the new workflow:
+-[ Page (Document) |v]--------------------------------------------------+
| |
| Title |
| [ Page ] |
| |
| [x] Discussable by default [x] Addable |
| [x] Visible in searches [x] Revision browsing |
| |
| Current workflow New workflow |
| Plone workflow [ someother workflow |v] |
| <description...> |
| |
| Configure below how object states in the current worfklow are |
| going to be mapped to which states in the new workflow |
| |
| Copy mapping from [ |v] |
| +-------------------------+--------------------------+ |
| | Old state | New state | |
| +-------------------------+--------------------------+ |
| | Published | [ |v] | |
| +-------------------------+--------------------------+ |
| | Public draft | [ |v] | |
| +-------------------------+--------------------------+ |
| | Visible | [ |v] | |
| +-------------------------+--------------------------+ |
| | Pending | [ |v] | |
| +-------------------------+--------------------------+ |
| |
+-------------------------------------------------------------------------+
Current Default workflow New default workflow
Plone workflow [ My workflow |v]
Configure below how object states in the current default worfklow
are going to be mapped to which states in the new default workflow
+-------------------------+--------------------------+
| Old state | New state |
+-------------------------+--------------------------+
| Published | [ |v] |
+-------------------------+--------------------------+
| Public draft | [ |v] |
+-------------------------+--------------------------+
| Visible | [ |v] |
+-------------------------+--------------------------+
| Pending | [ |v] |
+-------------------------+--------------------------+
[Cancel] [Apply] ! Updating the workflows may take a long time !
Every old state needs to be explicitly mapped to a state in the new workflow. There will be no default state, this to prevent undesired (security) issues.
The apply and cancel buttons are outside the fieldset and it is possible to go through all the type's settings before submitting them all.
A clear warning has to be displayed next to the apply button to inform the user that updating the workflow settings may take a very long time. The display of this information has to be triggered as soon as the user selects a new workflow for one of the types.
The 'copy mapping from' shows a list of portal-types that have already a mapping in this form. So when you for instance created a mapping for a Page and you have another type that will have the same current workflow and the same new workflow, then you can copy the mapping from Page.
Preferably, validation of the mapping is done on the client side.
Progress log
This was the result of the Archipelago sprint:
(Not sure where current code resides, please update this PLIP! ~limi)
Participants
- Raphel Ritz
- Danny Bloemendaal (UI)