PCv5/app/utils/filters/date.py

30 lines
839 B
Python

from app import app
from datetime import datetime
@app.template_filter('date')
def filter_date(date, format="%Y-%m-%d à %H:%M"):
"""
Print a date in a human-readable format.
"""
if date is None:
return "None"
if format == "dynamic":
d = "1er" if date.day == 1 else int(date.day)
m = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet",
"Août", "Septembre", "Octobre", "Novembre","Décembre"] \
[date.month - 1]
# Omit current year in the last 8 months
if (datetime.now() - date).days <= 8 * 30:
format = f"{d} {m} à %H:%M"
else:
format = f"{d} {m} %Y à %H:%M"
return date.strftime(format)
@app.template_filter('dyndate')
def filter_dyndate(date):
return filter_date(date, format="dynamic")