handle views correctly that are directly provided by a specialized traverser

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3419 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2009-06-12 14:39:41 +00:00
parent 634e0f78d0
commit cfde11670a
2 changed files with 4 additions and 4 deletions

View file

@ -104,7 +104,7 @@ class Classifier(AdapterBase):
message = u'Assigning: %s %s %s'
else:
message = u'Already assigned: %s %s %s'
self.log(message % (resource.title, predicate.title, concept.title), 5)
self.log(message % (resource.title, predicate.title, concept.title), 4)
def log(self, message, level=5):
if level >= self.logLevel:

View file

@ -26,6 +26,7 @@ from zope.app.container.traversal import ItemTraverser
from zope.cachedescriptors.property import Lazy
from zope import component
from zope.component import adapts
from zope.publisher.browser import BrowserView
from zope.publisher.interfaces import NotFound, IPublishTraverse
from loops.common import adapted
@ -67,15 +68,14 @@ class NodeTraverser(ItemTraverser):
traverser = IPublishTraverse(adapted(self.context.target), None)
if traverser is not None:
target = traverser.publishTraverse(request, name)
if isinstance(target, BrowserView):
return target
if target is not None:
viewAnnotations['target'] = target
tv = component.getMultiAdapter((target, request), name='layout')
viewAnnotations['targetView'] = tv
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)