mirror of https://github.com/snachodog/mybuddy.git
Add deltasince function as an alternative to timesince (to get a timedelta instead of a str)
This commit is contained in:
parent
62bde09b3d
commit
fff19339f4
|
@ -33,7 +33,7 @@ def child_age_string(birth_date):
|
||||||
def duration_string(duration, precision="s"):
|
def duration_string(duration, precision="s"):
|
||||||
"""
|
"""
|
||||||
Format a duration (e.g. "2 hours, 3 minutes, 35 seconds").
|
Format a duration (e.g. "2 hours, 3 minutes, 35 seconds").
|
||||||
:param duration: a timedetla instance.
|
:param duration: a timedelta instance.
|
||||||
:param precision: the level of precision to return (h for hours, m for
|
:param precision: the level of precision to return (h for hours, m for
|
||||||
minutes, s for seconds)
|
minutes, s for seconds)
|
||||||
:returns: a string representation of the duration.
|
:returns: a string representation of the duration.
|
||||||
|
@ -50,7 +50,7 @@ def duration_string(duration, precision="s"):
|
||||||
def hours(duration):
|
def hours(duration):
|
||||||
"""
|
"""
|
||||||
Return the "hours" portion of a duration.
|
Return the "hours" portion of a duration.
|
||||||
:param duration: a timedetla instance.
|
:param duration: a timedelta instance.
|
||||||
:returns: an integer representing the number of hours in duration.
|
:returns: an integer representing the number of hours in duration.
|
||||||
"""
|
"""
|
||||||
if not duration:
|
if not duration:
|
||||||
|
@ -66,7 +66,7 @@ def hours(duration):
|
||||||
def minutes(duration):
|
def minutes(duration):
|
||||||
"""
|
"""
|
||||||
Return the "minutes" portion of a duration.
|
Return the "minutes" portion of a duration.
|
||||||
:param duration: a timedetla instance.
|
:param duration: a timedelta instance.
|
||||||
:returns: an integer representing the number of minutes in duration.
|
:returns: an integer representing the number of minutes in duration.
|
||||||
"""
|
"""
|
||||||
if not duration:
|
if not duration:
|
||||||
|
@ -82,7 +82,7 @@ def minutes(duration):
|
||||||
def seconds(duration):
|
def seconds(duration):
|
||||||
"""
|
"""
|
||||||
Return the "seconds" portion of a duration.
|
Return the "seconds" portion of a duration.
|
||||||
:param duration: a timedetla instance.
|
:param duration: a timedelta instance.
|
||||||
:returns: an integer representing the number of seconds in duration.
|
:returns: an integer representing the number of seconds in duration.
|
||||||
"""
|
"""
|
||||||
if not duration:
|
if not duration:
|
||||||
|
@ -114,3 +114,19 @@ def dayssince(value, today=None):
|
||||||
|
|
||||||
# use standard timesince for anything beyond yesterday
|
# use standard timesince for anything beyond yesterday
|
||||||
return str(delta.days) + _(" days ago")
|
return str(delta.days) + _(" days ago")
|
||||||
|
|
||||||
|
|
||||||
|
@register.filter
|
||||||
|
def deltasince(value, now=None):
|
||||||
|
"""
|
||||||
|
Returns a timedelta representing the time since passed datetime
|
||||||
|
:param value: a datetime instance
|
||||||
|
:param now: datetime to compare to (defaults to now)
|
||||||
|
:returns: a timedelta representing the elapsed time
|
||||||
|
"""
|
||||||
|
if now is None:
|
||||||
|
now = timezone.now()
|
||||||
|
|
||||||
|
delta = now - value
|
||||||
|
|
||||||
|
return delta
|
||||||
|
|
Loading…
Reference in New Issue