#80: Navigation Portlet
The current navigation tree implementation should be refactored.
- Proposed by
- Jean-Paul Ladage
- Seconded by
- Joel Burton
- Proposal type
- Architecture
- Repository branch
- plip-80-navtree
- State
- completed
Motivation
The current implentation of the navigation tree is consuming a lot of resources because it is waking objects and has unnecessary complexity.
Proposal
Refactor the navtree-generating method by backporting the approach used in NavigationPortlets.
Implementation
NavigationPortlet has a far more efficient approach to building the navigation tree by using ExtendedPathIndex. But this product is currently part of PlonePortlets. The method that generates the tree will be inserted in PloneTool.py and the necessary changes in the catalog tool are added in a new setupNavTree method.
The following files are marked for deletion:
*StatelessTree
*StatelessTreeNav.py
The setupNavTreeStyleSheet method in StatelessTreeNav.py will be moved to Portal.py All options used in the current navtree stylesheet will available for migration purposes.
Deliverables
- A method for creating an ExtendedPathIndex for the path index.
- Install ExtendedPathIndex product in PloneTestCase.py
- Add a method in migration to substitute the path index and update the catalog
- Rewrite portlet_navigation.pt to call the new createNavTree method. Remove all legacy property handling code.
- add portlet_navigation_macro.pt which generates the tree recursively.
Progress log
during UI sprint
Participants
- Jean-Paul Ladage
- Joel Burton
Integration into Plone 2.05
Is there any easy way to integrate the new navigation into plone 2.0.5?
If so could you shortly describe it?
Best regards
Dominik