provide 'descending' flag for sorting
This commit is contained in:
parent
3d3013b76c
commit
13da77de0a
2 changed files with 7 additions and 2 deletions
|
@ -83,6 +83,7 @@ class Report(Template):
|
||||||
queryCriteria = None
|
queryCriteria = None
|
||||||
outputFields = ()
|
outputFields = ()
|
||||||
sortCriteria = ()
|
sortCriteria = ()
|
||||||
|
sortDescending = False
|
||||||
limits = None
|
limits = None
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -81,12 +81,14 @@ class GroupHeaderRow(BaseRow):
|
||||||
class ResultSet(object):
|
class ResultSet(object):
|
||||||
|
|
||||||
def __init__(self, context, data, rowFactory=Row,
|
def __init__(self, context, data, rowFactory=Row,
|
||||||
sortCriteria=None, queryCriteria=BaseQueryCriteria(),
|
sortCriteria=None, sortDescending=False,
|
||||||
|
queryCriteria=BaseQueryCriteria(),
|
||||||
limits=None):
|
limits=None):
|
||||||
self.context = context # the report or report instance
|
self.context = context # the report or report instance
|
||||||
self.data = data
|
self.data = data
|
||||||
self.rowFactory = rowFactory
|
self.rowFactory = rowFactory
|
||||||
self.sortCriteria = sortCriteria
|
self.sortCriteria = sortCriteria
|
||||||
|
self.sortDescending = sortDescending
|
||||||
self.queryCriteria = queryCriteria
|
self.queryCriteria = queryCriteria
|
||||||
self.limits = limits
|
self.limits = limits
|
||||||
self.totals = BaseRow(None, self)
|
self.totals = BaseRow(None, self)
|
||||||
|
@ -95,7 +97,9 @@ class ResultSet(object):
|
||||||
result = [self.rowFactory(item, self) for item in self.data]
|
result = [self.rowFactory(item, self) for item in self.data]
|
||||||
result = [row for row in result if self.queryCriteria.check(row)]
|
result = [row for row in result if self.queryCriteria.check(row)]
|
||||||
if self.sortCriteria:
|
if self.sortCriteria:
|
||||||
result.sort(key=lambda x: [f.getSortValue(x) for f in self.sortCriteria])
|
result.sort(key=lambda x:
|
||||||
|
[f.getSortValue(x) for f in self.sortCriteria],
|
||||||
|
reverse=self.sortDescending)
|
||||||
if self.limits:
|
if self.limits:
|
||||||
start, stop = self.limits
|
start, stop = self.limits
|
||||||
result = result[start:stop]
|
result = result[start:stop]
|
||||||
|
|
Loading…
Add table
Reference in a new issue