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' message = u'Assigning: %s %s %s'
else: else:
message = u'Already assigned: %s %s %s' 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): def log(self, message, level=5):
if level >= self.logLevel: 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.cachedescriptors.property import Lazy
from zope import component from zope import component
from zope.component import adapts from zope.component import adapts
from zope.publisher.browser import BrowserView
from zope.publisher.interfaces import NotFound, IPublishTraverse from zope.publisher.interfaces import NotFound, IPublishTraverse
from loops.common import adapted from loops.common import adapted
@ -67,15 +68,14 @@ class NodeTraverser(ItemTraverser):
traverser = IPublishTraverse(adapted(self.context.target), None) traverser = IPublishTraverse(adapted(self.context.target), None)
if traverser is not None: if traverser is not None:
target = traverser.publishTraverse(request, name) target = traverser.publishTraverse(request, name)
if isinstance(target, BrowserView):
return target
if target is not None: if target is not None:
viewAnnotations['target'] = target viewAnnotations['target'] = target
tv = component.getMultiAdapter((target, request), name='layout') tv = component.getMultiAdapter((target, request), name='layout')
viewAnnotations['targetView'] = tv viewAnnotations['targetView'] = tv
return self.context return self.context
obj = None obj = None
# for name, tr in component.getAdapters(self.context, IPublishTraverse):
# if name:
# obj = tr.publishTraverse(request, name)
if obj is None: if obj is None:
try: try:
obj = super(NodeTraverser, self).publishTraverse(request, name) obj = super(NodeTraverser, self).publishTraverse(request, name)