Changeset 3510
- Timestamp:
- 10/11/07 05:34:54 (1 year ago)
- Files:
-
- branches/1.0/CHANGELOG.txt (modified) (1 diff)
- branches/1.0/turbogears/paginate.py (modified) (1 diff)
- branches/1.0/turbogears/tests/test_paginate.py (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/1.0/CHANGELOG.txt
r3446 r3510 14 14 * sa_rwt (SQLAlchemy run with transaction) refactored to fix some corner 15 15 cases. 16 * Ticket #1508: fixed internal pagination ordering, avoiding a potential 17 error when paginating Query objects (sqlalchemy) and ordering by 4 or more 18 columns. 16 19 17 20 *Contributors* 18 21 19 Paul Johnston 22 Paul Johnston, Roger Demetrescu 20 23 21 24 branches/1.0/turbogears/paginate.py
r3492 r3510 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