allow restriction of children select to certain predicates
This commit is contained in:
parent
4ad6f59abf
commit
e89e0a9eea
1 changed files with 6 additions and 4 deletions
|
@ -290,7 +290,7 @@ class ConceptView(BaseView):
|
||||||
r.order = pos
|
r.order = pos
|
||||||
|
|
||||||
def getChildren(self, topLevelOnly=True, sort=True, noDuplicates=True,
|
def getChildren(self, topLevelOnly=True, sort=True, noDuplicates=True,
|
||||||
useFilter=True):
|
useFilter=True, predicates=None):
|
||||||
form = self.request.form
|
form = self.request.form
|
||||||
#if form.get('loops.viewName') == 'index.html' and self.editable:
|
#if form.get('loops.viewName') == 'index.html' and self.editable:
|
||||||
if self.editable:
|
if self.editable:
|
||||||
|
@ -307,7 +307,8 @@ class ConceptView(BaseView):
|
||||||
criteria['types'] = [cm.get(name) for name in params['types']]
|
criteria['types'] = [cm.get(name) for name in params['types']]
|
||||||
standard = cm.getDefaultPredicate()
|
standard = cm.getDefaultPredicate()
|
||||||
rels = (self.childViewFactory(r, self.request, contextIsSecond=True)
|
rels = (self.childViewFactory(r, self.request, contextIsSecond=True)
|
||||||
for r in self.context.getChildRelations(sort=None))
|
for r in self.context.getChildRelations(
|
||||||
|
predicates=predicates, sort=None))
|
||||||
if sort:
|
if sort:
|
||||||
rels = sorted(rels, key=lambda r: (r.order, r.title.lower()))
|
rels = sorted(rels, key=lambda r: (r.order, r.title.lower()))
|
||||||
from loops.organize.personal.browser.filter import FilterView
|
from loops.organize.personal.browser.filter import FilterView
|
||||||
|
@ -344,9 +345,10 @@ class ConceptView(BaseView):
|
||||||
# Override in subclass to control what is displayd in listings:
|
# Override in subclass to control what is displayd in listings:
|
||||||
children = getChildren
|
children = getChildren
|
||||||
|
|
||||||
def childrenAlphaGroups(self):
|
def childrenAlphaGroups(self, predicates=None):
|
||||||
result = Jeep()
|
result = Jeep()
|
||||||
rels = self.getChildren(topLevelOnly=False, sort=False)
|
rels = self.getChildren(predicates=predicates or [self.defaultPredicate],
|
||||||
|
topLevelOnly=False, sort=False)
|
||||||
rels = sorted(rels, key=lambda r: r.title.lower())
|
rels = sorted(rels, key=lambda r: r.title.lower())
|
||||||
for letter, group in groupby(rels, lambda r: r.title.lower()[0]):
|
for letter, group in groupby(rels, lambda r: r.title.lower()[0]):
|
||||||
letter = letter.upper()
|
letter = letter.upper()
|
||||||
|
|
Loading…
Add table
Reference in a new issue