add report row properties for js calculating totals and subtotals
This commit is contained in:
		
							parent
							
								
									78969355b6
								
							
						
					
					
						commit
						78748051e2
					
				
					 1 changed files with 13 additions and 1 deletions
				
			
		|  | @ -27,6 +27,8 @@ from cybertools.composer.interfaces import IInstance | ||||||
| from cybertools.composer.report.base import BaseQueryCriteria | from cybertools.composer.report.base import BaseQueryCriteria | ||||||
| from cybertools.util.jeep import Jeep | from cybertools.util.jeep import Jeep | ||||||
| 
 | 
 | ||||||
|  | from loops.common import normalizeName | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class BaseRow(object): | class BaseRow(object): | ||||||
| 
 | 
 | ||||||
|  | @ -52,6 +54,8 @@ class Row(BaseRow): | ||||||
| 
 | 
 | ||||||
|     attributeHandlers = {} |     attributeHandlers = {} | ||||||
|     cssClass = u'' |     cssClass = u'' | ||||||
|  |     rowId = u'' | ||||||
|  |     subTotalRowIds = [] | ||||||
| 
 | 
 | ||||||
|     def getRawValue(self, attr): |     def getRawValue(self, attr): | ||||||
|         return self.attributeHandlers.get( |         return self.attributeHandlers.get( | ||||||
|  | @ -153,7 +157,9 @@ class ResultSet(object): | ||||||
|             return None |             return None | ||||||
|         subTotalsRow = SubTotalsRow(None, self) |         subTotalsRow = SubTotalsRow(None, self) | ||||||
|         subTotalsRow.subTotalsGroupColumns = [] |         subTotalsRow.subTotalsGroupColumns = [] | ||||||
|         subTotalsRow.cssClass = 'subTotalsRow' |         rowId = '%s-%s' % (gf.name, normalizeName(gf.getRawValue(row))) | ||||||
|  |         rowId = rowId.replace('.', '_') | ||||||
|  |         subTotalsRow.cssClass = 'subTotalsRow ' + rowId | ||||||
|         for idx, c in enumerate(columns): |         for idx, c in enumerate(columns): | ||||||
|             subTotalsRow.data[c.name] = values[idx] |             subTotalsRow.data[c.name] = values[idx] | ||||||
|         if gf in self.subTotalsGroupColumns: |         if gf in self.subTotalsGroupColumns: | ||||||
|  | @ -243,6 +249,12 @@ class ResultSet(object): | ||||||
|                 row.groupNumbers = copy(groupNumbers) |                 row.groupNumbers = copy(groupNumbers) | ||||||
|                 row.groupSequenceNumber = copy(groupSequenceNumber) |                 row.groupSequenceNumber = copy(groupSequenceNumber) | ||||||
|                 groupSequenceNumber = groupSequenceNumber + 1 |                 groupSequenceNumber = groupSequenceNumber + 1 | ||||||
|  |                 for idx, f in enumerate(self.groupColumns): | ||||||
|  |                     name = f.name | ||||||
|  |                     value = normalizeName(f.getRawValue(row)) | ||||||
|  |                     value = value.replace('.', '_') | ||||||
|  |                     row.subTotalRowIds = copy(row.subTotalRowIds) + ['%s-%s' % ( | ||||||
|  |                         name, value)] | ||||||
|             elif isinstance(row, GroupHeaderRow): |             elif isinstance(row, GroupHeaderRow): | ||||||
|                 sourceField = row.sourceField |                 sourceField = row.sourceField | ||||||
|                 groupNumbers[sourceField] = \ |                 groupNumbers[sourceField] = \ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 hplattner
						hplattner