From 55b231e8f9c66d1415bc5f59407347b228e3dc43 Mon Sep 17 00:00:00 2001 From: helmutm Date: Tue, 31 Mar 2009 11:46:01 +0000 Subject: [PATCH] provide standard attributes in base view git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3316 fd906abe-77d9-0310-91a1-e0d9ade77398 --- layout/browser/base.py | 20 ++++++++++++++++++++ layout/browser/traversal.py | 15 ++++++++++----- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/layout/browser/base.py b/layout/browser/base.py index 430e9d3..fc6e2a8 100644 --- a/layout/browser/base.py +++ b/layout/browser/base.py @@ -42,6 +42,26 @@ class BaseView(object): self.context = removeSecurityProxy(context) # this is the adapted concept! self.request = request + @Lazy + def loopsRoot(self): + return self.context.getLoopsRoot() + + @Lazy + def defaultPredicate(self): + return self.loopsRoot.getConceptManager().getDefaultPredicate() + + @Lazy + def conceptManager(self): + return self.loopsRoot.getConceptManager() + + @Lazy + def resourceManager(self): + return self.loopsRoot.getResourceManager() + + @Lazy + def defaultPredicate(self): + return self.conceptManager.getDefaultPredicate() + @Lazy def viewAnnotations(self): return self.request.annotations.get('loops.view', {}) diff --git a/layout/browser/traversal.py b/layout/browser/traversal.py index 94719d8..4dea60c 100644 --- a/layout/browser/traversal.py +++ b/layout/browser/traversal.py @@ -62,11 +62,16 @@ class NodeTraverser(ItemTraverser): tv = component.getMultiAdapter((target, request), name='layout') viewAnnotations['targetView'] = tv return self.context - try: - obj = super(NodeTraverser, self).publishTraverse(request, name) - except NotFound, e: - viewAnnotations['pageName'] = name - return self.context + obj = None + # for name, tr in component.getAdapters(self.context, IPublishTraverse): + # if name: + # obj = tr.publishTraverse(request, name) + if obj is None: + try: + obj = super(NodeTraverser, self).publishTraverse(request, name) + except NotFound, e: + viewAnnotations['pageName'] = name + return self.context return obj def cleanUpTraversalStack(self, request, name):