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
This commit is contained in:
helmutm 2009-08-14 09:46:34 +00:00
parent 5bf0b20494
commit e074f9b659
3 changed files with 10 additions and 36 deletions

View file

@ -64,7 +64,7 @@ class NodeLayoutInstance(LayoutInstance):
def targetView(self): def targetView(self):
request = self.view.request request = self.view.request
view = component.getMultiAdapter((self.target, request), name='layout') view = component.getMultiAdapter((self.target, request), name='layout')
view.node = self.context #view.node = self.context
view.layoutInstance = self view.layoutInstance = self
return view return view

View file

@ -61,7 +61,7 @@ class BaseView(object):
@Lazy @Lazy
def viewAnnotations(self): def viewAnnotations(self):
return self.request.annotations.get('loops.view', {}) return self.request.annotations.setdefault('loops.view', {})
@Lazy @Lazy
def virtualTarget(self): def virtualTarget(self):
@ -99,8 +99,7 @@ class BaseView(object):
def breadcrumbs(self): def breadcrumbs(self):
return [] return []
result = [dict(label=self.title, url=self.url)] result = [dict(label=self.title, url=self.url)]
viewAnnotations = self.request.annotations.setdefault('loops.view', {}) pageName = self.viewAnnotations.get('pageName')
pageName = viewAnnotations.get('pageName')
if pageName: if pageName:
result.append(dict(label=pageName.split('.')[0].title(), result.append(dict(label=pageName.split('.')[0].title(),
url='%s/%s' % (self.url, pageName))) url='%s/%s' % (self.url, pageName)))

View file

@ -25,32 +25,19 @@ $Id$
from zope.app.security.interfaces import IUnauthenticatedPrincipal from zope.app.security.interfaces import IUnauthenticatedPrincipal
from zope.cachedescriptors.property import Lazy from zope.cachedescriptors.property import Lazy
from zope import component from zope import component
from zope.security.proxy import removeSecurityProxy
from cybertools.composer.layout.browser.view import Page from cybertools.composer.layout.browser.view import Page
from loops.common import adapted from loops.common import adapted
from loops.layout.browser.base import BaseView
class LayoutNodeView(Page): class LayoutNodeView(Page, BaseView):
@Lazy def __init__(self, context, request):
def loopsRoot(self): super(LayoutNodeView, self).__init__(context, request)
return self.context.getLoopsRoot() #Page.__init__(self, context, request)
self.viewAnnotations.setdefault('node', removeSecurityProxy(context))
@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()
@Lazy @Lazy
def layoutName(self): def layoutName(self):
@ -67,10 +54,6 @@ class LayoutNodeView(Page):
result.append('page') result.append('page')
return result return result
@Lazy
def viewAnnotations(self):
return self.request.annotations.get('loops.view', {})
@Lazy @Lazy
def target(self): def target(self):
target = self.viewAnnotations.get('target') target = self.viewAnnotations.get('target')
@ -86,11 +69,3 @@ class LayoutNodeView(Page):
return ' - '.join((self.context.title, targetView.title)) return ' - '.join((self.context.title, targetView.title))
else: else:
return self.context.title 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, {})