From 3b36e52ae43adc97e81a66830bffd25b8b2d2d63 Mon Sep 17 00:00:00 2001 From: helmutm Date: Sat, 1 Aug 2009 13:42:56 +0000 Subject: [PATCH] provide filter setting as layout or request parameter git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3486 fd906abe-77d9-0310-91a1-e0d9ade77398 --- layout/base.py | 1 + layout/browser/base.py | 14 ++++++++++---- layout/browser/concept.py | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/layout/base.py b/layout/base.py index 673d415..b9d34a9 100644 --- a/layout/base.py +++ b/layout/base.py @@ -65,6 +65,7 @@ class NodeLayoutInstance(LayoutInstance): request = self.view.request view = component.getMultiAdapter((self.target, request), name='layout') view.node = self.context + view.layoutInstance = self return view diff --git a/layout/browser/base.py b/layout/browser/base.py index ecc0eb1..a36fe7f 100644 --- a/layout/browser/base.py +++ b/layout/browser/base.py @@ -47,10 +47,6 @@ class BaseView(object): def loopsRoot(self): return self.context.getLoopsRoot() - @Lazy - def defaultPredicate(self): - return self.loopsRoot.getConceptManager().getDefaultPredicate() - @Lazy def conceptManager(self): return self.loopsRoot.getConceptManager() @@ -110,6 +106,16 @@ class BaseView(object): url='%s/%s' % (self.url, pageName))) return result + @Lazy + def filter(self): + fname = self.request.form.get('filter') + if fname is None: + li = getattr(self, 'layoutInstance', None) + if li is not None: + fname = getattr(li.template, 'filter', '') + self.request.form['filter'] = fname + return fname + @Lazy def authenticated(self): return not IUnauthenticatedPrincipal.providedBy(self.request.principal) diff --git a/layout/browser/concept.py b/layout/browser/concept.py index 4f773eb..81f83a7 100644 --- a/layout/browser/concept.py +++ b/layout/browser/concept.py @@ -41,6 +41,7 @@ class ConceptView(BaseView): @property def children(self): for c in self.context.getChildren(): + #for c in self.context.getChildren([self.defaultPredicate]): a = adapted(c) #view = component.getMultiAdapter((c, self.request), name='layout') view = component.getMultiAdapter((a, self.request), name='layout')