diff options
| -rw-r--r-- | docs/fr/source/annexe-tech-4-jinja-filters.rst | 9 | ||||
| -rw-r--r-- | ishtar_common/jinja_filters.py | 13 | ||||
| -rw-r--r-- | ishtar_common/utils.py | 3 | ||||
| -rw-r--r-- | ishtar_common/utils_secretary.py | 3 |
4 files changed, 24 insertions, 4 deletions
diff --git a/docs/fr/source/annexe-tech-4-jinja-filters.rst b/docs/fr/source/annexe-tech-4-jinja-filters.rst index d112249bc..0b2e5032b 100644 --- a/docs/fr/source/annexe-tech-4-jinja-filters.rst +++ b/docs/fr/source/annexe-tech-4-jinja-filters.rst @@ -7,7 +7,7 @@ Annexe technique 4 - Filtres et variables pour les patrons de documents ======================================================================= :Auteurs: Étienne Loks, Valérie-Emma Leroux -:Date: 2024-10-08 +:Date: 2026-05-21 :Copyright: CC-BY 3.0 ---------------------------------- @@ -66,6 +66,13 @@ Ce filtre permet d'afficher une date avec le format JJ/MM/AAAA. - `{{\"2020-03-28\"|short_date}}` -> `28/03/2020` + +- **year** + +Ce filtre permet d'afficher l'année d'une date. + + - `{{\"2020-03-03\"|year}}` -> `2020` + - **int** Pour afficher un nombre sans décimales. diff --git a/ishtar_common/jinja_filters.py b/ishtar_common/jinja_filters.py index 64d22bf10..0c00401a8 100644 --- a/ishtar_common/jinja_filters.py +++ b/ishtar_common/jinja_filters.py @@ -131,11 +131,22 @@ def capitalize_filter(*args): @environmentfilter +def year_filter(*args): + value = args[0] if len(args) == 1 else args[1] # jinja simple filter + try: + value = datetime.strptime(value, "%Y-%m-%d") + except (ValueError, TypeError): + return "" + set_locale() + return value.year + + +@environmentfilter def human_date_filter(*args): value = args[0] if len(args) == 1 else args[1] # jinja simple filter try: value = datetime.strptime(value, "%Y-%m-%d") - except (ValueError, TypeError) as __: + except (ValueError, TypeError): return "" set_locale() return value.strftime(settings.DATE_FORMAT) diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index cb6511d9d..30bf4b7db 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -79,7 +79,7 @@ from django.template.defaultfilters import slugify from .jinja_filters import capfirst_filter, capitalize_filter, \ euro_format, float_format, human_date_filter, lowerfirst_filter, \ - number_to_words, replace_line_breaks, short_date_filter, splitpart + number_to_words, replace_line_breaks, short_date_filter, splitpart, year_filter if settings.USE_TRANSLATION_OVERLOAD: @@ -2868,6 +2868,7 @@ EXTRA_JINJA_FILTERS = { "euro_format": euro_format, "number_to_words": number_to_words, "replace_line_breaks": replace_line_breaks, + "year": year_filter } diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py index 77a2cbc9b..c3da79ea1 100644 --- a/ishtar_common/utils_secretary.py +++ b/ishtar_common/utils_secretary.py @@ -12,7 +12,7 @@ from django.conf import settings from .jinja_filters import capfirst_filter, capitalize_filter, \ euro_format, float_format, human_date_filter, lowerfirst_filter, \ - number_to_words, replace_line_breaks, short_date_filter, splitpart + number_to_words, replace_line_breaks, short_date_filter, splitpart, year_filter RE_UNITS = re.compile("([.0-9]+)([a-z]+)") @@ -66,6 +66,7 @@ class IshtarSecretaryRenderer(Renderer): self.environment.filters["add"] = add_filter self.environment.filters["sub"] = sub_filter self.environment.filters["short_date"] = short_date_filter + self.environment.filters["year"] = year_filter def ishtar_media_loader(self, media, *args, **kwargs): res = self.fs_loader(media, *args, **kwargs) |
