add groupSequence Numbers for resultset rows

This commit is contained in:
hplattner 2015-05-12 10:51:11 +02:00
parent e948df2ea2
commit a477c59908
2 changed files with 16 additions and 0 deletions

1
.gitignore vendored
View file

@ -5,3 +5,4 @@ ajax/dojo/*
*.sublime-project
*.sublime-workspace
.settings
*.ropeproject

View file

@ -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