diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-09-05 14:16:34 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-09-11 14:58:18 +0200 |
commit | ad9886585e469e93280cc563577ac8b0f535ace4 (patch) | |
tree | 918ccd7903ff4e25f387e50701290783c3b06aea /ishtar_common | |
parent | 86708c17c0556eeebf643071406f7a683d3e6556 (diff) | |
download | Ishtar-ad9886585e469e93280cc563577ac8b0f535ace4.tar.bz2 Ishtar-ad9886585e469e93280cc563577ac8b0f535ace4.zip |
✨ templates: short_date filter, NOW and TIME variables
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/jinja_filters.py | 11 | ||||
-rw-r--r-- | ishtar_common/models.py | 5 | ||||
-rw-r--r-- | ishtar_common/utils.py | 3 | ||||
-rw-r--r-- | ishtar_common/utils_secretary.py | 3 |
4 files changed, 20 insertions, 2 deletions
diff --git a/ishtar_common/jinja_filters.py b/ishtar_common/jinja_filters.py index 0bc81c47f..e1e53cd66 100644 --- a/ishtar_common/jinja_filters.py +++ b/ishtar_common/jinja_filters.py @@ -137,3 +137,14 @@ def human_date_filter(*args): return "" set_locale() return value.strftime(settings.DATE_FORMAT) + + +@environmentfilter +def short_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 __: + return "" + set_locale() + return value.strftime(settings.SHORT_DATE_FORMAT) diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 6dc6d16c0..063a42522 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2422,6 +2422,11 @@ class DocumentTemplate(models.Model): + extension ) values = c_object.get_values(filtr=filtr) + now = datetime.datetime.now() + values.update({ + "TIME": now.strftime("%H:%M"), + "NOW": now.strftime("%Y-%m-%d"), + }) if not filtr: for k in values: if k in JSON_SERIALIZATION: diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index 17fb62711..11022cad2 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 + number_to_words, replace_line_breaks, short_date_filter if settings.USE_TRANSLATION_OVERLOAD: @@ -2819,6 +2819,7 @@ FORMULA_FILTERS = { EXTRA_JINJA_FILTERS = { "human_date": human_date_filter, + "short_date": short_date_filter, "capfirst": capfirst_filter, "lowerfirst": lowerfirst_filter, "capitalize": capitalize_filter, diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py index 9988fa4c2..075d9d0df 100644 --- a/ishtar_common/utils_secretary.py +++ b/ishtar_common/utils_secretary.py @@ -11,7 +11,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 + number_to_words, replace_line_breaks, short_date_filter RE_UNITS = re.compile("([.0-9]+)([a-z]+)") @@ -91,6 +91,7 @@ class IshtarSecretaryRenderer(Renderer): self.environment.filters["multiply"] = multiply_filter self.environment.filters["add"] = add_filter self.environment.filters["sub"] = sub_filter + self.environment.filters["short_date"] = short_date_filter def ishtar_media_loader(self, media, *args, **kwargs): res = self.fs_loader(media, *args, **kwargs) |