From ef334a50fb543df949a2f07732af81a39fb530f7 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Tue, 8 Nov 2011 15:02:34 +0100 Subject: [PATCH] better control of filtering (ignore filters and hinding of children in management views); use additional predicates for listings in lobo layouts --- browser/concept.pt | 3 ++- browser/concept.py | 22 +++++++++++++--------- browser/concept_related.pt | 3 ++- browser/lobo/standard.py | 11 ++++++++++- 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/browser/concept.pt b/browser/concept.pt index 676ce76..d7a34a3 100644 --- a/browser/concept.pt +++ b/browser/concept.pt @@ -11,7 +11,8 @@
Sub-Concepts: + tal:repeat="concept python: + view.getChildren(topLevelOnly=False, useFilter=False)"> subtask diff --git a/browser/concept.py b/browser/concept.py index 01084b0..c4bf3e6 100644 --- a/browser/concept.py +++ b/browser/concept.py @@ -276,7 +276,8 @@ class ConceptView(BaseView): if 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): form = self.request.form #if form.get('loops.viewName') == 'index.html' and self.editable: if self.editable: @@ -311,11 +312,13 @@ class ConceptView(BaseView): break if skip: continue - options = IOptions(adapted(r.predicate), None) - if options is not None and options('hide_children'): - continue - if fv.check(r.context): - yield r + if useFilter: + options = IOptions(adapted(r.predicate), None) + if options is not None and options('hide_children'): + continue + if not fv.check(r.context): + continue + yield r def checkCriteria(self, relation, criteria): result = True @@ -347,9 +350,10 @@ class ConceptView(BaseView): return result def isHidden(self, pr): - if (getName(pr.second.conceptType) in - IOptions(adapted(pr.predicate))('hide_parents_for', [])): - #IOptions(pr.predicate)('hide_parents_for', [])): + predOptions = IOptions(adapted(pr.predicate)) + if predOptions('hide_parents'): + return True + if (getName(pr.second.conceptType) in predOptions('hide_parents_for', [])): return True hideRoles = None options = component.queryAdapter(adapted(pr.first), IOptions) diff --git a/browser/concept_related.pt b/browser/concept_related.pt index 1348617..0b680d0 100644 --- a/browser/concept_related.pt +++ b/browser/concept_related.pt @@ -23,7 +23,8 @@
-