add groupSequence Numbers for resultset rows
This commit is contained in:
parent
e948df2ea2
commit
a477c59908
2 changed files with 16 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -5,3 +5,4 @@ ajax/dojo/*
|
|||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
.settings
|
||||
*.ropeproject
|
||||
|
|
|
@ -35,6 +35,8 @@ class BaseRow(object):
|
|||
self.parent = parent
|
||||
self.data = {}
|
||||
self.sequenceNumber = 0
|
||||
self.groupNumbers = dict()
|
||||
self.groupSequenceNumber = 0
|
||||
self.cssClass = 'row'
|
||||
|
||||
def getRawValue(self, attr):
|
||||
|
@ -77,6 +79,8 @@ class Row(BaseRow):
|
|||
|
||||
class GroupHeaderRow(BaseRow):
|
||||
|
||||
sourceField = ''
|
||||
|
||||
def getRawValue(self, attr):
|
||||
return self.data.get(attr, u'')
|
||||
|
||||
|
@ -129,6 +133,7 @@ class ResultSet(object):
|
|||
for c in columns:
|
||||
if c.output:
|
||||
headerRow.data[c.output] = c.getRawValue(row)
|
||||
headerRow.sourceField = c.name
|
||||
headerColumn = copy(c)
|
||||
headerColumn.__name__ = c.output
|
||||
headerColumn.cssClass = c.cssClass
|
||||
|
@ -227,10 +232,20 @@ class ResultSet(object):
|
|||
start, stop = self.limits
|
||||
result = result[start:stop]
|
||||
number = 0
|
||||
groupNumbers = dict()
|
||||
groupSequenceNumber = 0
|
||||
for idx, row in enumerate(result):
|
||||
if not isinstance(row, (GroupHeaderRow, SubTotalsRow)):
|
||||
row.sequenceNumber = number + 1
|
||||
number += 1
|
||||
row.groupNumbers = copy(groupNumbers)
|
||||
row.groupSequenceNumber = copy(groupSequenceNumber)
|
||||
groupSequenceNumber = groupSequenceNumber + 1
|
||||
elif isinstance(row, GroupHeaderRow):
|
||||
sourceField = row.sourceField
|
||||
groupNumbers[sourceField] = \
|
||||
groupNumbers.get(sourceField, 0) + 1
|
||||
groupSequenceNumber = 0
|
||||
return result
|
||||
|
||||
@Lazy
|
||||
|
|
Loading…
Add table
Reference in a new issue