improvements and fixes for work items and movement of work items to other tasks

This commit is contained in:
Helmut Merz 2012-07-31 17:54:54 +02:00
parent 5904b3a9e8
commit e802a8bc6e

View file

@ -143,12 +143,12 @@ workItemTypes = Jeep((
WorkItemType('work', u'Unit of Work'), WorkItemType('work', u'Unit of Work'),
WorkItemType('scheduled', u'Scheduled Event', WorkItemType('scheduled', u'Scheduled Event',
actions=('plan', 'accept', 'finish', 'cancel', actions=('plan', 'accept', 'finish', 'cancel',
'modify', 'delegate', 'close', 'reopen'), 'modify', 'delegate', 'move', 'close', 'reopen'),
fields =('start-end', 'duration-effort',), fields =('start-end', 'duration-effort',),
color ='#aaaaff'), color ='#aaaaff'),
WorkItemType('deadline', u'Deadline', WorkItemType('deadline', u'Deadline',
actions=('plan', 'accept', 'finish', 'cancel', actions=('plan', 'accept', 'finish', 'cancel',
'modify', 'delegate', 'close', 'reopen'), 'modify', 'delegate', 'move', 'close', 'reopen'),
fields =('deadline',), fields =('deadline',),
color ='#ffffaa') color ='#ffffaa')
)) ))
@ -267,17 +267,18 @@ class WorkItem(Stateful, Track):
return new return new
def move(self, userName, **kw): def move(self, userName, **kw):
moved = self.createNew('move', userName, **kw) xkw = dict(kw)
for k in ('deadline', 'start', 'end'):
xkw.pop(k, None) # do not change on source item
moved = self.createNew('move', userName, **xkw)
moved.userName = self.userName moved.userName = self.userName
moved.state = 'moved' moved.state = 'moved'
#moved.reindex('state')
moved.reindex() moved.reindex()
task = kw.pop('task', None) task = kw.pop('task', None)
new = moved.createNew(None, userName, taskId=task, runId=0, **kw) new = moved.createNew(None, userName, taskId=task, runId=0, **kw)
new.userName = self.userName new.userName = self.userName
new.data['source'] = moved.name new.data['source'] = moved.name
new.state = self.state new.state = self.state
#new.reindex('state')
new.reindex() new.reindex()
moved.data['target'] = new.name moved.data['target'] = new.name
if self.state in ('planned', 'accepted', 'delegated', 'moved', 'done'): if self.state in ('planned', 'accepted', 'delegated', 'moved', 'done'):