Mercurial > sat_legacy_website
view sat_website/templatetags/utils.py @ 32:876ae5e23690
language selector doesn't display the language code and put the first letter un uppercase (even in French, normally no upper case but here it's the first word of a word group)
author | souliane <souliane@mailoo.org> |
---|---|
date | Tue, 27 Jan 2015 07:54:43 +0100 |
parents | b45621706d83 |
children | 9d553570cc61 |
line wrap: on
line source
from django import template register = template.Library() @register.filter def is_tuple(value): """Tell if this value is a tuple or not. @param value (obj): any object @return: True if value is a tuple """ # XXX: we would like to have is_type with an argument instead, but it would # rely on a strange comparison - isinstance(value, arg) doesn't work here return type(value) == tuple @register.filter def buffer(value, n): """Split values in sub-lists of n elements. @param value (list): a list object @return: a list containing sub-lists For example: >>> buffer(range(10), 2) [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]] >>> buffer(range(10), 3) [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]] >>> buffer(range(10), 4) [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]] """ result = [] index = 0 while index < len(value): result.append(value[index:index + n]) index += n return result