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
This commit is contained in:
helmutm 2008-11-13 07:43:52 +00:00
parent 2dd02ede9f
commit 8b8ef4cbcc
7 changed files with 10 additions and 20 deletions

View file

@ -154,8 +154,7 @@ class ResourceAdapterBase(AdapterBase):
storageParams = None
def getChildren(self):
for r in self.context.getResources():
yield adapted(r)
return []
# other adapters

View file

@ -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.')

View file

@ -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:

View file

@ -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

View file

@ -34,15 +34,9 @@
<!-- target views -->
<browser:page
name="index.html"
for="loops.interfaces.IConceptSchema"
class="loops.layout.browser.concept.ConceptView"
permission="zope.View" />
<zope:adapter
name="layout"
for="loops.interfaces.IConceptSchema
for="loops.interfaces.ILoopsAdapter
zope.publisher.interfaces.browser.IBrowserRequest"
provides="zope.interface.Interface"
factory="loops.layout.browser.concept.ConceptView" />

View file

@ -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

View file

@ -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)