diff options
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r-- | ishtar_common/utils.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index fc58fce4e..17fb62711 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -77,6 +77,10 @@ from django.utils.formats import date_format from django.utils.safestring import mark_safe 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 + if settings.USE_TRANSLATION_OVERLOAD: from overload_translation.utils import ( @@ -2813,6 +2817,18 @@ FORMULA_FILTERS = { } +EXTRA_JINJA_FILTERS = { + "human_date": human_date_filter, + "capfirst": capfirst_filter, + "lowerfirst": lowerfirst_filter, + "capitalize": capitalize_filter, + "float_format": float_format, + "euro_format": euro_format, + "number_to_words": number_to_words, + "replace_line_breaks": replace_line_breaks, +} + + def _update_gen_id_dct(item, dct, initial_key, fkey=None, filters=None): if not fkey: fkey = initial_key[:] @@ -2915,6 +2931,17 @@ def get_generated_id(key, item): return value +def jinja_evaluation(formula, values): + for key in FORMULA_FILTERS: + if key not in FILTERS: + FILTERS[key] = FORMULA_FILTERS[key] + for key in EXTRA_JINJA_FILTERS: + if key not in FILTERS: + FILTERS[key] = EXTRA_JINJA_FILTERS[key] + tpl = Template(formula) + return tpl.render(values) + + PRIVATE_FIELDS = ("id", "history_modifier", "order", "uuid") |