sexta-feira, 22 de janeiro de 2010

Alterando Estado (review_state) de um Objeto do Plone via Programação

Você quer alterar um objetvo de esboço público para publicado no Plone 2.5, mas quer fazer isso via programação (script python) e não sabe como? Leia abaixo então.

Antes de mais nada, eu sei que isso funciona no Plone 2.5. No resto eu não sei se vai funcionar, mas o que você precisa fazer é utilizar o Workflow para mudar o estado do objeto. Até onde eu sei, não dá para fazer isso diretamente no objeto.
Então, em posse do objeto e não da referência dele no catálogo, você faz o seguinte:

context.portal_workflow.doActionFor(obj, 'publish');

Preste atenção. Você está usando uma action do seu workflow. O estado do objeto é "published", mas a action é "publish". Para tornar o objeto privado, você precisa fazer um "hide"