selectors.py
branchstable
changeset 6908 f07dc0e8948d
parent 6905 fe9fd048e64c
child 6919 8fd6921f3e7c
--- a/selectors.py	Thu Jan 27 13:43:49 2011 +0100
+++ b/selectors.py	Thu Jan 27 14:10:44 2011 +0100
@@ -1186,11 +1186,13 @@
     """
     def __init__(self, *states):
         def score(entity, states=set(states)):
-            trinfo = entity.cw_adapt_to('IWorkflowable').latest_trinfo()
-            try:
-                return trinfo.new_state.name in states
-            except AttributeError:
-                return None
+            adapted = entity.cw_adapt_to('IWorkflowable')
+            trinfo = adapted.latest_trinfo()
+            if trinfo is None: # entity is probably in it's initial state
+                statename = adapted.state
+            else:
+                statename = trinfo.new_state.name
+            return statename in states
         super(is_in_state, self).__init__(score)