Changeset 3511
- Timestamp:
- 10/11/07 05:36:01 (1 year ago)
- Files:
-
- branches/1.1/CHANGELOG.txt (modified) (1 diff)
- branches/1.1/turbogears/paginate.py (modified) (1 diff)
- branches/1.1/turbogears/tests/test_paginate.py (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/1.1/CHANGELOG.txt
r3447 r3511 15 15 * sa_rwt (SQLAlchemy run with transaction) refactored to fix some corner 16 16 cases. 17 * Ticket #1508: fixed internal pagination ordering, avoiding a potential 18 error when paginating Query objects (sqlalchemy) and ordering by 4 or more 19 columns. 17 20 18 21 *Contributors* 19 22 20 Paul Johnston 23 Paul Johnston, Roger Demetrescu 21 24 22 25 branches/1.1/turbogears/paginate.py
r3490 r3511 323 323 """Rearrange ordering based on sort_name.""" 324 324 log.debug('sort called with %s and %s' % (ordering, sort_name)) 325 if sort_name not in ordering: 326 ordering[sort_name] = [-1, True] 327 if ordering[sort_name][0] == 0: 325 if ordering.setdefault(sort_name, [-1, True])[0] == 0: 328 326 # Flip 329 327 ordering[sort_name][1] = not ordering[sort_name][1] 330 328 else: 331 ordering[sort_name][0] = 0 332 for key in ordering.keys(): 333 if key != sort_name and ordering[key][0] < len(ordering) - 1: 334 ordering[key][0] += 1 329 ordering[sort_name][0] = -1 330 331 # re-sort dictionary 332 items = ordering.items() 333 items.sort(lambda x,y: cmp(x[1],y[1])) 334 for i,v in enumerate(items): 335 ordering[v[0]][0] = i 336 335 337 log.debug('sort results is %s and %s' % (ordering, sort_name)) 336 338