merge branch master into bbmaster
This commit is contained in:
commit
36c70374b3
4 changed files with 24 additions and 6 deletions
|
@ -6,8 +6,13 @@ $Id$
|
|||
1.1
|
||||
---
|
||||
|
||||
<<<<<<< HEAD
|
||||
- provide controlling of rendering macro via field instance method getRenderer()
|
||||
- add getRelations() method to child relation set
|
||||
=======
|
||||
- use targetView entry in request annotations for calling views declared
|
||||
for adapted concept map objects (i.e. type interfaces)
|
||||
>>>>>>> master
|
||||
- Lobo layout: provide new part: image grid; make sure image is not repeated if
|
||||
it already appears in header part
|
||||
- new special view 'listsubobjects' for nodes
|
||||
|
|
|
@ -131,6 +131,7 @@ class BaseView(GenericView, I18NView):
|
|||
actions = {}
|
||||
icon = None
|
||||
modeName = 'view'
|
||||
isToplevel = False
|
||||
|
||||
def __init__(self, context, request):
|
||||
context = baseObject(context)
|
||||
|
|
|
@ -234,13 +234,16 @@ class ConceptView(BaseView):
|
|||
def description(self):
|
||||
return self.adapted.description
|
||||
|
||||
@Lazy
|
||||
def targetUrl(self):
|
||||
return self.nodeView.getUrlForTarget(self.context)
|
||||
|
||||
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)))
|
||||
data.append(dict(label=self.title, url=self.targetUrl))
|
||||
return data
|
||||
|
||||
@Lazy
|
||||
|
|
|
@ -51,7 +51,7 @@ from cybertools.typology.interfaces import IType, ITypeManager
|
|||
from cybertools.util.jeep import Jeep
|
||||
from cybertools.xedit.browser import ExternalEditorView
|
||||
from loops.browser.action import actions, DialogAction
|
||||
from loops.common import adapted, AdapterBase
|
||||
from loops.common import adapted, AdapterBase, baseObject
|
||||
from loops.i18n.browser import i18n_macros, LanguageInfo
|
||||
from loops.interfaces import IConcept, IResource, IDocument, IMediaAsset, INode
|
||||
from loops.interfaces import IViewConfiguratorSchema
|
||||
|
@ -83,6 +83,13 @@ class NodeView(BaseView):
|
|||
viewConfig = getViewConfiguration(context, request)
|
||||
self.setSkin(viewConfig.get('skinName'))
|
||||
|
||||
def __call__(self, *args, **kw):
|
||||
tv = self.viewAnnotations.get('targetView')
|
||||
if tv is not None:
|
||||
if tv.isToplevel:
|
||||
return tv(*args, **kw)
|
||||
return super(NodeView, self).__call__(*args, **kw)
|
||||
|
||||
@Lazy
|
||||
def macro(self):
|
||||
return self.template.macros['content']
|
||||
|
@ -422,9 +429,10 @@ class NodeView(BaseView):
|
|||
return None
|
||||
|
||||
def targetView(self, name='index.html', methodName='show'):
|
||||
if name == 'index.html': # only when called for default view
|
||||
tv = self.viewAnnotations.get('targetView')
|
||||
if tv is not None:
|
||||
return tv
|
||||
return tv()
|
||||
if '?' in name:
|
||||
name, params = name.split('?', 1)
|
||||
target = self.virtualTargetObject
|
||||
|
@ -514,6 +522,7 @@ class NodeView(BaseView):
|
|||
if isinstance(target, BaseView):
|
||||
return self.makeTargetUrl(self.url, target.uniqueId, target.title)
|
||||
else:
|
||||
target = baseObject(target)
|
||||
return self.makeTargetUrl(self.url, util.getUidForObject(target),
|
||||
target.title)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue