'move' action: correctly inactivate old 'done' or 'finished' items
This commit is contained in:
parent
c9490bb1e9
commit
ba529fad7b
1 changed files with 22 additions and 9 deletions
|
@ -42,7 +42,7 @@ def workItemStates():
|
||||||
return StatesDefinition('workItemStates',
|
return StatesDefinition('workItemStates',
|
||||||
State('new', 'new',
|
State('new', 'new',
|
||||||
('plan', 'accept', 'start', 'work', 'finish', 'delegate',
|
('plan', 'accept', 'start', 'work', 'finish', 'delegate',
|
||||||
'cancel', 'reopen'),
|
'cancel', 'reopen'), # 'move', # ?
|
||||||
color='red'),
|
color='red'),
|
||||||
State('planned', 'planned',
|
State('planned', 'planned',
|
||||||
('plan', 'accept', 'start', 'work', 'finish', 'delegate',
|
('plan', 'accept', 'start', 'work', 'finish', 'delegate',
|
||||||
|
@ -79,8 +79,12 @@ def workItemStates():
|
||||||
State('replaced', 'replaced', (), color='grey'),
|
State('replaced', 'replaced', (), color='grey'),
|
||||||
State('planned_x', 'planned', (), color='red'),
|
State('planned_x', 'planned', (), color='red'),
|
||||||
State('accepted_x', 'accepted', (), color='yellow'),
|
State('accepted_x', 'accepted', (), color='yellow'),
|
||||||
State('done_x', 'done', (), color='lightgreen'),
|
State('done_x', 'done',
|
||||||
State('finished_x', 'finished', (), color='green'),
|
('modify', 'move', 'cancel'), color='lightgreen'),
|
||||||
|
State('finished_x', 'finished',
|
||||||
|
('modify','move', 'cancel'), color='green'),
|
||||||
|
#State('done_y', 'done', (), color='grey'),
|
||||||
|
#State('finished_y', 'finished', (), color='grey'),
|
||||||
# transitions:
|
# transitions:
|
||||||
Transition('plan', 'plan', 'planned'),
|
Transition('plan', 'plan', 'planned'),
|
||||||
Transition('accept', 'accept', 'accepted'),
|
Transition('accept', 'accept', 'accepted'),
|
||||||
|
@ -306,10 +310,14 @@ class WorkItem(Stateful, Track):
|
||||||
xkw = dict(kw)
|
xkw = dict(kw)
|
||||||
for k in ('deadline', 'start', 'end'):
|
for k in ('deadline', 'start', 'end'):
|
||||||
xkw.pop(k, None) # do not change on source item
|
xkw.pop(k, None) # do not change on source item
|
||||||
moved = self.createNew('move', userName, **xkw)
|
if self.state == 'new': # should this be possible?
|
||||||
moved.userName = self.userName
|
moved = self
|
||||||
moved.state = 'moved'
|
self.setData(kw)
|
||||||
moved.reindex()
|
if self.state in ('done', 'finished', 'running'):
|
||||||
|
moved = self # is this OK? or better new state ..._y?
|
||||||
|
else:
|
||||||
|
moved = self.createNew('move', userName, **xkw)
|
||||||
|
moved.userName = self.userName
|
||||||
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
|
||||||
|
@ -317,10 +325,15 @@ class WorkItem(Stateful, Track):
|
||||||
new.state = self.state
|
new.state = self.state
|
||||||
new.reindex()
|
new.reindex()
|
||||||
moved.data['target'] = new.name
|
moved.data['target'] = new.name
|
||||||
if self.state in ('planned', 'accepted', 'delegated', 'moved',
|
moved.state = 'moved'
|
||||||
'done', 'finished'):
|
moved.reindex()
|
||||||
|
if self.state in ('planned', 'accepted', 'delegated', 'moved'):
|
||||||
|
#'done', 'finished'):
|
||||||
self.state = self.state + '_x'
|
self.state = self.state + '_x'
|
||||||
self.reindex('state')
|
self.reindex('state')
|
||||||
|
#elif self.state in ('done', 'finished'):
|
||||||
|
# self.state = self.state + '_y'
|
||||||
|
# self.reindex('state')
|
||||||
return new
|
return new
|
||||||
|
|
||||||
def close(self, userName, **kw):
|
def close(self, userName, **kw):
|
||||||
|
|
Loading…
Add table
Reference in a new issue