add colspan to subtotals row dependant on group header colspan

This commit is contained in:
hplattner 2014-03-13 17:49:38 +01:00
parent 770b4acd44
commit cb01ec4247

View file

@ -97,7 +97,14 @@ class SubTotalsRow(BaseRow):
@Lazy @Lazy
def displayedColumns(self): def displayedColumns(self):
return self.parent.context.getActiveOutputFields() fields = self.parent.context.getActiveOutputFields()
if not self.subTotalsGroupColumns:
return fields
for col in self.subTotalsGroupColumns:
for idx, f in enumerate(fields):
if f.name == col.name:
fields[idx] = col
return fields
class ResultSet(object): class ResultSet(object):
@ -139,6 +146,7 @@ class ResultSet(object):
if not gf.name in ','.join([','.join(c.totals) for c in columns]).split(','): if not gf.name in ','.join([','.join(c.totals) for c in columns]).split(','):
return None return None
subTotalsRow = SubTotalsRow(None, self) subTotalsRow = SubTotalsRow(None, self)
subTotalsRow.subTotalsGroupColumns = []
subTotalsRow.cssClass = 'subTotalsRow' subTotalsRow.cssClass = 'subTotalsRow'
for idx, c in enumerate(columns): for idx, c in enumerate(columns):
subTotalsRow.data[c.name] = values[idx] subTotalsRow.data[c.name] = values[idx]
@ -153,6 +161,16 @@ class ResultSet(object):
if v is None: if v is None:
v = u'' v = u''
subTotalsRow.data[gf.totalsDescription.output] = v subTotalsRow.data[gf.totalsDescription.output] = v
if gf.groupHeaderColspan is not None:
colNames = [col.name for col in self.displayedColumns]
for col in self.displayedColumns:
sCol = copy(col)
if colNames.index(col.name) > colNames.index(gf.output):
if colNames.index(col.name) < colNames.index(gf.output) + gf.groupHeaderColspan:
sCol.groupHeaderHidden = True
if col.name == gf.output:
sCol.groupHeaderColspan = gf.groupHeaderColspan
subTotalsRow.subTotalsGroupColumns.append(sCol)
return subTotalsRow return subTotalsRow
def getResult(self): def getResult(self):