Created
March 27, 2013 12:53
-
-
Save sveetch/5253958 to your computer and use it in GitHub Desktop.
Filtre pour tronquer sur les caractères, utile pour les django <= 1.4 qui ne disposent pas du filtre truncatechars
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from django.template import Library | |
register = Library() | |
@register.filter | |
def truncatestring(value, limit=125): | |
""" | |
Coupe une chaine après un certains nombre de caractères | |
La coupure se fait si la chaîne originale fournie dépasse la limite, dans ce cas la | |
coupure se fait alors sur ``limit-2`` caractères, les deux derniers caractères étant | |
réservés au suffixe ``..`` qui indique que la ligne a été coupée. | |
:type value: string | |
:param value: Valeur à couper si elle est plus longue que la limite. | |
:type limit: int | |
:param limit: (optional) Limite du nombre de caractères alloués pour la valeur. Par | |
défaut, la limite est placée à 125caractères. | |
:rtype: string | |
:return: Valeur coupée si elle dépasse la limite | |
""" | |
# Si la chaine est plus longue on coupe juste avant le dernier espace | |
# trouvé avant la limite | |
if len(value)>limit: | |
s = value[0:limit+2] | |
endindex = s.rfind(" ")-2 | |
if endindex < 0: | |
endindex = limit | |
return value[0:endindex+2]+".." | |
return value | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment