diff options
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 |
commit | c153cee678fd2bc1901e7b2216b301aedb00728d (patch) | |
tree | 0092dd5daa3d5c1be17b114463334d9681d63b7c /ishtar_common | |
parent | 1bd10cc3c50ca5c3daca6d04ecd5dfa94f7f3dca (diff) | |
download | Ishtar-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.py | 21 | ||||
-rw-r--r-- | ishtar_common/tests.py | 12 | ||||
-rw-r--r-- | ishtar_common/utils_secretary.py | 5 |
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 |