Django

Code

Changeset 8535

Show
Ignore:
Timestamp:
08/25/08 07:31:10 (3 months ago)
Author:
russellm
Message:

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.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/template/defaultfilters.py

    r8486 r8535  
    644644        return u'' 
    645645    if arg: 
    646         return timesince(arg, value
     646        return timesince(value, arg
    647647    return timesince(value) 
    648648timesince.is_safe = False 
  • django/trunk/docs/ref/templates/builtins.txt

    r8506 r8535  
    13311331For example, if ``blog_date`` is a date instance representing midnight on 1 
    13321332June 2006, and ``comment_date`` is a date instance for 08:00 on 1 June 2006, 
    1333 then ``{{ comment_date|timesince:blog_date }}`` would return "8 hours". 
     1333then ``{{ blog_date|timesince:comment_date }}`` would return "8 hours". 
    13341334 
    13351335Minutes is the smallest unit used, and "0 minutes" will be returned for any 
  • django/trunk/tests/regressiontests/defaultfilters/tests.py

    r8486 r8535  
    374374u'1 day' 
    375375 
     376>>> timesince(datetime.datetime(2005, 12, 29), datetime.datetime(2005, 12, 30)) 
     377u'1 day' 
     378 
     379>>> timeuntil(datetime.datetime.now() + datetime.timedelta(1)) 
     380u'1 day' 
     381 
     382>>> timeuntil(datetime.datetime(2005, 12, 30), datetime.datetime(2005, 12, 29)) 
     383u'1 day' 
     384 
    376385>>> default(u"val", u"default") 
    377386u'val' 
  • django/trunk/tests/regressiontests/templates/filters.py

    r8486 r8535  
    3535 
    3636        # Compare to a given parameter 
    37         'filter-timesince04' : ('{{ a|timesince:b }}', {'a':now + timedelta(days=2), 'b':now + timedelta(days=1)}, '1 day'), 
    38         'filter-timesince05' : ('{{ a|timesince:b }}', {'a':now + timedelta(days=2, minutes=1), 'b':now + timedelta(days=2)}, '1 minute'), 
     37        'filter-timesince04' : ('{{ a|timesince:b }}', {'a':now - timedelta(days=2), 'b':now - timedelta(days=1)}, '1 day'), 
     38        'filter-timesince05' : ('{{ a|timesince:b }}', {'a':now - timedelta(days=2, minutes=1), 'b':now - timedelta(days=2)}, '1 minute'), 
    3939 
    4040        # Check that timezone is respected 
    41         'filter-timesince06' : ('{{ a|timesince:b }}', {'a':now_tz + timedelta(hours=8), 'b':now_tz}, '8 hours'), 
     41        'filter-timesince06' : ('{{ a|timesince:b }}', {'a':now_tz - timedelta(hours=8), 'b':now_tz}, '8 hours'), 
     42 
     43        # Regression for #7443 
     44        'filter-timesince07': ('{{ earlier|timesince }}', { 'earlier': now - timedelta(days=7) }, '1 week'), 
     45        'filter-timesince08': ('{{ earlier|timesince:now }}', { 'now': now, 'earlier': now - timedelta(days=7) }, '1 week'), 
     46        'filter-timesince09': ('{{ later|timesince }}', { 'later': now + timedelta(days=7) }, '0 minutes'), 
     47        'filter-timesince10': ('{{ later|timesince:now }}', { 'now': now, 'later': now + timedelta(days=7) }, '0 minutes'), 
    4248 
    4349        # Default compare with datetime.now() 
     
    4955        'filter-timeuntil04' : ('{{ a|timeuntil:b }}', {'a':now - timedelta(days=1), 'b':now - timedelta(days=2)}, '1 day'), 
    5056        'filter-timeuntil05' : ('{{ a|timeuntil:b }}', {'a':now - timedelta(days=2), 'b':now - timedelta(days=2, minutes=1)}, '1 minute'), 
     57 
     58        # Regression for #7443 
     59        'filter-timeuntil06': ('{{ earlier|timeuntil }}', { 'earlier': now - timedelta(days=7) }, '0 minutes'), 
     60        'filter-timeuntil07': ('{{ earlier|timeuntil:now }}', { 'now': now, 'earlier': now - timedelta(days=7) }, '0 minutes'), 
     61        'filter-timeuntil08': ('{{ later|timeuntil }}', { 'later': now + timedelta(days=7) }, '1 week'), 
     62        'filter-timeuntil09': ('{{ later|timeuntil:now }}', { 'now': now, 'later': now + timedelta(days=7) }, '1 week'), 
     63 
    5164 
    5265        'filter-addslash01': ("{% autoescape off %}{{ a|addslashes }} {{ b|addslashes }}{% endautoescape %}", {"a": "<a>'", "b": mark_safe("<a>'")}, ur"<a>\' <a>\'"),