From 2d2501520271f3e7ac1af6804d348bab0bd72a4a Mon Sep 17 00:00:00 2001 From: helmutm Date: Tue, 12 Sep 2006 22:34:31 +0000 Subject: [PATCH] a few bug fixes and make the tests pass again git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1342 fd906abe-77d9-0310-91a1-e0d9ade77398 --- browser/resource.py | 9 +++++---- helpers.txt | 6 +++++- search/browser.py | 4 +++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/browser/resource.py b/browser/resource.py index cddc527..b90320c 100644 --- a/browser/resource.py +++ b/browser/resource.py @@ -88,10 +88,11 @@ class ResourceView(BaseView): def __init__(self, context, request): super(ResourceView, self).__init__(context, request) if not IUnauthenticatedPrincipal.providedBy(self.request.principal): - cm = self.controller.macros - cm.register('portlet_right', 'related', title='Related Items', - subMacro=self.template.macros['related'], - position=0, info=self) + cont = self.controller + if cont is not None: + cont.macros.register('portlet_right', 'related', title='Related Items', + subMacro=self.template.macros['related'], + position=0, info=self) def show(self): data = self.context.data diff --git a/helpers.txt b/helpers.txt index b261971..481f9b2 100755 --- a/helpers.txt +++ b/helpers.txt @@ -353,9 +353,13 @@ Now we are ready to set up a view on our page node: >>> view = NodeView(m1p1, request) The elements responsible for presentation are controlled by a controller -object: +object; note that we have to provide a named template 'loops.node_macros' that +is used to retrieve a macro used by NodeView: >>> from cybertools.browser.controller import Controller + >>> from loops.browser.util import node_macros + >>> from loops.browser.common import BaseView + >>> component.provideAdapter(node_macros, (BaseView,), name='loops.node_macros') >>> controller = Controller(view, request) >>> getattr(controller, 'skinName', None) is None True diff --git a/search/browser.py b/search/browser.py index 72b9ff4..9ecea95 100644 --- a/search/browser.py +++ b/search/browser.py @@ -165,7 +165,9 @@ class SearchResults(BaseView): cat = self.catalog request = self.request type = request.get('search.3.type', 'loops:concept:*') - text = request.get('search.3.text').replace('(', ' ').replace(')', ' ') + text = request.get('search.3.text') + if text: # there are a few characters that the index doesn't like + text = text.replace('(', ' ').replace(')', ' ') if not text and '*' in type: return None if type.endswith('*'):