Revision 661c4479 snf-astakos-app/astakos/im/templatetags/filters.py

b/snf-astakos-app/astakos/im/templatetags/filters.py
35 35
import datetime
36 36

  
37 37
from django import template
38
from django.core.paginator import Paginator, InvalidPage
38 39

  
39 40
from astakos.im.settings import PAGINATE_BY
40 41

  
41 42
register = template.Library()
42 43

  
44
DELIM = ','
45

  
43 46
@register.filter
44 47
def monthssince(joined_date):
45 48
    now = datetime.datetime.now()
......
88 91

  
89 92
@register.filter
90 93
def rcut(value, chars = '/'):
91
    return value.rstrip(chars)
94
    return value.rstrip(chars)
95

  
96
@register.filter
97
def paginate(l, args):
98
    page, delim, sorting = args.partition(DELIM)
99
    if sorting:
100
        l.sort(key=lambda i: getattr(i, sorting))
101
    paginator = Paginator(l, PAGINATE_BY)
102
    
103
    try:
104
        page_number = int(page)
105
    except ValueError:
106
        if page == 'last':
107
            page_number = paginator.num_pages
108
        else:
109
            page_number = 1
110
    page = globals()['page'] = paginator.page(page_number)
111
    return page
112

  
113
@register.filter
114
def concat(str1, str2):
115
    if not str2:
116
        return str(str1)
117
    return '%s%s%s' % (str1, DELIM, str2)
118

  
119
@register.filter
120
def concat(str1, str2):
121
    if not str2:
122
        return str(str1)
123
    return '%s%s%s' % (str1, DELIM, str2)

Also available in: Unified diff