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:
parent
633e674640
commit
d384a11c32
3 changed files with 19 additions and 7 deletions
|
@ -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)
|
||||
|
|
|
@ -50,6 +50,10 @@
|
|||
float: left;
|
||||
}
|
||||
|
||||
.flow-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.image {
|
||||
margin-top: 10px;
|
||||
margin-right: 5px;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue