Author: jmorliaguet Date: Sat Oct 22 17:38:00 2005 New Revision: 28541 Modified: z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/engine.py z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/interfaces.py Log:
- we give a chance to portlets to update their data before doing the actual rendering. Modified: z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/engine.py ============================================================================== --- z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/engine.py (original) +++ z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/engine.py Sat Oct 22 17:38:00 2005 @@ -25,7 +25,7 @@ from zope.publisher.interfaces import IRequest from cpsskins.browser.negociation.interfaces import INegociation -from cpsskins.browser.rendering.interfaces import IDisplayData +from cpsskins.browser.rendering.interfaces import IDisplayData, IUpdateData from cpsskins.configuration.interfaces import IRegistry from cpsskins.elements.interfaces import IElement, ILeaf, ISlot, IDisplayable from cpsskins.relations.interfaces import IPredicate @@ -204,6 +204,11 @@ theme = getThemeManager().getThemeInContext(element) if ILeaf.providedBy(element): + # update leaf elements before rendering them + update_data = queryMultiAdapter((element, info), IUpdateData) + if update_data is not None: + update_data(**kw) + # do the actual rendering display_data = getMultiAdapter((element, info), IDisplayData) if callable(display_data): rendered = display_data(**kw) Modified: z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/interfaces.py ============================================================================== --- z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/interfaces.py (original) +++ z3lab/cpsskins/branches/jmo-perspectives/browser/rendering/interfaces.py Sat Oct 22 17:38:00 2005 @@ -33,6 +33,10 @@ def update(map): """Update map entries.""" +class IUpdateData(Interface): + """Hook adapter interface to give leaf elements such as portlets a chance + to update their data before rendering it.""" + class IDisplayData(Interface): """Information used by filters for generating some output to display.""" -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins