work in progress: task management with work items

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3093 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-12-28 21:25:34 +00:00
parent 7db5c8df68
commit 0fd3b8d78d
2 changed files with 9 additions and 12 deletions

View file

@ -73,7 +73,7 @@ the work items we have to provide an adapter to the tracking storage.
>>> from cybertools.tracking.btree import TrackingStorage
>>> from cybertools.organize.interfaces import IWorkItems
>>> from cybertools.organize.work import WorkItemTrack, WorkItems
>>> from cybertools.organize.work import WorkItem, WorkItems
>>> component.provideAdapter(WorkItems)
The individual work item (a track) is carrying a state attribute that is
@ -85,7 +85,7 @@ definition as a utility.
We are now ready to set up the tracking storage.
>>> tracks = TrackingStorage(trackFactory=WorkItemTrack)
>>> tracks = TrackingStorage(trackFactory=WorkItem)
>>> workItems = component.getAdapter(tracks, IWorkItems)
The work management only deals with the IDs or names of tasks and persons,

View file

@ -60,20 +60,14 @@ def workItemStates():
initialState='new')
class WorkItem(Stateful):
class WorkItem(Stateful, Track):
""" A work item that may be stored as a track in a tracking storage.
"""
implements(IWorkItem)
statesDefinition = 'organize.workItemStates'
def getStatesDefinition(self):
return component.getUtility(IStatesDefinition, name=self.statesDefinition)
class WorkItemTrack(WorkItem, Track):
""" A work item that may be stored as a track in a tracking storage.
"""
metadata_attributes = Track.metadata_attributes + ('state',)
index_attributes = metadata_attributes
typeName = 'WorkItem'
@ -84,7 +78,7 @@ class WorkItemTrack(WorkItem, Track):
closeAttributes = set(['end', 'duration', 'effort', 'comment'])
def __init__(self, taskId, runId, userName, data):
super(WorkItemTrack, self).__init__(taskId, runId, userName, data)
super(WorkItem, self).__init__(taskId, runId, userName, data)
self.state = self.getState() # make initial state persistent
self.data['creator'] = userName
self.data['created'] = self.timeStamp
@ -94,6 +88,9 @@ class WorkItemTrack(WorkItem, Track):
raise AttributeError(attr)
return self.data.get(attr, None)
def getStatesDefinition(self):
return component.getUtility(IStatesDefinition, name=self.statesDefinition)
@property
def party(self):
return self.userName