-
-
Notifications
You must be signed in to change notification settings - Fork 203
Description
PLIP (Plone Improvement Proposal)
Responsible Persons
Proposer: @jensens
Seconder: @mauritsvanrees
Abstract
Step by step move classic ui templates and view-logic to plone.app.layout, while keeping the API/business logic in core packages.
Motivation
- Cleaner, easier to maintain code.
- Separation of view-logic and API/business logic makes it easier to re-use code and reduce duplication.
- Smaller core, less memory/disk footprint for users of the Volto frontend which does not need the Classic UI code.
Assumptions
In Plone 6, when you use only Products.CMFPlone, we still want you to get the complete Classic UI, or at least most of it.
In Plone 7 the Classic UI is still included with the Plone package, but not with the Products.CMFPlone package. See PLIP #3955 for that part.
Proposal & Implementation
- Have a
plone.classicuipackage. - This will define the Classic UI Plone distribution, so it will have the code to create a standard Classic UI site.
- Begin moving code that is only for Classic UI (so useless for Volto) to
plone.app.layout, with backwards compatibility in place, also for page templates. Update: move the code toplone.app.layoutinstead, which will become a core add-on. We keepplone.classicuismall: only the distribution plus the dependencies. - The dependency chain is:
Plone->plone.classicui->plone.distribution->Products.CMFPlone. - When you install only
Products.CMFPlonethe "Create a new Plone site" will create a Classic UI site in the traditional way, so not usingplone.distribution. It could be a bit more basic, because we would prefer not to maintain both the old and new way.
Precondition
We need a way to issue deprecation warnings for moved templates:
This has been developed in:
Deprecation chapter in docs is avail here as preview: https://plone6--1850.org.readthedocs.build/backend/deprecation.html#deprecating-a-template-position
Name of the Package - [your username], if you are working on it - [PR A/B]
| Package | User(s) | PR Links |
|---|---|---|
| @ale-rt, @cihanandac | plone/plone.app.layout#384, plone/plone.locking#45 | |
| Products.CMFPlone | [username] | [PR links] |
| plone.app.content | [username] | [PR links] |
| plone.app.workflow | @MrTango | plone/plone.app.workflow#58, plone/plone.app.layout#390 |
| Products.CMFEditions | [username] | [PR links] |
| plone.outputfilters | [username] | [PR links] |
| plone.app.dexterity | [username] | [PR links] |
| plone.protect | @cihanandac | plone/plone.protect#125, plone/plone.app.layout#386 |
| plone.app.theming | [username] | [PR links] |
| plone.app.contenttypes | [username] | [PR links] |
| plone.app.i18n | [username] | [PR links] |
| plone.browserlayer | [username] | [PR links] |
| plone.app.linkintegrity | @petschki | plone/plone.app.linkintegrity#106, plone/plone.app.layout#389 |
| plone.schema | [username] | [PR links] |
| plone.app.registry | [username] | [PR links] |
| plone.app.users | [username] | [PR links] |
Optional packages (or future optional),
Which we will not move for now and probably never will.
These package are optional for Classic UI or could become optional.
| Package | User(s) | PR Links | Comments |
|---|---|---|---|
| plone.app.portlets | [username] | [PR links] | |
| plone.app.contentmenu | [username] | [PR links] | |
| plone.portlet.static | [username] | [PR links] | |
| plone.portlet.collection | [username] | [PR links] | |
| plone.session | [username] | [PR links] | |
| plone.app.viewletmanager | [username] | [PR links] | |
| plone.theme | [username] | [PR links] | View/Template only in tests |
| plone.app.vocabularies | [username] | [PR links] | View/Template in a deprecated View for Plone 7 |
| plone.app.contentrules | [username] | #4110, [PR links] | |
| plone.app.customerize | [username] | [PR links] | Potential deprecation |
Deliverables
plone.classicui package and shrunken Plone-core packages (those between (and including) plone.base and Products.CMFPlone).
Risks
- No longer fallback UI for a pure headless Plone (except ZMI)
Participants
TODO
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status
Status
Status