Support multiple sort options
For dashboards and the change list. Change-Id: I47236f346d6fa3debd334ccfbfd3da9aea1f3db4
This commit is contained in:
parent
7016d319e7
commit
fca4d23465
|
@ -54,7 +54,8 @@ class ConfigSchema(object):
|
|||
|
||||
servers = [server]
|
||||
|
||||
sort_by = v.Any('number', 'updated', 'last-seen')
|
||||
_sort_by = v.Any('number', 'updated', 'last-seen')
|
||||
sort_by = v.Any(_sort_by, [_sort_by])
|
||||
|
||||
text_replacement = {'text': v.Any(str,
|
||||
{'color': str,
|
||||
|
|
15
gertty/db.py
15
gertty/db.py
|
@ -881,14 +881,17 @@ class DatabaseSession(object):
|
|||
def getChanges(self, query, unreviewed=False, sort_by='number'):
|
||||
self.database.log.debug("Search query: %s sort: %s" % (query, sort_by))
|
||||
q = self.session().query(Change).filter(self.search.parse(query))
|
||||
if not isinstance(sort_by, (list, tuple)):
|
||||
sort_by = [sort_by]
|
||||
if unreviewed:
|
||||
q = q.filter(change_table.c.hidden==False, change_table.c.reviewed==False)
|
||||
if sort_by == 'updated':
|
||||
q = q.order_by(change_table.c.updated)
|
||||
elif sort_by == 'last-seen':
|
||||
q = q.order_by(change_table.c.last_seen)
|
||||
else:
|
||||
q = q.order_by(change_table.c.number)
|
||||
for s in sort_by:
|
||||
if s == 'updated':
|
||||
q = q.order_by(change_table.c.updated)
|
||||
elif s == 'last-seen':
|
||||
q = q.order_by(change_table.c.last_seen)
|
||||
elif s == 'number':
|
||||
q = q.order_by(change_table.c.number)
|
||||
self.database.log.debug("Search SQL: %s" % q)
|
||||
try:
|
||||
return q.all()
|
||||
|
|
Loading…
Reference in New Issue