diff options
Diffstat (limited to 'src/mailman/model/workflow.py')
| -rw-r--r-- | src/mailman/model/workflow.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/mailman/model/workflow.py b/src/mailman/model/workflow.py index d9f23f53b..6ac3fa76a 100644 --- a/src/mailman/model/workflow.py +++ b/src/mailman/model/workflow.py @@ -51,15 +51,18 @@ class WorkflowStateManager: @dbconnection def save(self, store, name, token, step=None, data=None): """See `IWorkflowStateManager`.""" - state = store.query(WorkflowState).get((name, token)) - if state is None: - state = WorkflowState(name=name, token=token, step=step, data=data) - store.add(state) - else: - state.step = step - state.data = data + state = WorkflowState(name=name, token=token, step=step, data=data) + store.add(state) @dbconnection def restore(self, store, name, token): """See `IWorkflowStateManager`.""" - return store.query(WorkflowState).get((name, token)) + state = store.query(WorkflowState).get((name, token)) + if state is not None: + store.delete(state) + return state + + @dbconnection + def count(self, store): + """See `IWorkflowStateManager`.""" + return store.query(WorkflowState).count() |
