summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit00c57b7e83f216f1047a486d58b58c3722b58a0b (patch)
tree6cc3a4be26166477ce592efab5a34a5b07cb9a1f
parent1c9ddea374e26a0aada5c6fbaa9881819cc9d016 (diff)
downloadIshtar-00c57b7e83f216f1047a486d58b58c3722b58a0b.tar.bz2
Ishtar-00c57b7e83f216f1047a486d58b58c3722b58a0b.zip
Secretary: add human_date filter
-rw-r--r--ishtar_common/utils_secretary.py23
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)