diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-05-23 12:50:49 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-05-23 12:50:49 +0200 |
commit | 00c57b7e83f216f1047a486d58b58c3722b58a0b (patch) | |
tree | 6cc3a4be26166477ce592efab5a34a5b07cb9a1f /ishtar_common | |
parent | 1c9ddea374e26a0aada5c6fbaa9881819cc9d016 (diff) | |
download | Ishtar-00c57b7e83f216f1047a486d58b58c3722b58a0b.tar.bz2 Ishtar-00c57b7e83f216f1047a486d58b58c3722b58a0b.zip |
Secretary: add human_date filter
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/utils_secretary.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py index 15fb69a2d..e419c3496 100644 --- a/ishtar_common/utils_secretary.py +++ b/ishtar_common/utils_secretary.py @@ -2,9 +2,14 @@ # -*- coding: utf-8 -*- from secretary import Renderer + +from datetime import datetime +import locale from PIL import Image import re +from django.conf import settings + RE_UNITS = re.compile("([.0-9]+)([a-z]+)") @@ -18,11 +23,27 @@ def parse_value_unit(value): return value, unit +def human_date_filter(value): + try: + value = datetime.strptime(value, "%Y-%m-%d") + except ValueError: + return "" + language_code = settings.LANGUAGE_CODE.split('-') + language_code = language_code[0] + "_" + language_code[1].upper() + for language_suffix in (".utf8", ""): + try: + locale.setlocale(locale.LC_TIME, language_code + language_suffix) + break + except locale.Error: + pass + return value.strftime(settings.DATE_FORMAT) + + class IshtarSecretaryRenderer(Renderer): def __init__(self, *args, **kwargs): super(IshtarSecretaryRenderer, self).__init__(*args, **kwargs) self.media_callback = self.ishtar_media_loader - # self.environment.filters['pad'] = pad_string + self.environment.filters['human_date'] = human_date_filter def ishtar_media_loader(self, media, *args, **kwargs): image_file, mime = self.fs_loader(media, *args, **kwargs) |