NDOJ/judge/jinja2/datetime.py
2024-02-02 22:23:05 -06:00

27 lines
789 B
Python

import functools
from django.template.defaultfilters import date, time
from django.templatetags.tz import localtime
from django.utils.translation import gettext as _
from . import registry
def localtime_wrapper(func):
@functools.wraps(func)
def wrapper(datetime, *args, **kwargs):
if getattr(datetime, "convert_to_local_time", True):
datetime = localtime(datetime)
return func(datetime, *args, **kwargs)
return wrapper
registry.filter(localtime_wrapper(date))
registry.filter(localtime_wrapper(time))
@registry.function
@registry.render_with("widgets/relative-time.html")
def relative_time(time, format=_("N j, Y, g:i a"), rel=_("{time}"), abs=_("{time}")):
return {"time": time, "format": format, "rel_format": rel, "abs_format": abs}