30 lines
689 B
Python
30 lines
689 B
Python
import datetime
|
|
|
|
from judge.utils.timedelta import nice_repr
|
|
from . import registry
|
|
|
|
|
|
@registry.filter
|
|
def timedelta(value, display='long'):
|
|
if value is None:
|
|
return value
|
|
return nice_repr(value, display)
|
|
|
|
|
|
@registry.filter
|
|
def timestampdelta(value, display='long'):
|
|
value = datetime.timedelta(seconds=value)
|
|
return timedelta(value, display)
|
|
|
|
|
|
@registry.filter
|
|
def seconds(timedelta):
|
|
return timedelta.total_seconds()
|
|
|
|
|
|
@registry.filter
|
|
@registry.render_with('time-remaining-fragment.html')
|
|
def as_countdown(time):
|
|
time_now = datetime.datetime.now(datetime.timezone.utc)
|
|
initial = abs(time - time_now)
|
|
return {'countdown': time, 'initial': initial}
|