[Zope-CMF] Forcing a workflow state
Hi guys, I'm writing some migration code that needs to force a workflow state. That is, a given content item has a workflow with states A, B and C, and depending on some external state, I need to force it to be in state B, including having B's security settings. I've had a look at the API, but it's all very geared towards transitions rather than setting states explicitly. Before I resort to pdb, does anyone know the relevant part of the DCWorkflow API I should use to force a state? I don't mind mucking about with internals, obviously. Thanks, Martin -- (muted) ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] Forcing a workflow state
On 24 Jan 2006, at 19:36, Martin Aspeli wrote: Hi guys, I'm writing some migration code that needs to force a workflow state. That is, a given content item has a workflow with states A, B and C, and depending on some external state, I need to force it to be in state B, including having B's security settings. I've had a look at the API, but it's all very geared towards transitions rather than setting states explicitly. Before I resort to pdb, does anyone know the relevant part of the DCWorkflow API I should use to force a state? I don't mind mucking about with internals, obviously. You'll probably have to construct the dictionary that describes the state/comment/transition time etc yourself and then append it at the end of the workflow history. At least that's what we've been doing a few times for migration scripts. Then you can run the workflow security updating methods and recatalog things like allowedRolesAndUsers. jens ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
Re: [Zope-CMF] Forcing a workflow state
Hi! I'm writing some migration code that needs to force a workflow state. That is, a given content item has a workflow with states A, B and C, and depending on some external state, I need to force it to be in state B, including having B's security settings. I've had a look at the API, but it's all very geared towards transitions rather than setting states explicitly. Before I resort to pdb, does anyone know the relevant part of the DCWorkflow API I should use to force a state? I don't mind mucking about with internals, obviously. I once found some piece of code in the ATCT migrator once: def migrate_workflow(self): migrate the workflow state wfh = getattr(self.old, 'workflow_history', None) if wfh: wfh = copyPermMap(wfh) self.new.workflow_history = wfh I'd say that you might look into what workflow_history looks like. AFAIK the review_state is actually just the last entry in this and not separately saved. -- christian ___ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests