Ticket #1508: sort_ordering.patch
| File sort_ordering.patch, 1.8 kB (added by roger.demetrescu, 1 year ago) |
|---|
-
turbogears/paginate.py
old new 322 322 def sort_ordering(ordering, sort_name): 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 337 339 def sql_get_column(colname, var_data): … … 339 341 if isinstance(var_data, SelectResults): 340 342 col = getattr(var_data.sourceClass.q, colname, None) 341 343 342 elif isinstance(var_data, SASelectResults) or isinstance(var_data, Query):344 elif isinstance(var_data, SASelectResults): 343 345 col = getattr( 344 346 var_data._query.mapper.c, 345 347 colname[len(var_data._query.mapper.column_prefix or ''):], 346 348 None) 349 elif isinstance(var_data, Query): 350 col = getattr( 351 var_data.mapper.c, 352 colname[len(var_data.mapper.column_prefix or ''):], 353 None) 347 354 348 355 else: 349 356 raise StandardError, 'expected SelectResults'