Skip to content

Major Refactor: Infinite Nesting and Enhanced Management UX - #38

Open
erral wants to merge 29 commits into
mainfrom
feature/nested-row-management-ux
Open

Major Refactor: Infinite Nesting and Enhanced Management UX#38
erral wants to merge 29 commits into
mainfrom
feature/nested-row-management-ux

Conversation

@erral

@erral erral commented Jul 2, 2026

Copy link
Copy Markdown
Member

No description provided.

@erral
erral force-pushed the feature/nested-row-management-ux branch from 1849bbd to 2864797 Compare July 2, 2026 12:31
@erral
erral force-pushed the feature/nested-row-management-ux branch from f856737 to e68d75b Compare August 5, 2026 16:45
@erral

This comment was marked as outdated.

@erral

This comment was marked as outdated.

@erral

erral commented Aug 5, 2026

Copy link
Copy Markdown
Member Author

🚀 Major Refactor: Infinite Nesting and Enhanced Management UX

This PR introduces a significant architectural upgrade to cs_dynamicpages, enabling recursive row structures and providing a modern management interface.

🏗️ Architecture & Core Features

  • Infinite Nesting: DynamicPageRow is now folderish, allowing rows to contain other rows (e.g., Sliders with Image slides, Accordions with Text blocks, nested Grids).
  • Structural Governance: Added registry-driven constraints (top_level_row_types and allowed_child_row_types) to control precisely where specific row types can be added.
  • Navigator Sidebar: Introduced a recursive Offcanvas tree UI for high-level management of complex page structures (reordering, adding, editing, or deleting nested items without cluttering the main preview).
  • Content Type Consolidation: Merged all row variants into a single, behavior-rich DynamicPageRow content type, with an automatic migration (v2000) for legacy DynamicPageRowFeatured items.

🛠️ UX & Compatibility Improvements

  • Control Panel Optimization: Overhauled the configuration interface to use Checkboxes and TextAreas, resolving a known JavaScript indexing bug in z3cform.datagridfield that hid selected items.
  • Plone 6.0 Support: Implemented conditional imports for widgets to maintain compatibility with the older plone.app.z3cform versions found in Plone 6.0.
  • Context-Aware Vocabulary: The RowType vocabulary now intelligently detects its environment to enforce constraints during content editing while remaining permissive during registry configuration.

📚 Documentation & Maintenance

  • Updated Guides: New documentation for 'Structural Governance' and updated registry.xml examples for developers.
  • Unified Changelog: Consolidated all news fragments into a single feature entry.
  • Verified Stability: All 236 tests passed locally, and codebase maintainability scored 10/10 on Pyroma.

This refactor provides the foundation for building highly complex, structured layouts in Plone Classic UI while keeping the editing experience clean and manageable.

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.

1 participant