From 2fc2dade5255e33297ab28a0a25dcaaf8735e38b Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 22 Jun 2013 10:24:07 +0200 Subject: [PATCH] allow for association of image icons with text elements of certain document types --- compound/book/browser.py | 25 ++++++++++++++++++++++--- compound/book/loops_book_de.dmp | 1 + compound/book/view_macros.pt | 14 +++++++++----- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/compound/book/browser.py b/compound/book/browser.py index 977d23a..c67a5a6 100644 --- a/compound/book/browser.py +++ b/compound/book/browser.py @@ -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'] diff --git a/compound/book/loops_book_de.dmp b/compound/book/loops_book_de.dmp index a7d846f..1a9e4d9 100644 --- a/compound/book/loops_book_de.dmp +++ b/compound/book/loops_book_de.dmp @@ -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') diff --git a/compound/book/view_macros.pt b/compound/book/view_macros.pt index 7d15a80..90f6e03 100644 --- a/compound/book/view_macros.pt +++ b/compound/book/view_macros.pt @@ -42,11 +42,15 @@
- -
- +
+ + +