show text 'more...' only if there is really (probably) more to see

This commit is contained in:
Helmut Merz 2017-12-05 13:23:20 +01:00
parent cfc32d7ebd
commit 3b37723cd4
2 changed files with 11 additions and 4 deletions

View file

@ -276,11 +276,17 @@ class ResourceView(BaseView):
#return util.toUnicode(wp.render(self.request))
return super(ResourceView, self).renderText(text, contentType)
showMore = True
def renderShortText(self):
return self.renderDescription() or self.createShortText(self.render())
def createShortText(self, text=None):
return extractFirstPart(text or self.render())
text = (text or self.render()).strip()
shortText = extractFirstPart(text)
if shortText == text:
self.showMore = False
return shortText
def download(self):
""" Force download, e.g. of a PDF file """

View file

@ -146,11 +146,12 @@
<a tal:attributes="href python:view.getUrlForTarget(related.context)"
tal:content="related/title" />
</h3>
<div>
<div tal:replace="structure related/renderShortText" />
<div tal:define="shortText related/renderShortText">
<div tal:replace="structure shortText" />
<p>
<a i18n:translate=""
tal:attributes="href python:view.getUrlForTarget(related.context)">
tal:condition="related/showMore"
tal:attributes="href python:view.getUrlForTarget(related.context)">
more...</a></p>
<div tal:repeat="image python:
item.images[repeat['related'].index() + 1]">