source: adhocracy/lib/helpers/text_helper.py @ 882:007cf8b86ee1

Revision 882:007cf8b86ee1, 1.3 KB checked in by fl, 3 years ago (diff)

[svn r1228] minor bug fixes

Line 
1import urllib
2
3from pylons.i18n import _
4
5from adhocracy.lib import cache
6
7import proposal_helper as proposal
8import url as _url
9
10
11@cache.memoize('text_url')
12def url(text, **kwargs):
13    import page_helper as page
14    if text is None:
15        return ''
16    url = page.url(text.page, in_context=text == text.page.variant_head(text.variant))
17    if text.page.has_variants and text.variant != text.HEAD:
18        url += u'/' + urllib.quote(text.variant.encode('utf-8'))
19    if text != text.page.variant_head(text.variant):
20        url += u';' + str(text.id)
21    return _url.append_member_and_format(url, **kwargs)
22
23 
24@cache.memoize('text_icon')       
25def icon_url(text, page=None, size=16):
26    if page is None:
27        page = text.page
28    path = u"/img/icons/page%s_%s.png"
29    if page.function == page.NORM:
30        if text.variant != text.HEAD:
31            return path % ("_variant", size)
32        return path % ("_norm", size)
33    elif page.function == page.DESCRIPTION:
34        return proposal.icon_url(page.proposal, size=size)
35    else:
36        return path % ("", size)
37
38
39@cache.memoize('text_bc')
40def entity_bc(text):
41    return _url.BREAD_SEP + _url.link(text.variant, url(text))
42
43def breadcrumbs(text):
44    import page_helper as page
45    bc = page.breadcrumbs(text.page)
46    if text is not None and text.variant != text.HEAD:
47        bc += entity_bc(text)
48    return bc
Note: See TracBrowser for help on using the repository browser.