Merge branch 'bbmaster' of ssh://git.cy55.de/home/hplattner/git/cybertools into bbmaster
This commit is contained in:
commit
e07bcefe0c
2 changed files with 17 additions and 16 deletions
|
@ -138,28 +138,28 @@ class Report(Template):
|
|||
|
||||
def getPresentationFormats(self):
|
||||
return [dict(renderer='default', title='Default')]
|
||||
|
||||
|
||||
def getGroupFields(self):
|
||||
return [f for f in self.fields if 'group' in f.executionSteps]
|
||||
|
||||
|
||||
def getTotalsFields(self):
|
||||
return [f for f in self.fields if 'totals' in f.executionSteps]
|
||||
|
||||
|
||||
def getSubTotalsFields(self):
|
||||
result = []
|
||||
for gf in self.getGroupFields():
|
||||
result.append([f for f in self.fields if gf.name in f.totals])
|
||||
return result
|
||||
|
||||
|
||||
def getSubTotalsGroupFields(self):
|
||||
result = []
|
||||
for f in self.fields:
|
||||
result.extend(gf for gf in self.getGroupFields() if gf.name in f.totals)
|
||||
return result
|
||||
|
||||
|
||||
def getOutputFieldsForField(self, field):
|
||||
return [f for f in self.fields if f.name == field.output]
|
||||
|
||||
|
||||
|
||||
class BaseQueryCriteria(Component):
|
||||
|
||||
|
|
|
@ -83,8 +83,8 @@ class GroupHeaderRow(BaseRow):
|
|||
if f.name == col.name:
|
||||
fields[idx] = col
|
||||
return fields
|
||||
|
||||
|
||||
|
||||
|
||||
class SubTotalsRow(BaseRow):
|
||||
|
||||
def getRawValue(self, attr):
|
||||
|
@ -141,12 +141,12 @@ class ResultSet(object):
|
|||
v = u''
|
||||
subTotalsRow.data[gf.totalsDescription.output] = u'SUMME: ' + v
|
||||
return subTotalsRow
|
||||
|
||||
|
||||
def getResult(self):
|
||||
result = [self.rowFactory(item, self) for item in self.data]
|
||||
result = [row for row in result if self.queryCriteria.check(row)]
|
||||
if self.sortCriteria:
|
||||
result.sort(key=lambda x:
|
||||
result.sort(key=lambda x:
|
||||
[f.getSortValue(x) for f in self.sortCriteria])
|
||||
if self.groupColumns:
|
||||
res = []
|
||||
|
@ -177,7 +177,8 @@ class ResultSet(object):
|
|||
res.append(row)
|
||||
for idx, sc in enumerate(self.subTotalsColumns):
|
||||
for idx2, f in enumerate(sc):
|
||||
subTotals[idx][idx2] += f.getValue(row)
|
||||
subTotals[idx][idx2] += f.getValue(row,
|
||||
ignoreTotals=True)
|
||||
lastRow = row
|
||||
if lastRow is not None:
|
||||
subTotalsRows = []
|
||||
|
@ -219,16 +220,16 @@ class ResultSet(object):
|
|||
@Lazy
|
||||
def groupColumns(self):
|
||||
return self.context.getGroupFields()
|
||||
|
||||
|
||||
@Lazy
|
||||
def subTotalsColumns(self):
|
||||
return self.context.getSubTotalsFields()
|
||||
|
||||
|
||||
@Lazy
|
||||
def subTotalsGroupColumns(self):
|
||||
return self.context.getSubTotalsGroupFields()
|
||||
|
||||
|
||||
|
||||
|
||||
def getOutputColumnsForField(self, f):
|
||||
return self.context.getOutputFieldsForField(f)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue