Herramientas Personales
Usted está aquí: Inicio Documentación Como hacer Programación de scripts

Programación de scripts

How To para programación de scripts

Evitar la adquisición al obtener un objeto
Buscando por internet nos indican que utilicemos "aq_explicit" en cualquier objeto. Yo he podido comprobar que no funciona, finalmente me funciona este código:
objeto=getattr(carpeta_padre.aq_inner.aq_explicit,'mi_objeto_hijo')
Redirigir Plone / Zope
 return context.REQUEST.RESPONSE.redirect('url_carpeta_u_objeto')
Obtener un objeto a partir de la URL o ruta del objeto
objeto= context.restrictedTraverse('carpeta/mi_objeto')
Crear un objeto desde un script
Puede existir peculiaridades, tras crear el objeto puede que el catálogo no lo indexe. Además, en los  archetypes es necesario llamar a una funcion para marcar que el objeto no es temporal y se ha creado. Por ello recomiendo el siguiente fragmento de código
new_id='prueba_carpeta'
dest_folder.invokeFactory('Folder',new_id)
new_folder=getattr(dest_folder.aq_explicit,new_id)
if new_folder:
 new_folder.setTitle('Nuevo titulo')
 new_folder.unmarkCreationFlag()
 new_folder.reindexObject()
Ejecutar un script como manager u otro rol
Realmente se puede ejecutar con cualquier rol. Sólo hay que indicarlo en la pestaña "proxy", pero, si el script está en el sistema de archivos es necesario indicarlo en el fichero .medata mediante:
[default]
proxy=Manager,Anonymous
 
Acciones de Documento