entities/wfobjs.py
branchstable
changeset 3999 5dd6ffc2ccae
parent 3986 cc29eddf51ad
child 4002 4edff8bce44b
equal deleted inserted replaced
3997:354e50e5bc61 3999:5dd6ffc2ccae
   149         assert self.req.execute('SET T subworkflow WF WHERE WF eid %(wf)s,T eid %(t)s',
   149         assert self.req.execute('SET T subworkflow WF WHERE WF eid %(wf)s,T eid %(t)s',
   150                                 {'t': tr.eid, 'wf': subworkflow}, ('wf', 't'))
   150                                 {'t': tr.eid, 'wf': subworkflow}, ('wf', 't'))
   151         for fromstate, tostate in exitpoints:
   151         for fromstate, tostate in exitpoints:
   152             tr.add_exit_point(fromstate, tostate)
   152             tr.add_exit_point(fromstate, tostate)
   153         return tr
   153         return tr
       
   154 
       
   155     def replace_state(self, todelstate, replacement):
       
   156         """migration convenience method"""
       
   157         if not hasattr(todelstate, 'eid'):
       
   158             todelstate = self.state_by_name(todelstate)
       
   159         if not hasattr(replacement, 'eid'):
       
   160             replacement = self.state_by_name(replacement)
       
   161         execute = self._cw.unsafe_execute
       
   162         execute('SET X in_state S WHERE S eid %(s)s', {'s': todelstate.eid}, 's')
       
   163         execute('SET X from_state NS WHERE X to_state OS, OS eid %(os)s, NS eid %(ns)s',
       
   164                 {'os': todelstate.eid, 'ns': newstate.eid}, 's')
       
   165         execute('SET X to_state NS WHERE X to_state OS, OS eid %(os)s, NS eid %(ns)s',
       
   166                 {'os': todelstate.eid, 'ns': newstate.eid}, 's')
   154 
   167 
   155 
   168 
   156 class BaseTransition(AnyEntity):
   169 class BaseTransition(AnyEntity):
   157     """customized class for abstract transition
   170     """customized class for abstract transition
   158 
   171