diff --git a/gestion/mail/fin_connexion.py b/gestion/mail/fin_connexion.py index 49be7044..51f86c04 100755 --- a/gestion/mail/fin_connexion.py +++ b/gestion/mail/fin_connexion.py @@ -15,6 +15,7 @@ from lc_ldap.variables import base_dn import ldap from affich_tools import coul import gestion.mail as mail_module +from locale_util import setlocale #: Une journée (c'est plus pratique) DAY = datetime.timedelta(days=1) @@ -70,7 +71,10 @@ def warn(adh, delai): data = {'delai': delai} for l in ['adhesion', 'connexion']: fin = max(parse_gtf(v.value) for v in adh['fin' + l.capitalize()]) - fin = fin.date().strftime('%d %B %Y') + # TODO mettre cette partie dans la génération multilangue de + # mail_module et faire un filtre jinja idoine + with setlocale('fr_FR.UTF-8'): + fin = fin.date().strftime('%d %B %Y') data['fin_%s' % l] = fin From = 'respbats@crans.org' diff --git a/gestion/mail/locale_util.py b/gestion/mail/locale_util.py new file mode 100644 index 00000000..d69b903c --- /dev/null +++ b/gestion/mail/locale_util.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Source: +# http://stackoverflow.com/questions/18593661/how-do-i-strftime-a-date-object-in-a-different-locale +import locale +import threading + +from datetime import datetime +from contextlib import contextmanager + + +LOCALE_LOCK = threading.Lock() + +@contextmanager +def setlocale(name): + with LOCALE_LOCK: + saved = locale.setlocale(locale.LC_ALL) + try: + yield locale.setlocale(locale.LC_ALL, name) + finally: + locale.setlocale(locale.LC_ALL, saved) +