From b82f776b0b84ef87b157e441df3d6137fda62935 Mon Sep 17 00:00:00 2001 From: helmutm Date: Wed, 25 Mar 2009 10:04:59 +0000 Subject: [PATCH] provide generalized access to children for use by navigation levels git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3304 fd906abe-77d9-0310-91a1-e0d9ade77398 --- layout/browser/base.py | 11 ++++++++++- layout/browser/concept.py | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/layout/browser/base.py b/layout/browser/base.py index 4a35217..a52cb3a 100644 --- a/layout/browser/base.py +++ b/layout/browser/base.py @@ -28,6 +28,7 @@ from zope.app.security.interfaces import IUnauthenticatedPrincipal from zope import component from zope.cachedescriptors.property import Lazy from zope.proxy import removeAllProxies +from zope.security.proxy import removeSecurityProxy from zope.traversing.browser import absoluteURL from loops.common import adapted @@ -38,9 +39,17 @@ from loops import util class BaseView(object): def __init__(self, context, request): - self.context = context # this is the adapted concept! + self.context = removeSecurityProxy(context) # this is the adapted concept! self.request = request + @Lazy + def viewAnnotations(self): + return self.request.annotations.get('loops.view', {}) + + @Lazy + def virtualTarget(self): + return self.viewAnnotations.get('target') + @Lazy def title(self): return self.context.title diff --git a/layout/browser/concept.py b/layout/browser/concept.py index 563d6c4..764ac13 100644 --- a/layout/browser/concept.py +++ b/layout/browser/concept.py @@ -41,6 +41,7 @@ class ConceptView(BaseView): @property def children(self): for c in self.context.getChildren(): + a = adapted(c) view = component.getMultiAdapter((c, self.request), name='layout') view.node = self.node yield view