Fixed #7743: Reverted [8483], which was itself a reversion of [8481], after confirmation from Malcolm. Corrected a long standing mistake in the timesince/timeuntil filters when using a parameter for 'now'. Thanks to Andrew Shearer <ashearerw@shearersoftware.com> for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8535 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
78bdff1adc
commit
06d49768bd
|
@ -643,7 +643,7 @@ def timesince(value, arg=None):
|
||||||
if not value:
|
if not value:
|
||||||
return u''
|
return u''
|
||||||
if arg:
|
if arg:
|
||||||
return timesince(arg, value)
|
return timesince(value, arg)
|
||||||
return timesince(value)
|
return timesince(value)
|
||||||
timesince.is_safe = False
|
timesince.is_safe = False
|
||||||
|
|
||||||
|
|
|
@ -1330,7 +1330,7 @@ Takes an optional argument that is a variable containing the date to use as
|
||||||
the comparison point (without the argument, the comparison point is *now*).
|
the comparison point (without the argument, the comparison point is *now*).
|
||||||
For example, if ``blog_date`` is a date instance representing midnight on 1
|
For example, if ``blog_date`` is a date instance representing midnight on 1
|
||||||
June 2006, and ``comment_date`` is a date instance for 08:00 on 1 June 2006,
|
June 2006, and ``comment_date`` is a date instance for 08:00 on 1 June 2006,
|
||||||
then ``{{ comment_date|timesince:blog_date }}`` would return "8 hours".
|
then ``{{ blog_date|timesince:comment_date }}`` would return "8 hours".
|
||||||
|
|
||||||
Minutes is the smallest unit used, and "0 minutes" will be returned for any
|
Minutes is the smallest unit used, and "0 minutes" will be returned for any
|
||||||
date that is in the future relative to the comparison point.
|
date that is in the future relative to the comparison point.
|
||||||
|
|
|
@ -373,6 +373,15 @@ u'12'
|
||||||
>>> timesince(datetime.datetime.now() - datetime.timedelta(1))
|
>>> timesince(datetime.datetime.now() - datetime.timedelta(1))
|
||||||
u'1 day'
|
u'1 day'
|
||||||
|
|
||||||
|
>>> timesince(datetime.datetime(2005, 12, 29), datetime.datetime(2005, 12, 30))
|
||||||
|
u'1 day'
|
||||||
|
|
||||||
|
>>> timeuntil(datetime.datetime.now() + datetime.timedelta(1))
|
||||||
|
u'1 day'
|
||||||
|
|
||||||
|
>>> timeuntil(datetime.datetime(2005, 12, 30), datetime.datetime(2005, 12, 29))
|
||||||
|
u'1 day'
|
||||||
|
|
||||||
>>> default(u"val", u"default")
|
>>> default(u"val", u"default")
|
||||||
u'val'
|
u'val'
|
||||||
|
|
||||||
|
|
|
@ -34,11 +34,17 @@ def get_filter_tests():
|
||||||
'filter-timesince03' : ('{{ a|timesince }}', {'a': datetime.now() - timedelta(hours=1, minutes=25, seconds = 10)}, '1 hour, 25 minutes'),
|
'filter-timesince03' : ('{{ a|timesince }}', {'a': datetime.now() - timedelta(hours=1, minutes=25, seconds = 10)}, '1 hour, 25 minutes'),
|
||||||
|
|
||||||
# Compare to a given parameter
|
# Compare to a given parameter
|
||||||
'filter-timesince04' : ('{{ a|timesince:b }}', {'a':now + timedelta(days=2), 'b':now + timedelta(days=1)}, '1 day'),
|
'filter-timesince04' : ('{{ a|timesince:b }}', {'a':now - timedelta(days=2), 'b':now - timedelta(days=1)}, '1 day'),
|
||||||
'filter-timesince05' : ('{{ a|timesince:b }}', {'a':now + timedelta(days=2, minutes=1), 'b':now + timedelta(days=2)}, '1 minute'),
|
'filter-timesince05' : ('{{ a|timesince:b }}', {'a':now - timedelta(days=2, minutes=1), 'b':now - timedelta(days=2)}, '1 minute'),
|
||||||
|
|
||||||
# Check that timezone is respected
|
# Check that timezone is respected
|
||||||
'filter-timesince06' : ('{{ a|timesince:b }}', {'a':now_tz + timedelta(hours=8), 'b':now_tz}, '8 hours'),
|
'filter-timesince06' : ('{{ a|timesince:b }}', {'a':now_tz - timedelta(hours=8), 'b':now_tz}, '8 hours'),
|
||||||
|
|
||||||
|
# Regression for #7443
|
||||||
|
'filter-timesince07': ('{{ earlier|timesince }}', { 'earlier': now - timedelta(days=7) }, '1 week'),
|
||||||
|
'filter-timesince08': ('{{ earlier|timesince:now }}', { 'now': now, 'earlier': now - timedelta(days=7) }, '1 week'),
|
||||||
|
'filter-timesince09': ('{{ later|timesince }}', { 'later': now + timedelta(days=7) }, '0 minutes'),
|
||||||
|
'filter-timesince10': ('{{ later|timesince:now }}', { 'now': now, 'later': now + timedelta(days=7) }, '0 minutes'),
|
||||||
|
|
||||||
# Default compare with datetime.now()
|
# Default compare with datetime.now()
|
||||||
'filter-timeuntil01' : ('{{ a|timeuntil }}', {'a':datetime.now() + timedelta(minutes=2, seconds = 10)}, '2 minutes'),
|
'filter-timeuntil01' : ('{{ a|timeuntil }}', {'a':datetime.now() + timedelta(minutes=2, seconds = 10)}, '2 minutes'),
|
||||||
|
@ -49,6 +55,13 @@ def get_filter_tests():
|
||||||
'filter-timeuntil04' : ('{{ a|timeuntil:b }}', {'a':now - timedelta(days=1), 'b':now - timedelta(days=2)}, '1 day'),
|
'filter-timeuntil04' : ('{{ a|timeuntil:b }}', {'a':now - timedelta(days=1), 'b':now - timedelta(days=2)}, '1 day'),
|
||||||
'filter-timeuntil05' : ('{{ a|timeuntil:b }}', {'a':now - timedelta(days=2), 'b':now - timedelta(days=2, minutes=1)}, '1 minute'),
|
'filter-timeuntil05' : ('{{ a|timeuntil:b }}', {'a':now - timedelta(days=2), 'b':now - timedelta(days=2, minutes=1)}, '1 minute'),
|
||||||
|
|
||||||
|
# Regression for #7443
|
||||||
|
'filter-timeuntil06': ('{{ earlier|timeuntil }}', { 'earlier': now - timedelta(days=7) }, '0 minutes'),
|
||||||
|
'filter-timeuntil07': ('{{ earlier|timeuntil:now }}', { 'now': now, 'earlier': now - timedelta(days=7) }, '0 minutes'),
|
||||||
|
'filter-timeuntil08': ('{{ later|timeuntil }}', { 'later': now + timedelta(days=7) }, '1 week'),
|
||||||
|
'filter-timeuntil09': ('{{ later|timeuntil:now }}', { 'now': now, 'later': now + timedelta(days=7) }, '1 week'),
|
||||||
|
|
||||||
|
|
||||||
'filter-addslash01': ("{% autoescape off %}{{ a|addslashes }} {{ b|addslashes }}{% endautoescape %}", {"a": "<a>'", "b": mark_safe("<a>'")}, ur"<a>\' <a>\'"),
|
'filter-addslash01': ("{% autoescape off %}{{ a|addslashes }} {{ b|addslashes }}{% endautoescape %}", {"a": "<a>'", "b": mark_safe("<a>'")}, ur"<a>\' <a>\'"),
|
||||||
'filter-addslash02': ("{{ a|addslashes }} {{ b|addslashes }}", {"a": "<a>'", "b": mark_safe("<a>'")}, ur"<a>\' <a>\'"),
|
'filter-addslash02': ("{{ a|addslashes }} {{ b|addslashes }}", {"a": "<a>'", "b": mark_safe("<a>'")}, ur"<a>\' <a>\'"),
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue