Serotonin Storm

source>navbar>templatetags>navbar.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from django.template import Library
from django.conf import settings

def _getdefault(name, default=None):
    try:
        default = getattr(settings, name)
    except: pass
    return default

SHOW_DEPTH = _getdefault('NAVBAR_TREE_SHOW_DEPTH', -1)

numbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven',
           'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen',
           'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eightteen',
           'nineteen',]

_dig = numbers[1:10]
for ent in ['twenty', 'thirty', 'fourty', 'fifty', 'sixty', 'seventy',
            'eighty', 'ninety']:
    numbers.append(ent)
    numbers.extend(ent + "-" + num for num in _dig)

register = Library()

@register.filter
def cssnumber(num):
    """like humanize appnum but goes the full gambit from 0 to 99.
    Is not translated as this is intended for CSS use.
    0 : zero
    10: ten
    45: fourty-five

    use the filter tag if you want a translation...
    """
    return numbers[num]

@register.inclusion_tag('navbar/subtree.html')
def subtree(children, depth=0):
    """Process a sub part of the nav tree
    """
    return { 'subtree': children, 'depth': depth+1,
             'show_unselected': (SHOW_DEPTH == -1 or depth < SHOW_DEPTH),
             'level': numbers[depth+1] }


@register.inclusion_tag('navbar/tree.html', takes_context=True)
def navtree(context):
    """simpler helper so you dont need to do the include ;-)
    """
    return context

@register.inclusion_tag('navbar/navbar.html', takes_context=True)
def navbar(context):
    """simpler helper so you dont need to do the include ;-)
    """
    return context

@register.inclusion_tag('navbar/navbars.html', takes_context=True)
def navbars(context):
    """simpler helper so you dont need to do the include ;-)
    """
    return context