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" factory="loops.browser.lobo.standard.Header2"
permission="zope.View" /> 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> </configure>

View file

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

View file

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