allow for association of image icons with text elements of certain document types
This commit is contained in:
parent
fd4c777d74
commit
2fc2dade52
3 changed files with 32 additions and 8 deletions
|
@ -26,6 +26,7 @@ from zope.app.pagetemplate import ViewPageTemplateFile
|
|||
from zope.cachedescriptors.property import Lazy
|
||||
from zope.traversing.api import getName
|
||||
|
||||
from cybertools.meta.interfaces import IOptions
|
||||
from cybertools.typology.interfaces import IType
|
||||
from loops.browser.lobo import standard
|
||||
from loops.browser.concept import ConceptView
|
||||
|
@ -118,11 +119,29 @@ class Base(object):
|
|||
self.images[idx].append(img)
|
||||
return result
|
||||
|
||||
def getCssClassForResource(self, r):
|
||||
def getDocumentTypeForResource(self, r):
|
||||
for c in r.context.getConcepts([self.defaultPredicate]):
|
||||
if c.conceptType == self.documentTypeType:
|
||||
return getName(c)
|
||||
return 'textelement'
|
||||
return c
|
||||
|
||||
def getOptionsForResource(self, r, name):
|
||||
dt = self.getDocumentTypeForResource(r)
|
||||
if dt is not None:
|
||||
return IOptions(adapted(dt))(name)
|
||||
|
||||
def getIconForResource(self, r):
|
||||
icon = self.getOptionsForResource(r, 'icon')
|
||||
if icon:
|
||||
return '/'.join((self.controller.resourceBase, icon[0]))
|
||||
|
||||
def getCssClassForResource(self, r):
|
||||
dt = self.getDocumentTypeForResource(r)
|
||||
if dt is None:
|
||||
return 'textelement'
|
||||
css = IOptions(adapted(dt))('cssclass')
|
||||
if css:
|
||||
return css
|
||||
return getName(dt)
|
||||
|
||||
def getMacroForResource(self, r):
|
||||
return self.book_macros['default_text']
|
||||
|
|
|
@ -26,6 +26,7 @@ concept(u'quote', u'Zitat', u'documenttype')
|
|||
concept(u'story', u'Geschichte', u'documenttype')
|
||||
concept(u'tip', u'Tipp', u'documenttype')
|
||||
concept(u'usecase', u'Fallbeispiel', u'documenttype')
|
||||
concept(u'warning', u'Warnung', u'documenttype')
|
||||
|
||||
# book structure
|
||||
child(u'book', u'section', u'issubtype', usePredicate=u'ispartof')
|
||||
|
|
|
@ -42,11 +42,15 @@
|
|||
<metal:text define-macro="textresources">
|
||||
<div tal:repeat="related item/textResources">
|
||||
<div class="span-4">
|
||||
<metal:text define-macro="default_text">
|
||||
<div tal:attributes="class python:
|
||||
item.getCssClassForResource(related)"
|
||||
tal:content="structure related/render" />
|
||||
</metal:text>
|
||||
<div metal:define-macro="default_text"
|
||||
tal:attributes="class python:
|
||||
item.getCssClassForResource(related)">
|
||||
<img class="flow-left" style="padding-top: 5px"
|
||||
tal:define="icon python:item.getIconForResource(related)"
|
||||
tal:condition="icon"
|
||||
tal:attributes="src icon" />
|
||||
<span tal:content="structure related/render" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="span-2 last" style="padding-top: 0.4em">
|
||||
<div class="object-actions" style="padding-top: 0"
|
||||
|
|
Loading…
Add table
Reference in a new issue