diff --git a/composer/report/base.py b/composer/report/base.py index 47e4172..2eb76e5 100644 --- a/composer/report/base.py +++ b/composer/report/base.py @@ -71,10 +71,24 @@ class Report(Template): manager = None fields = Jeep((field.label,)) + defaultOutputFields = (field.label,) + renderers = () sortSpec = () - outputSpec = () + outputFields = () def __init__(self, name): self.name = name + def getAllOutputFields(self): + return [f for f in self.fields if 'output' in f.executionSteps] + + def getActiveOutputFields(self): + if not self.outputFields: + return self.defaultOutputFields + return self.outputFields + + def getAvailableOutputFields(self): + return [f for f in self.getAllOutputFields() + if f not in self.getActiveOutputFields()] + diff --git a/composer/report/field.py b/composer/report/field.py index 10b90a2..fd67078 100644 --- a/composer/report/field.py +++ b/composer/report/field.py @@ -43,6 +43,8 @@ class Field(Component): default = None instance_name = None + executionSteps = ['query', 'sort', 'output'] + def __init__(self, name, title=None, fieldType='textline', **kw): assert name self.__name__ = name