[Zope-CMF] Forcing a workflow state

2006-01-24 Thread Martin Aspeli

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

2006-01-24 Thread Jens Vagelpohl


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

2006-01-24 Thread Christian Scholz

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