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:
parent
2dd02ede9f
commit
8b8ef4cbcc
7 changed files with 10 additions and 20 deletions
|
@ -154,8 +154,7 @@ class ResourceAdapterBase(AdapterBase):
|
|||
storageParams = None
|
||||
|
||||
def getChildren(self):
|
||||
for r in self.context.getResources():
|
||||
yield adapted(r)
|
||||
return []
|
||||
|
||||
|
||||
# other adapters
|
||||
|
|
|
@ -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.')
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" />
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue