bug fix for nearestMenuItem(); prepare for view configurator usage

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1199 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2006-05-07 11:55:58 +00:00
parent 633e674640
commit d384a11c32
3 changed files with 19 additions and 7 deletions

View file

@ -46,9 +46,10 @@ class BaseView(object):
# TODO: get rid of removeSecurityProxy() call
self.context = removeSecurityProxy(context)
self.request = request
self.setSkin(self.loopsRoot.skinName)
def setSkin(self, skinName):
skin = None
# TODO: get ISkinController adapter instead
skinName = self.loopsRoot.skinName
if skinName and IView.providedBy(self.context):
skin = zapi.queryUtility(ISkin, skinName)
if skin is not None:
@ -59,6 +60,8 @@ class BaseView(object):
def setController(self, controller):
self._controller = controller
# this is also the place to register special macros with the controller
if getattr(controller, 'skinName', None):
self.setSkin(controller.skinName.value)
controller.skin = self.skin
def getController(self): return self._controller
controller = property(getController, setController)

View file

@ -50,6 +50,10 @@
float: left;
}
.flow-right {
float: right;
}
div.image {
margin-top: 10px;
margin-right: 5px;

View file

@ -168,11 +168,16 @@ class NodeView(BaseView):
@Lazy
def nearestMenuItem(self):
if self.context.isMenuItem():
return self.context
for p in self.parents:
if p.isMenuItem():
return p
menu = self.menuObject
menuItem = None
for p in [self.context] + self.parents:
if not p.isMenuItem():
menuItem = None
elif menuItem is None:
menuItem = p
if p == menu:
return menuItem
return None
def selected(self, item):
return item.context == self.nearestMenuItem