work in progress: task management: creation of work items OK

git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@3096 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
helmutm 2008-12-29 12:27:46 +00:00
parent 9e242aa0e5
commit 42f9529086
3 changed files with 10 additions and 7 deletions

View file

@ -11,7 +11,7 @@
<adapter factory="cybertools.organize.work.WorkItems" /> <adapter factory="cybertools.organize.work.WorkItems" />
<utility component="cybertools.organize.work.workItemStates" <utility factory="cybertools.organize.work.workItemStates"
provides="cybertools.stateful.interfaces.IStatesDefinition" provides="cybertools.stateful.interfaces.IStatesDefinition"
name="organize.workItemStates" /> name="organize.workItemStates" />

View file

@ -28,6 +28,7 @@ from zope.interface import Interface, Attribute
from zope.i18nmessageid import MessageFactory from zope.i18nmessageid import MessageFactory
from cybertools.composer.schema.factory import Email from cybertools.composer.schema.factory import Email
from cybertools.tracking.interfaces import ITrack
from cybertools.util.jeep import Jeep, Term from cybertools.util.jeep import Jeep, Term
_ = MessageFactory('cybertools.organize') _ = MessageFactory('cybertools.organize')
@ -420,7 +421,7 @@ class IJobManager(Interface):
# work # work
class IWorkItem(Interface): class IWorkItem(ITrack):
""" A single piece of work, started and finished at a certain time, """ A single piece of work, started and finished at a certain time,
done by exactly one party (usually a person). done by exactly one party (usually a person).
""" """

View file

@ -180,14 +180,13 @@ class WorkItem(Stateful, Track):
self.startWork(**kw) self.startWork(**kw)
def action_finish(self, **kw): def action_finish(self, **kw):
if 'description' in kw:
self.data['description'] = kw.pop('description')
if self.state == 'new': if self.state == 'new':
self.assign(kw.pop('party', None)) self.assign(kw.pop('party', None))
if self.state == 'assigned':
self.startWork(start=kw.pop('start', None))
self.stopWork(**kw) self.stopWork(**kw)
#pred = self.predecessor # better to finish predecessors manually?
#while pred is not None:
# wi = getParent(self)[pred]
# wi.doTransition('finish')
# pred = wi.pred
# auxiliary methods # auxiliary methods
@ -226,6 +225,9 @@ class WorkItems(object):
def __getitem__(self, key): def __getitem__(self, key):
return self.context[key] return self.context[key]
def __iter__(self):
return iter(self.context.values())
def add(self, task, party, run=0, **kw): def add(self, task, party, run=0, **kw):
trackId = self.context.saveUserTrack(task, run, party, {}) trackId = self.context.saveUserTrack(task, run, party, {})
track = self[trackId] track = self[trackId]