From e074f9b65989d2668c185a8411ee7afb4df697e5 Mon Sep 17 00:00:00 2001 From: helmutm Date: Fri, 14 Aug 2009 09:46:34 +0000 Subject: [PATCH] put common code in base module; remove explicit node references from all views, the node is taken dynamically from request annotations git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3502 fd906abe-77d9-0310-91a1-e0d9ade77398 --- layout/base.py | 2 +- layout/browser/base.py | 5 ++--- layout/browser/node.py | 39 +++++++-------------------------------- 3 files changed, 10 insertions(+), 36 deletions(-) diff --git a/layout/base.py b/layout/base.py index df17c1e..da47969 100644 --- a/layout/base.py +++ b/layout/base.py @@ -64,7 +64,7 @@ class NodeLayoutInstance(LayoutInstance): def targetView(self): request = self.view.request view = component.getMultiAdapter((self.target, request), name='layout') - view.node = self.context + #view.node = self.context view.layoutInstance = self return view diff --git a/layout/browser/base.py b/layout/browser/base.py index a36fe7f..c4b5ffa 100644 --- a/layout/browser/base.py +++ b/layout/browser/base.py @@ -61,7 +61,7 @@ class BaseView(object): @Lazy def viewAnnotations(self): - return self.request.annotations.get('loops.view', {}) + return self.request.annotations.setdefault('loops.view', {}) @Lazy def virtualTarget(self): @@ -99,8 +99,7 @@ class BaseView(object): def breadcrumbs(self): return [] result = [dict(label=self.title, url=self.url)] - viewAnnotations = self.request.annotations.setdefault('loops.view', {}) - pageName = viewAnnotations.get('pageName') + pageName = self.viewAnnotations.get('pageName') if pageName: result.append(dict(label=pageName.split('.')[0].title(), url='%s/%s' % (self.url, pageName))) diff --git a/layout/browser/node.py b/layout/browser/node.py index 6e04488..e2a7167 100644 --- a/layout/browser/node.py +++ b/layout/browser/node.py @@ -25,32 +25,19 @@ $Id$ from zope.app.security.interfaces import IUnauthenticatedPrincipal from zope.cachedescriptors.property import Lazy from zope import component +from zope.security.proxy import removeSecurityProxy from cybertools.composer.layout.browser.view import Page from loops.common import adapted +from loops.layout.browser.base import BaseView -class LayoutNodeView(Page): +class LayoutNodeView(Page, BaseView): - @Lazy - def loopsRoot(self): - return self.context.getLoopsRoot() - - @Lazy - def defaultPredicate(self): - return self.loopsRoot.getConceptManager().getDefaultPredicate() - - @Lazy - def conceptManager(self): - return self.loopsRoot.getConceptManager() - - @Lazy - def resourceManager(self): - return self.loopsRoot.getResourceManager() - - @Lazy - def defaultPredicate(self): - return self.conceptManager.getDefaultPredicate() + def __init__(self, context, request): + super(LayoutNodeView, self).__init__(context, request) + #Page.__init__(self, context, request) + self.viewAnnotations.setdefault('node', removeSecurityProxy(context)) @Lazy def layoutName(self): @@ -67,10 +54,6 @@ class LayoutNodeView(Page): result.append('page') return result - @Lazy - def viewAnnotations(self): - return self.request.annotations.get('loops.view', {}) - @Lazy def target(self): target = self.viewAnnotations.get('target') @@ -86,11 +69,3 @@ class LayoutNodeView(Page): return ' - '.join((self.context.title, targetView.title)) else: return self.context.title - - @Lazy - def authenticated(self): - return not IUnauthenticatedPrincipal.providedBy(self.request.principal) - - def getMessage(self, id): - return self.request.form.get('loops.messages', {}).get(id, {}) -