Ticket #4715: query_sortorder011.diff
| File query_sortorder011.diff, 1.4 KB (added by vnaum@…, 4 years ago) |
|---|
-
query.py
411 411 if self.group and self.group != self.order: 412 412 order_cols.insert(0, (self.group, self.groupdesc)) 413 413 for name, desc in order_cols: 414 if name not in custom_fields: 414 if name in custom_fields or name in enum_columns: 415 col = name + '.value' 416 else: 415 417 col = 't.' + name 416 else:417 col = name + '.value'418 418 # FIXME: This is a somewhat ugly hack. Can we also have the 419 419 # column type for this? If it's an integer, we do first 420 420 # one, if text, we do 'else' … … 429 429 else: 430 430 sql.append("COALESCE(%s,'')=''," % col) 431 431 if name in enum_columns: 432 # These values must be compared as ints, not as strings 433 db = self.env.get_db_cnx() 432 434 if desc: 433 sql.append( "%s.value DESC" % name)435 sql.append(db.cast(col, 'int') + ' DESC') 434 436 else: 435 sql.append( "%s.value" % name)437 sql.append(db.cast(col, 'int')) 436 438 elif name in ('milestone', 'version'): 437 439 if name == 'milestone': 438 440 time_col = 'milestone.due'
