Releases: collective/collective-multiworkflow
Releases · collective/collective-multiworkflow
Release list
1.0.0a1
1.0.0a0 (2026-08-14)
Backend
Feature
- Added support for assigning additional workflows to content types through behaviors. A behavior marker extending
IAdditionalWorkflowsdeclares the workflows it contributes with a<plone:additionalworkflows />ZCML directive, and those are appended to the type's configured workflow chain — never replacing it. An additional workflow leavesreview_stateuntouched, and may manage permissions of its own as long as the sets are disjoint across the chain —conflicting_permissionsaudits an object for overlap. The whole chain is searchable through oneworkflow_statesKeywordIndex and metadata column, whose values read<workflow-id>|<state-id>in chain order with the type's configured workflow always first, so a site gains no further indexes as more workflows are contributed; a workflow adoptingworkflow_statesas itsstate_variableis reindexed by CMFCore itself, and one keeping a state variable of its own is kept fresh by a transition subscriber. Additional workflows are exposed through workflow-aware API helpers, achainkey on the@workflowREST API endpoint, and an@historylisting that merges every workflow's transitions into one stream, each entry tagged with itsworkflow_id. Content without a participating behavior is unaffected, and the package ships no behavior of its own — the worked example lives in thecollective.multiworkflow.demosubpackage, which is not loaded by default. @ericof
Documentation
- Stated the supported Plone version as 6.2 in the readme, matching the package classifiers. @ericof
Frontend
Feature
- Added components for rendering additional workflows: a shadowed
Workflowcontrol that renders one selector per workflow in the chain, a shadowedHistoryview that reads a merged history correctly,AdditionalWorkflowMenushowing each additional workflow's state and available transitions, andStateBadgerendering one state for listings. TheHistoryview derives each entry's previous state perworkflow_idrather than from the entry preceding it in the list — the latter invents transitions between unrelated workflows once@historymerges a chain into one stream — and names the workflow on every row when a history spans more than one. Everything is driven by thechainkey of the@workflowresponse, so content without additional workflows renders exactly what Plone has always rendered. Typed interfaces for both payloads are exported. @ericof
Documentation
- Stated the supported Plone version as 6.2 in the readme, matching the backend package. @ericof
Project
Feature
- Added multi-workflow support for Plone: content types can gain additional workflows through behaviors, each tracking its own state alongside the publication workflow, with per-workflow state and transitions exposed in the
@workflowREST API endpoint, every workflow's transitions reported by@history, and the whole workflow chain searchable through a singleworkflow_statescatalog index. @ericof
Internal
- Fixed the CI workflow not starting on a push. Its
pathsfilter was*, which matches only files at the repository root, so any change confined tobackend/,frontend/,docs/ornews/triggered no run. Per-area gating already happens in theconfigjob. @ericof
Documentation
- Added the tutorial "Manage additional workflows in Volto", walking through the toolbar control, a transition that leaves
review_stateuntouched, and the merged history, with screenshots. @ericof - Added two how-to guides: "How to consume the REST API", covering the
chainkey, transitions and the merged history from a client of your own, and "How to customize the Volto components", covering restyling, reuse, and shadowing. @ericof - Corrected the installation guide: the Volto add-on is added as a frontend dependency and registered in
volto.config.js, and the backend profile is installed through a GenericSetup dependency or the add-ons control panel rather than a call torunAllImportStepsFromProfile. @ericof - Disclosed on the documentation landing page that these pages were written with Claude Opus 5, following the Plone documentation style skill, and reviewed by a human being. @ericof
- Presented the tutorials, how-to guides, concepts, and reference indexes as card grids, matching the documentation root. @ericof
- Stated the supported Plone version as 6.2 throughout the documentation and the readme files, matching the package classifiers. @ericof