diff --git a/expert/browser/report.py b/expert/browser/report.py index 8fdb035..d7bb768 100644 --- a/expert/browser/report.py +++ b/expert/browser/report.py @@ -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] diff --git a/expert/field.py b/expert/field.py index d01918e..9bdd7d1 100644 --- a/expert/field.py +++ b/expert/field.py @@ -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): diff --git a/organize/work/report.py b/organize/work/report.py index 1851464..be2ff82 100644 --- a/organize/work/report.py +++ b/organize/work/report.py @@ -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:] +