breadcrumbs improvements
This commit is contained in:
parent
0316bafffc
commit
7113369fca
3 changed files with 19 additions and 4 deletions
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 Helmut Merz helmutm@cy55.de
|
# Copyright (c) 2015 Helmut Merz helmutm@cy55.de
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -377,6 +377,10 @@ class BaseView(GenericView, I18NView, SortableMixin):
|
||||||
def isPartOfPredicate(self):
|
def isPartOfPredicate(self):
|
||||||
return self.conceptManager.get('ispartof')
|
return self.conceptManager.get('ispartof')
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def queryTargetPredicate(self):
|
||||||
|
return self.conceptManager.get('querytarget')
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def memberPredicate(self):
|
def memberPredicate(self):
|
||||||
return self.conceptManager.get('ismember')
|
return self.conceptManager.get('ismember')
|
||||||
|
|
|
@ -282,8 +282,16 @@ class ConceptView(BaseView):
|
||||||
def breadcrumbsTitle(self):
|
def breadcrumbsTitle(self):
|
||||||
return self.title
|
return self.title
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def showInBreadcrumbs(self):
|
||||||
|
return self.options('show_in_breadcrumbs')
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def breadcrumbsParent(self):
|
def breadcrumbsParent(self):
|
||||||
|
for p in self.context.getParents([self.defaultPredicate]):
|
||||||
|
view = self.nodeView.getViewForTarget(p)
|
||||||
|
if view.showInBreadcrumbs:
|
||||||
|
return view
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def getData(self, omit=('title', 'description')):
|
def getData(self, omit=('title', 'description')):
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 Helmut Merz helmutm@cy55.de
|
# Copyright (c) 2015 Helmut Merz helmutm@cy55.de
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -109,7 +109,7 @@ class NodeView(BaseView):
|
||||||
return []
|
return []
|
||||||
menu = self.menu
|
menu = self.menu
|
||||||
data = [dict(label=menu.title, url=menu.url)]
|
data = [dict(label=menu.title, url=menu.url)]
|
||||||
menuItem = self.nearestMenuItem
|
menuItem = self.getNearestMenuItem(all=True)
|
||||||
if menuItem != menu.context:
|
if menuItem != menu.context:
|
||||||
data.append(dict(label=menuItem.title,
|
data.append(dict(label=menuItem.title,
|
||||||
url=absoluteURL(menuItem, self.request)))
|
url=absoluteURL(menuItem, self.request)))
|
||||||
|
@ -400,10 +400,13 @@ class NodeView(BaseView):
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
def nearestMenuItem(self):
|
def nearestMenuItem(self):
|
||||||
|
return self.getNearestMenuItem()
|
||||||
|
|
||||||
|
def getNearestMenuItem(self, all=False):
|
||||||
menu = self.menuObject
|
menu = self.menuObject
|
||||||
menuItem = None
|
menuItem = None
|
||||||
for p in [self.context] + self.parents:
|
for p in [self.context] + self.parents:
|
||||||
if not p.isMenuItem():
|
if not all and not p.isMenuItem():
|
||||||
menuItem = None
|
menuItem = None
|
||||||
elif menuItem is None:
|
elif menuItem is None:
|
||||||
menuItem = p
|
menuItem = p
|
||||||
|
|
Loading…
Add table
Reference in a new issue