source: adhocracy/lib/helpers/text_helper.py @ 826:1155f047dfe2

Revision 826:1155f047dfe2, 1.3 KB checked in by fl, 3 years ago (diff)

[svn r1172] lots of smaller changes, fix breadcrumbs

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    url = page.url(text.page, in_context=text == text.page.variant_head(text.variant))
15    if text.page.has_variants and text.variant != text.HEAD:
16        url += u'/' + urllib.quote(text.variant.encode('utf-8'))
17    if text != text.page.variant_head(text.variant):
18        url += u';' + str(text.id)
19    return _url.append_member_and_format(url, **kwargs)
20
21 
22@cache.memoize('text_icon')       
23def icon_url(text, page=None, size=16):
24    if page is None:
25        page = text.page
26    path = u"/img/icons/page%s_%s.png"
27    if page.function == page.NORM:
28        if text.variant != text.HEAD:
29            return path % ("_variant", size)
30        return path % ("_norm", size)
31    elif page.function == page.DESCRIPTION:
32        return proposal.icon_url(page.proposal, size=size)
33    else:
34        return path % ("", size)
35
36
37@cache.memoize('text_bc')
38def entity_bc(text):
39    return _url.BREAD_SEP + _url.link(text.variant, url(text))
40
41def breadcrumbs(text):
42    import page_helper as page
43    bc = page.breadcrumbs(text.page)
44    if text is not None and text.variant != text.HEAD:
45        bc += entity_bc(text)
46    return bc
Note: See TracBrowser for help on using the repository browser.