Web M&M
https://mam.matfyz.cz
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
832 B
27 lines
832 B
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")
|
|
|
|
|