work in progress: meeting minutes: selection and output working

This commit is contained in:
Helmut Merz 2012-05-04 16:13:02 +02:00
parent 17ccce90ce
commit 058de979d8
3 changed files with 26 additions and 4 deletions

View file

@ -104,5 +104,5 @@ class ResultsView(NodeView):
def displayedColumns(self):
return self.reportInstance.getActiveOutputFields()
def getColumnRenderer(self, name):
return self.result_macros[name]
def getColumnRenderer(self, col):
return self.result_macros[col.renderer]

View file

@ -194,6 +194,7 @@ class SubReportField(Field):
baseReport = row.parent.context
instance = self.reportFactory(baseReport.context)
instance.view = baseReport.view
instance.parentRow = row
return instance
def getValue(self, row):

View file

@ -33,7 +33,8 @@ from cybertools.util.date import timeStamp2Date
from cybertools.util.format import formatDate
from cybertools.util.jeep import Jeep
from loops.common import adapted, baseObject
from loops.expert.field import TargetField, TextField, UrlField, SubReportField
from loops.expert.field import TargetField, TextField, UrlField
from loops.expert.field import SubReport, SubReportField
from loops.expert.report import ReportInstance
from loops import util
@ -237,6 +238,25 @@ class WorkReportInstance(ReportInstance):
# meeting minutes
class MeetingMinutesWorkRow(WorkRow):
pass
class MeetingMinutesWork(WorkReportInstance, SubReport):
rowFactory = MeetingMinutesWorkRow
states = ('planned',)
def selectObjects(self, parts):
parts.pop('tasks', None)
t = self.parentRow.context
if t is not None:
return self.selectWorkItems(t, parts)
return []
taskTitle = UrlField('title', u'Title',
description=u'The short description of the task.',
executionSteps=['output'])
@ -245,7 +265,7 @@ taskDescription = TextField('description', u'Description',
executionSteps=['output'])
workItems = SubReportField('workItems', u'Work Items',
description=u'A list of work items belonging to the task.',
reportFactory=WorkReportInstance,
reportFactory=MeetingMinutesWork,
executionSteps=['output'])
@ -274,3 +294,4 @@ class MeetingMinutes(WorkReportInstance):
def selectObjects(self, parts):
return self.getTasks(parts)[1:]