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-project
|
||||||
*.sublime-workspace
|
*.sublime-workspace
|
||||||
.settings
|
.settings
|
||||||
|
*.ropeproject
|
||||||
|
|
|
@ -35,6 +35,8 @@ class BaseRow(object):
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.data = {}
|
self.data = {}
|
||||||
self.sequenceNumber = 0
|
self.sequenceNumber = 0
|
||||||
|
self.groupNumbers = dict()
|
||||||
|
self.groupSequenceNumber = 0
|
||||||
self.cssClass = 'row'
|
self.cssClass = 'row'
|
||||||
|
|
||||||
def getRawValue(self, attr):
|
def getRawValue(self, attr):
|
||||||
|
@ -77,6 +79,8 @@ class Row(BaseRow):
|
||||||
|
|
||||||
class GroupHeaderRow(BaseRow):
|
class GroupHeaderRow(BaseRow):
|
||||||
|
|
||||||
|
sourceField = ''
|
||||||
|
|
||||||
def getRawValue(self, attr):
|
def getRawValue(self, attr):
|
||||||
return self.data.get(attr, u'')
|
return self.data.get(attr, u'')
|
||||||
|
|
||||||
|
@ -129,6 +133,7 @@ class ResultSet(object):
|
||||||
for c in columns:
|
for c in columns:
|
||||||
if c.output:
|
if c.output:
|
||||||
headerRow.data[c.output] = c.getRawValue(row)
|
headerRow.data[c.output] = c.getRawValue(row)
|
||||||
|
headerRow.sourceField = c.name
|
||||||
headerColumn = copy(c)
|
headerColumn = copy(c)
|
||||||
headerColumn.__name__ = c.output
|
headerColumn.__name__ = c.output
|
||||||
headerColumn.cssClass = c.cssClass
|
headerColumn.cssClass = c.cssClass
|
||||||
|
@ -227,10 +232,20 @@ class ResultSet(object):
|
||||||
start, stop = self.limits
|
start, stop = self.limits
|
||||||
result = result[start:stop]
|
result = result[start:stop]
|
||||||
number = 0
|
number = 0
|
||||||
|
groupNumbers = dict()
|
||||||
|
groupSequenceNumber = 0
|
||||||
for idx, row in enumerate(result):
|
for idx, row in enumerate(result):
|
||||||
if not isinstance(row, (GroupHeaderRow, SubTotalsRow)):
|
if not isinstance(row, (GroupHeaderRow, SubTotalsRow)):
|
||||||
row.sequenceNumber = number + 1
|
row.sequenceNumber = number + 1
|
||||||
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
|
return result
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
|
|
Loading…
Add table
Reference in a new issue