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