entities/wfobjs.py
changeset 4012 f6c65e04704c
parent 3998 94cc7cad3d2d
parent 4002 4edff8bce44b
child 4023 eae23c40627a
equal deleted inserted replaced
4011:394f853bb653 4012:f6c65e04704c
   149         assert _cw.req.execute('SET T subworkflow WF WHERE WF eid %(wf)s,T eid %(t)s',
   149         assert _cw.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')
       
   167         todelstate.delete()
   154 
   168 
   155 
   169 
   156 class BaseTransition(AnyEntity):
   170 class BaseTransition(AnyEntity):
   157     """customized class for abstract transition
   171     """customized class for abstract transition
   158 
   172