From 173a86926e411596d6cfe89e676f6180fd14ca98 Mon Sep 17 00:00:00 2001 From: helmutm Date: Sun, 4 Apr 2010 16:26:01 +0000 Subject: [PATCH] work in progress: report management: handle output fields git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3803 fd906abe-77d9-0310-91a1-e0d9ade77398 --- composer/report/base.py | 16 +++++++++++++++- composer/report/field.py | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) 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