Author: russellm
Date: 2008-08-25 07:31:10 -0500 (Mon, 25 Aug 2008)
New Revision: 8535

Modified:
   django/trunk/django/template/defaultfilters.py
   django/trunk/docs/ref/templates/builtins.txt
   django/trunk/tests/regressiontests/defaultfilters/tests.py
   django/trunk/tests/regressiontests/templates/filters.py
Log:
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 <[EMAIL PROTECTED]> for the report.

Modified: django/trunk/django/template/defaultfilters.py
===================================================================
--- django/trunk/django/template/defaultfilters.py      2008-08-25 07:13:42 UTC 
(rev 8534)
+++ django/trunk/django/template/defaultfilters.py      2008-08-25 12:31:10 UTC 
(rev 8535)
@@ -643,7 +643,7 @@
     if not value:
         return u''
     if arg:
-        return timesince(arg, value)
+        return timesince(value, arg)
     return timesince(value)
 timesince.is_safe = False
 

Modified: django/trunk/docs/ref/templates/builtins.txt
===================================================================
--- django/trunk/docs/ref/templates/builtins.txt        2008-08-25 07:13:42 UTC 
(rev 8534)
+++ django/trunk/docs/ref/templates/builtins.txt        2008-08-25 12:31:10 UTC 
(rev 8535)
@@ -1330,7 +1330,7 @@
 the comparison point (without the argument, the comparison point is *now*).
 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,
-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
 date that is in the future relative to the comparison point.

Modified: django/trunk/tests/regressiontests/defaultfilters/tests.py
===================================================================
--- django/trunk/tests/regressiontests/defaultfilters/tests.py  2008-08-25 
07:13:42 UTC (rev 8534)
+++ django/trunk/tests/regressiontests/defaultfilters/tests.py  2008-08-25 
12:31:10 UTC (rev 8535)
@@ -373,6 +373,15 @@
 >>> timesince(datetime.datetime.now() - datetime.timedelta(1))
 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")
 u'val'
 

Modified: django/trunk/tests/regressiontests/templates/filters.py
===================================================================
--- django/trunk/tests/regressiontests/templates/filters.py     2008-08-25 
07:13:42 UTC (rev 8534)
+++ django/trunk/tests/regressiontests/templates/filters.py     2008-08-25 
12:31:10 UTC (rev 8535)
@@ -34,12 +34,18 @@
         'filter-timesince03' : ('{{ a|timesince }}', {'a': datetime.now() - 
timedelta(hours=1, minutes=25, seconds = 10)}, '1 hour, 25 minutes'),
 
         # Compare to a given parameter
-        '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-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'),
 
         # 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()
         'filter-timeuntil01' : ('{{ a|timeuntil }}', {'a':datetime.now() + 
timedelta(minutes=2, seconds = 10)}, '2 minutes'),
         'filter-timeuntil02' : ('{{ a|timeuntil }}', {'a':(datetime.now() + 
timedelta(days=1, seconds = 10))}, '1 day'),
@@ -49,6 +55,13 @@
         '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'),
 
+        # 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-addslash02': ("{{ a|addslashes }} {{ b|addslashes }}", {"a": 
"<a>'", "b": mark_safe("<a>'")}, ur"&lt;a&gt;\&#39; <a>\'"),
 


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to