diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-03-08 15:53:42 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-03-08 15:53:42 +0100 |
commit | 95f77c32f06b7c90ddbddbbc9e24e7b30d2b5a5a (patch) | |
tree | 84234d84769ec37079c53e6327ebce9ce68904a2 /ishtar_common/utils_secretary.py | |
parent | 0e2837bd1377074f817714f4c4a385431f9d0c46 (diff) | |
download | Ishtar-95f77c32f06b7c90ddbddbbc9e24e7b30d2b5a5a.tar.bz2 Ishtar-95f77c32f06b7c90ddbddbbc9e24e7b30d2b5a5a.zip |
Templates: improve splitpart filter
Diffstat (limited to 'ishtar_common/utils_secretary.py')
-rw-r--r-- | ishtar_common/utils_secretary.py | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py index 062b43913..eea688ea1 100644 --- a/ishtar_common/utils_secretary.py +++ b/ishtar_common/utils_secretary.py @@ -71,15 +71,31 @@ def human_date_filter(value): return value.strftime(settings.DATE_FORMAT) -def splitpart(value, index, char=",", merge_end=False): - if not value or not index: +def splitpart(value, index, index_end=None, char=",", merge_character=None): + if index_end: + try: + index_end = int(index_end) + if not merge_character: # merge is assumed + merge_character = char + except ValueError: + # old filter use - manage compatibility + merge_character = char + char = index_end + index_end = None + if not value or (not index and index != 0): return "" + if merge_character is True: # old filter use + merge_character = char splited = value.split(char) if len(splited) <= index: return "" - if not merge_end: + if not merge_character: return splited[index] - return char.join(splited[index:]) + if index_end: + splited = splited[index:index_end] + else: + splited = splited[index:] + return merge_character.join(splited) class IshtarSecretaryRenderer(Renderer): |