From 8b8ef4cbcc2a8f62924fa4d3e6597e7db057c77a Mon Sep 17 00:00:00 2001 From: helmutm Date: Thu, 13 Nov 2008 07:43:52 +0000 Subject: [PATCH] control navigation menu via layout node types, use traversal adapter for accessing targets via nodes git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2981 fd906abe-77d9-0310-91a1-e0d9ade77398 --- common.py | 3 +-- interfaces.py | 2 +- layout/base.py | 5 +++-- layout/browser/concept.py | 5 ----- layout/browser/configure.zcml | 8 +------- layout/browser/traversal.py | 3 ++- layout/interfaces.py | 4 ++-- 7 files changed, 10 insertions(+), 20 deletions(-) diff --git a/common.py b/common.py index 1fd8324..79ac503 100644 --- a/common.py +++ b/common.py @@ -154,8 +154,7 @@ class ResourceAdapterBase(AdapterBase): storageParams = None def getChildren(self): - for r in self.context.getResources(): - yield adapted(r) + return [] # other adapters diff --git a/interfaces.py b/interfaces.py index 47aa6d4..48f8019 100644 --- a/interfaces.py +++ b/interfaces.py @@ -186,7 +186,7 @@ class IConcept(IConceptSchema, ILoopsObject, IPotentialTarget): class ILoopsAdapter(IConceptSchema): - """ Common interface for concept and resource adapters. + """ Common interface for concept (and possibly resource) adapters. """ context = Attribute('The underlying persistent object.') diff --git a/layout/base.py b/layout/base.py index 02f50ca..162a212 100644 --- a/layout/base.py +++ b/layout/base.py @@ -56,8 +56,9 @@ class NodeLayoutInstance(LayoutInstance): li.template = l result.append(li) return result - # sublayouts specified via subnodes - subnodes = self.context.values() + # sublayouts specified via subnodes of the current menu node + menu = self.context.getMenu() + subnodes = menu.getMenuItems() names = region.layouts.keys() for n in subnodes: if n.viewName in names: diff --git a/layout/browser/concept.py b/layout/browser/concept.py index 93044ba..24cde89 100644 --- a/layout/browser/concept.py +++ b/layout/browser/concept.py @@ -26,20 +26,15 @@ from zope import component from zope.cachedescriptors.property import Lazy from zope.traversing.browser import absoluteURL -from cybertools.composer.layout.browser.view import Page from loops.browser.common import BaseView from loops.common import adapted from loops.i18n.browser import LanguageInfo from loops.interfaces import IConcept -from loops.layout.interfaces import ILayoutNode -from loops.versioning.util import getVersion from loops import util class ConceptView(object): - node = None - def __init__(self, context, request): self.context = context # this is the adapted concept! self.request = request diff --git a/layout/browser/configure.zcml b/layout/browser/configure.zcml index 6e27359..e67cc55 100644 --- a/layout/browser/configure.zcml +++ b/layout/browser/configure.zcml @@ -34,15 +34,9 @@ - - diff --git a/layout/browser/traversal.py b/layout/browser/traversal.py index afa2ec8..29beeef 100644 --- a/layout/browser/traversal.py +++ b/layout/browser/traversal.py @@ -50,6 +50,7 @@ class NodeTraverser(ItemTraverser): target = getVersion(target, request) target = adapted(target, LanguageInfo(target, request)) viewAnnotations['target'] = target - return target + #return target + return self.context obj = super(NodeTraverser, self).publishTraverse(request, name) return obj diff --git a/layout/interfaces.py b/layout/interfaces.py index dee40ba..a41ac07 100644 --- a/layout/interfaces.py +++ b/layout/interfaces.py @@ -25,7 +25,7 @@ $Id$ from zope.app.container.constraints import contains, containers from zope.interface import Interface -from loops.interfaces import INodeSchema, IBaseNode, IViewManager +from loops.interfaces import INodeSchema, IBaseNode, INode, IViewManager class ILayoutView(INodeSchema): @@ -34,7 +34,7 @@ class ILayoutView(INodeSchema): """ -class ILayoutNode(ILayoutView, IBaseNode): +class ILayoutNode(ILayoutView, INode): contains(ILayoutView)