<%def name="rangefragment(range, pos)"> % if range is not None: %if len(range) != 0:
% for r in range: % if 'url' in r: ${r['label']} % else: ${r['label']} % endif % endfor
% endif % endif <%def name="rangeleft(p)"> ${rangefragment(p.range_left, 'left')} <%def name="rangecenter(p)"> %if p.range_center is not None: ${rangefragment([p.range_center], 'center')} %endif <%def name="rangeright(p)"> ${rangefragment(p.range_right, 'right')} <%def name="next(p)"> % if p.has_next: next % endif <%def name="prev(p)"> % if p.has_prev: prev % endif <%def name="stats(p)"> <% if p.page_number is not None and p.total_pages is not None: page = 'page %s of %s'%(p.page_number, p.total_pages) else: page = '' if p.item_count is not None: if p.item_count == 0: item_count = 'no items' elif p.item_count == 1: item_count = '%s item'%p.item_count else: item_count = '%s items'%p.item_count item_count = '[ %s ]'%item_count else: item_count = '' page_and_item_count = '%s %s' % (page, item_count) %> % if len(page_and_item_count) > 1:
${page} ${item_count}
% endif <%def name="paging(p)">
${stats(p)} % if p.has_range:
${rangeleft(p)} ${rangecenter(p)} ${rangeright(p)}
% endif
${next(p)}
${prev(p)}