from django import template from datetime import datetime, timedelta from pytz import timezone from mamweb.settings import TIME_ZONE import logging register = template.Library() logger = logging.getLogger(__name__) @register.filter(name='kratke_datum', expects_localtime=True) def kratke_datum(dt): # None dává None, ne-datum dává False, aby se daly použít filtry typu "default". if dt is None: return None if not isinstance(dt, datetime): logger.warning(f"Špatné volání filtru {__name__}: {dt}") return False naive_now = datetime.now() tz = timezone(TIME_ZONE) now = tz.localize(naive_now) delta = now - dt if delta <= timedelta(days=1): return dt.strftime("%k:%M") if delta <= timedelta(days=365): # Timedelta neumí vyjádřit 1 rok return dt.strftime("%d. %m.") return dt.strftime("%d. %m. %Y")