work in progress: basic procedure for determining breadcrumbs list
This commit is contained in:
parent
d9694f711c
commit
f01df3662c
3 changed files with 18 additions and 3 deletions
|
@ -659,7 +659,9 @@ Breadcrumbs
|
|||
>>> loopsRoot.options = ['showBreadcrumbs']
|
||||
>>> m114.nodeType = 'page'
|
||||
>>> m114.target = cc1
|
||||
>>> view = NodeView(m114, TestRequest())
|
||||
>>> request = TestRequest()
|
||||
>>> view = NodeView(m114, request)
|
||||
>>> request.annotations.setdefault('loops.view', {})['nodeView'] = view
|
||||
>>> view.breadcrumbs()
|
||||
[{'url': 'http://127.0.0.1/loops/views/m1', 'label': u'Menu'},
|
||||
{'url': 'http://127.0.0.1/loops/views/m1/m11', 'label': u'Zope'},
|
||||
|
|
|
@ -416,8 +416,8 @@ class BaseView(GenericView, I18NView):
|
|||
if contentType == u'text/html':
|
||||
return text
|
||||
return u'<pre>%s</pre>' % util.html_quote(text)
|
||||
source = component.createObject(typeKey, text)
|
||||
view = component.getMultiAdapter((removeAllProxies(source), self.request))
|
||||
source = removeAllProxies(component.createObject(typeKey, text))
|
||||
view = component.getMultiAdapter((source, self.request))
|
||||
return view.render()
|
||||
|
||||
def renderDescription(self, text=None):
|
||||
|
|
|
@ -234,6 +234,19 @@ class ConceptView(BaseView):
|
|||
def description(self):
|
||||
return self.adapted.description
|
||||
|
||||
def breadcrumbs(self):
|
||||
data = []
|
||||
if self.breadcrumbsParent is not None:
|
||||
data.extend(self.breadcrumbsParent.breadcrumbs())
|
||||
if self.context != self.nodeView.targetObject:
|
||||
data.append(dict(label=self.title,
|
||||
url=self.nodeView.getUrlForTarget(self.context)))
|
||||
return data
|
||||
|
||||
@Lazy
|
||||
def breadcrumbsParent(self):
|
||||
return None
|
||||
|
||||
def getData(self, omit=('title', 'description')):
|
||||
data = self.instance.applyTemplate()
|
||||
for k in omit:
|
||||
|
|
Loading…
Add table
Reference in a new issue