From 4aeea61ed07667bf2100f9116e64b9dd36e920f4 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 28 Nov 2012 16:22:25 +0100 Subject: [PATCH] new work item query for related tasks --- organize/work/browser.py | 19 +++++++++++++++++++ organize/work/configure.zcml | 8 ++++++++ 2 files changed, 27 insertions(+) diff --git a/organize/work/browser.py b/organize/work/browser.py index ff96953..33a5b25 100644 --- a/organize/work/browser.py +++ b/organize/work/browser.py @@ -288,6 +288,25 @@ class TaskWorkItems(BaseWorkItemsView, ConceptView): return sorted(self.query(**criteria), key=lambda x: x.track.timeStamp) +class RelatedTaskWorkItems(TaskWorkItems): + """ Show work items for all instances of a concept type assigned to + the query as query target. + """ + + @Lazy + def isQueryTarget(self): + return self.conceptManager['querytarget'] + + def listWorkItems(self): + criteria = self.baseCriteria + tasks = [] + for parent in self.context.getChildren([self.isQueryTarget]): + for task in parent.getChildren([self.typePredicate]): + tasks.append(util.getUidForObject(task)) + criteria['task'] = tasks + return sorted(self.query(**criteria), key=lambda x: x.track.timeStamp) + + class PersonWorkItems(BaseWorkItemsView, ConceptView): """ A query view showing work items for a person, the query's parent. """ diff --git a/organize/work/configure.zcml b/organize/work/configure.zcml index 5dbdc5b..bbd83f7 100644 --- a/organize/work/configure.zcml +++ b/organize/work/configure.zcml @@ -30,6 +30,14 @@ factory="loops.organize.work.browser.AllWorkItems" permission="zope.View" /> + +