Django

Code

Changeset 6996

Show
Ignore:
Timestamp:
01/04/08 18:03:12 (9 months ago)
Author:
adrian
Message:

Reverted 'regroup' template tag changes from [6956], as they caused bug #6271, which affects one of my sites. I don't have time to inspect the #6271 patch, so I'm reverting this change in the interim, to fix the bug immediately.

Files:

Legend:

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

    r6981 r6996  
    925925 
    926926    """ 
    927     bits = token.contents.split(
    928     if len(bits) != 6
     927    firstbits = token.contents.split(None, 3
     928    if len(firstbits) != 4
    929929        raise TemplateSyntaxError, "'regroup' tag takes five arguments" 
    930     target = parser.compile_filter(bits[1]) 
    931     if bits[2] != 'by': 
     930    target = parser.compile_filter(firstbits[1]) 
     931    if firstbits[2] != 'by': 
    932932        raise TemplateSyntaxError("second argument to 'regroup' tag must be 'by'") 
    933     if bits[4] != 'as': 
     933    lastbits_reversed = firstbits[3][::-1].split(None, 2) 
     934    if lastbits_reversed[1][::-1] != 'as': 
    934935        raise TemplateSyntaxError("next-to-last argument to 'regroup' tag must" 
    935936                                  " be 'as'") 
    936937 
    937     expression = parser.compile_filter(bits[3]) 
    938     var_name = bits[5] 
     938    expression = parser.compile_filter(lastbits_reversed[2][::-1]) 
     939 
     940    var_name = lastbits_reversed[0][::-1] 
    939941    return RegroupNode(target, expression, var_name) 
    940942regroup = register.tag(regroup) 
  • django/trunk/tests/regressiontests/templates/tests.py

    r6981 r6996  
    810810                          '{% endfor %}', 
    811811                          {}, ''), 
    812              
    813             # Test syntax. 
    814             'regroup03': ('{% regroup data by bar as %}', {}, 
    815                           template.TemplateSyntaxError), 
    816             'regroup04': ('{% regroup data by bar thisaintright grouped %}', {}, 
    817                           template.TemplateSyntaxError), 
    818             'regroup05': ('{% regroup data thisaintright bar as grouped %}', {}, 
    819                           template.TemplateSyntaxError), 
    820             'regroup06': ('{% regroup data by bar as grouped toomanyargs %}', {}, 
    821                           template.TemplateSyntaxError), 
    822812 
    823813            ### TEMPLATETAG TAG #######################################################