415 |
415 |
416 @cached |
416 @cached |
417 def cwetype_workflow(self): |
417 def cwetype_workflow(self): |
418 """return the default workflow for entities of this type""" |
418 """return the default workflow for entities of this type""" |
419 # XXX CWEType method |
419 # XXX CWEType method |
420 wfrset = self._cw.execute('Any WF WHERE X is ET, X eid %(x)s, ' |
420 wfrset = self._cw.execute('Any WF WHERE ET default_workflow WF, ' |
421 'WF workflow_of ET', {'x': self.eid}, 'x') |
421 'ET name %(et)s', {'et': self.id}) |
422 if len(wfrset) == 1: |
422 if wfrset: |
423 return wfrset.get_entity(0, 0) |
423 return wfrset.get_entity(0, 0) |
424 if len(wfrset) > 1: |
424 self.warning("can't find any workflow for %s", self.id) |
425 for wf in wfrset.entities(): |
|
426 if wf.is_default_workflow_of(self.__regid__): |
|
427 return wf |
|
428 self.warning("can't find default workflow for %s", self.__regid__) |
|
429 else: |
|
430 self.warning("can't find any workflow for %s", self.__regid__) |
|
431 return None |
425 return None |
432 |
426 |
433 def possible_transitions(self, type='normal'): |
427 def possible_transitions(self, type='normal'): |
434 """generates transition that MAY be fired for the given entity, |
428 """generates transition that MAY be fired for the given entity, |
435 expected to be in this state |
429 expected to be in this state |