work in progress: layouts for the Lobo skin

git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3999 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2010-09-18 14:31:56 +00:00
parent 068eef9753
commit 033604cbc2
3 changed files with 35 additions and 12 deletions

View file

@ -47,4 +47,12 @@
factory="loops.browser.lobo.standard.Header2"
permission="zope.View" />
<zope:adapter
name="lobo_cell"
for="loops.interfaces.IConceptSchema
loops.browser.skin.Lobo"
provides="zope.interface.Interface"
factory="loops.browser.lobo.standard.ConceptView"
permission="zope.View" />
</configure>

View file

@ -52,10 +52,10 @@
<metal:block define-macro="header2">
<metal:headline use-macro="item/macros/headline" />
<div tal:define="cell part/getView">
<metal:headline use-macro="item/macros/headline" />
<metal:image use-macro="item/macros/image" />
<br />&nbsp;
<metal:text use-macro="item/macros/text" />
</div>
</metal:block>

View file

@ -30,7 +30,7 @@ from zope.cachedescriptors.property import Lazy
from cybertools.typology.interfaces import IType
from loops.browser.concept import ConceptView as BaseConceptView
from loops.browser.concept import ConceptRelationView as BaseConceptRelationView
from loops.common import adapted
from loops.common import adapted, baseObject
standard_template = ViewPageTemplateFile('standard.pt')
@ -53,17 +53,29 @@ class Base(BaseConceptView):
class ConceptView(BaseConceptView):
def __init__(self, context, request, parent=None, idx=0):
super(ConceptView, self).__init__(context, request)
self.parentView = parent
self.idx = idx
idx = 0
def __init__(self, context, request):
super(ConceptView, self).__init__(baseObject(context), request)
self.adapted = context
@Lazy
def resources(self):
result = dict(texts=[], images=[], files=[])
for r in self.context.getResources([self.defaultPredicate]):
if r.contentType.startswith('text/'):
result['texts'].append(r)
if r.contentType.startswith('image/'):
result['images'].append(r)
else:
result['files'].append(r)
return result
# properties from base class: title, description, renderedDescription
@Lazy
def renderedText(self):
for r in self.context.getResources([self.defaultPredicate]):
if r.contentType.startswith('text/'):
for r in self.resources['texts']:
return self.renderText(r.data, r.contentType)
@Lazy
@ -82,8 +94,7 @@ class ConceptView(BaseConceptView):
@Lazy
def img(self):
for r in self.context.getResources([self.defaultPredicate]):
if r.contentType.startswith('image/'):
for r in self.resources['images']:
src = ('%s/mediaasset.html?v=%s' %
(self.nodeView.getUrlForTarget(r),
self.parentView.imageSize))
@ -133,7 +144,10 @@ class BasePart(Base):
return result
def getView(self):
return ConceptView(self.context, self.request, parent=self)
view = component.getMultiAdapter((self.adapted, self.request),
name='lobo_cell')
view.parentView = self
return view
class Grid3(BasePart):
@ -162,5 +176,6 @@ class Header2(BasePart):
macroName = 'header2'
imageSize = 'medium'
imageCssClass = 'flow-left'