summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-23 17:20:19 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:25 +0100
commitc08aa787649110f20eb3e161edf3c8783aece5d0 (patch)
treeb2da706ec9b29a840f022cfcabb149020cc97d67 /ishtar_common
parentbbb5ebef84ae4050e02a70119d395d9befc8199d (diff)
downloadIshtar-c08aa787649110f20eb3e161edf3c8783aece5d0.tar.bz2
Ishtar-c08aa787649110f20eb3e161edf3c8783aece5d0.zip
splitpart filer: add a merge_end option
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/tests.py2
-rw-r--r--ishtar_common/utils_secretary.py8
2 files changed, 7 insertions, 3 deletions
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index b5de13fe1..20f87b3bc 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -2882,6 +2882,8 @@ class JinjaFilterTest(TestCase):
self.assertEqual(utils_secretary.splitpart("1,2,3", 10), "")
self.assertEqual(utils_secretary.splitpart("", 10), "")
self.assertEqual(utils_secretary.splitpart("1;2;3", 2, ";"), "3")
+ self.assertEqual(utils_secretary.splitpart(
+ "1;2;3;4", 1, ";", True), "2;3;4")
def test_human_date(self):
self.assertEqual(utils_secretary.human_date_filter("NODATE"), "")
diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py
index ce93158f5..b3f55de4f 100644
--- a/ishtar_common/utils_secretary.py
+++ b/ishtar_common/utils_secretary.py
@@ -72,13 +72,15 @@ def human_date_filter(value):
return value.strftime(settings.DATE_FORMAT)
-def splitpart(value, index, char=','):
+def splitpart(value, index, char=',', merge_end=False):
if not value or not index:
return ""
splited = value.split(char)
- if len(splited) > index:
+ if len(splited) <= index:
+ return ""
+ if not merge_end:
return splited[index]
- return ""
+ return char.join(splited[index:])
class IshtarSecretaryRenderer(Renderer):