summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-01-08 11:25:18 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:23 +0100
commitc153cee678fd2bc1901e7b2216b301aedb00728d (patch)
tree0092dd5daa3d5c1be17b114463334d9681d63b7c /ishtar_common
parent1bd10cc3c50ca5c3daca6d04ecd5dfa94f7f3dca (diff)
downloadIshtar-c153cee678fd2bc1901e7b2216b301aedb00728d.tar.bz2
Ishtar-c153cee678fd2bc1901e7b2216b301aedb00728d.zip
Jinja filter: lowerfirst - fix grammatical_gender export in templates
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py21
-rw-r--r--ishtar_common/tests.py12
-rw-r--r--ishtar_common/utils_secretary.py5
3 files changed, 30 insertions, 8 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 6ac197af4..98546c727 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1755,6 +1755,17 @@ class GenderedType(GeneralType):
doc += ' "{}": {}'.format(key, label)
return doc
+ def get_values(self, prefix='', **kwargs):
+ dct = {
+ prefix: self.label,
+ prefix + "id": self.pk,
+ prefix + "txt_idx": self.txt_idx,
+ prefix + "grammatical_gender": self.grammatical_gender
+ }
+ if prefix:
+ dct[prefix[:-1]] = self.label
+ return dct
+
class OrganizationType(GenderedType):
class Meta:
@@ -1983,14 +1994,8 @@ class TitleType(GenderedType):
return doc
def get_values(self, prefix='', **kwargs):
- dct = {
- prefix: self.label,
- prefix + "id": self.pk,
- prefix + "txt_idx": self.txt_idx,
- prefix + "long_title": self.long_title
- }
- if prefix:
- dct[prefix[:-1]] = self.label
+ dct = super(TitleType, self).get_values(prefix=prefix, **kwargs)
+ dct[prefix + "long_title"] = self.long_title
return dct
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 1460e7b66..6ae996057 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -2764,6 +2764,7 @@ class JinjaFilterTest(TestCase):
def test_splitpart(self):
self.assertEqual(utils_secretary.splitpart("1,2,3", 1), "2")
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")
def test_human_date(self):
@@ -2776,8 +2777,19 @@ class JinjaFilterTest(TestCase):
self.assertEqual(
utils_secretary.capfirst_filter("SAINT GEORGES D'OLÉRON"),
"Saint georges d'oléron")
+ self.assertEqual(utils_secretary.capfirst_filter("s"), "S")
+ self.assertEqual(utils_secretary.capfirst_filter(""), "")
def test_capitalize(self):
self.assertEqual(
utils_secretary.capitalize_filter("SAINT-GEORGES D'OLÉRON"),
"Saint-Georges d'Oléron")
+ self.assertEqual(utils_secretary.capitalize_filter("s"), "S")
+ self.assertEqual(utils_secretary.capitalize_filter(""), "")
+
+ def test_lowerfirst(self):
+ self.assertEqual(
+ utils_secretary.lowerfirst_filter("SAINT GEORGES D'OLÉRON"),
+ "sAINT GEORGES D'OLÉRON")
+ self.assertEqual(utils_secretary.lowerfirst_filter("S"), "s")
+ self.assertEqual(utils_secretary.lowerfirst_filter(""), "")
diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py
index 579ac3f63..b8231c543 100644
--- a/ishtar_common/utils_secretary.py
+++ b/ishtar_common/utils_secretary.py
@@ -32,6 +32,10 @@ def capfirst_filter(value):
return value.capitalize() if value else value
+def lowerfirst_filter(value):
+ return value[0].lower() + value[1:] if value else value
+
+
RE_CAP = re.compile(r"[^-' ]+")
SEP = ("un", "une", "le", "la", "les", "lez", "d", "l", "de", "des", "du")
@@ -84,6 +88,7 @@ class IshtarSecretaryRenderer(Renderer):
self.media_path = settings.MEDIA_ROOT
self.environment.filters['human_date'] = human_date_filter
self.environment.filters['capfirst'] = capfirst_filter
+ self.environment.filters['lowerfirst'] = capfirst_filter
self.environment.filters['capitalize'] = capitalize_filter
self.environment.filters['replace_line_breaks'] = replace_line_breaks
self.environment.filters['splitpart'] = splitpart