From 94d38bbe2cd851947aad5e0e7cc29ffe6bee109d Mon Sep 17 00:00:00 2001 From: helmutm Date: Mon, 29 Dec 2008 15:05:25 +0000 Subject: [PATCH] work in progress: view work items git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3098 fd906abe-77d9-0310-91a1-e0d9ade77398 --- browser/common.py | 10 +++++----- browser/concept_macros.pt | 1 + browser/node.py | 13 ++++++++++++- organize/work/browser.py | 33 +++++++++++++++++++++++++++++++++ organize/work/configure.zcml | 6 ++++++ organize/work/work_macros.pt | 22 ++++++++++++++++++++++ 6 files changed, 79 insertions(+), 6 deletions(-) diff --git a/browser/common.py b/browser/common.py index 4c78a7c..571df48 100644 --- a/browser/common.py +++ b/browser/common.py @@ -404,19 +404,16 @@ class BaseView(GenericView, I18NView): @Lazy def versionId(self): - #versionable = IVersionable(self.context, None) versionable = IVersionable(self.target, None) return versionable and versionable.versionId or '' @Lazy def currentVersionId(self): - #versionable = IVersionable(self.context, None) versionable = IVersionable(self.target, None) return versionable and versionable.currentVersion.versionId or '' @Lazy def hasVersions(self): - #versionable = IVersionable(self.context, None) versionable = IVersionable(self.target, None) return versionable and len(versionable.versions) > 1 or False @@ -424,8 +421,6 @@ class BaseView(GenericView, I18NView): def versionInfo(self): if not self.useVersioning: return None - #context = self.context - #versionable = IVersionable(context, None) target = self.target versionable = IVersionable(target, None) if versionable is None: @@ -512,6 +507,11 @@ class BaseView(GenericView, I18NView): inlineEditable = False + # work items + @Lazy + def workItems(self): + return [] + # comments @Lazy diff --git a/browser/concept_macros.pt b/browser/concept_macros.pt index 2256416..eb4faf4 100644 --- a/browser/concept_macros.pt +++ b/browser/concept_macros.pt @@ -7,6 +7,7 @@ + diff --git a/browser/node.py b/browser/node.py index 139d942..bf4a542 100644 --- a/browser/node.py +++ b/browser/node.py @@ -482,8 +482,19 @@ class NodeView(BaseView): self.recordAccess('external_edit') return ExternalEditorView(target, self.request).load(url=url) - # comments + # work items + @Lazy + def work_macros(self): + from loops.organize.work.browser import work_macros + return work_macros.macros + + @Lazy + def workItems(self): + return component.getMultiAdapter((self.context, self.request), + name='workitems.html') + + # comments @Lazy def comment_macros(self): diff --git a/organize/work/browser.py b/organize/work/browser.py index ae52d67..be92bb4 100644 --- a/organize/work/browser.py +++ b/organize/work/browser.py @@ -34,8 +34,10 @@ from cybertools.browser.action import actions from cybertools.organize.interfaces import IWorkItems from loops.browser.action import DialogAction from loops.browser.form import ObjectForm, EditObject +from loops.browser.node import NodeView from loops.organize.party import getPersonForUser from loops.organize.tracking.browser import BaseTrackView +from loops.organize.tracking.report import TrackDetails from loops import util from loops.util import _ @@ -43,6 +45,37 @@ from loops.util import _ work_macros = ViewPageTemplateFile('work_macros.pt') +class WorkItemsView(NodeView): + + def __init__(self, context, request): + self.context = context + self.request = request + + @Lazy + def workItems(self): + ts = self.loopsRoot.getRecordManager().get('work') + if ts is not None: + return IWorkItems(ts) + + @Lazy + def allWorkItems(self): + result = [] + target = self.virtualTargetObject + workItems = self.workItems + if None in (workItems, target): + return result + for wi in workItems.query(task=util.getUidForObject(target)): + result.append(WorkItemDetails(self, wi)) + return result + + +class WorkItemDetails(TrackDetails): + + @Lazy + def description(self): + return self.track.description + + class WorkItemView(BaseTrackView): pass diff --git a/organize/work/configure.zcml b/organize/work/configure.zcml index 914b17d..e726057 100644 --- a/organize/work/configure.zcml +++ b/organize/work/configure.zcml @@ -24,6 +24,12 @@ + + + +
+

Work Items

+ + +
+
+

+ Subject

+
+ John, + 2007-03-30 +
+
+
+
+
+ +