[Usuarios Plone] Restringir los tipos de contenidos de una carpeta
Noe Misael Nieto Arroyo
noe at iservices.com.mx
Fri Mar 18 21:23:07 UTC 2011
Ademas de las anteriores soluciones, pueden ir a portal_types y entrar al
tipo de dato, por ejemplo 'Course Folder' y después seleccionan los tipos de
contenidos permitidos en "Allowed content types" . No olviden picarle en
"Save Changes".
Cuando esten satisfechos con los resultados, van a
http://misitio//portal_setup/manage_exportSteps seleccionan "Types Tool" y
le pican en "Export selected steps" hasta el final de la página.
Plone les va a ofrecer un archivo zip para descarga. Lo abren y buscan el
xml correspondiente a su tipo de contenido.
---
Noe
El 17 de marzo de 2011 10:37, Ariel Calzada <ariel.calzada at gmail.com>escribió:
> Hola lista!
>
> Les envio un ejemplo en donde creo un objeto tipo "Grupos" e inmediatamente
> haga que el objeto solo pueda agregar "Folder".
>
> from Products.ATContentTypes.lib import constraintypes
>
>
> def eventoClienteCreado(obj, event):
> obj.invokeFactory ( "grupos", id="grupos", title="Grupos")
> obj.setConstrainTypesMode(constraintypes.ENABLED)
> obj.setLocallyAllowedTypes(['Folder'])
> obj.reindexObject()
>
>
> Espero sirva de guía
>
> Saludos,
> Ariel
>
>
> On 03/17/2011 11:31 AM, Héctor Velarde wrote:
>
> yo tengo el mismo problema que Leonardo:
>
> estoy creando un folder común y silvestre y quiero que ese folder contenga
> sólo cursos, un tipo de contenido que he creado para eso.
>
> lo que llevo hecho es lo siguiente:
>
> en mi config.py he creado una variable que contiene la información
> necesaria para crear la carpeta:
>
> # config.py
>
> FOLDERS = (
> dict(
> ctype = 'Folder',
> name = 'extension',
> title = 'Extensión',
> description = 'Cursos de actualización recibidos',
> locallyAllowedTypes = ['Course'],
> ),
> )
>
> hay un tipo de contenido que, al crearse, dispara un mecanismo para crear
> los folders internos:
>
> # folder.py
>
> def at_post_create_script(self):
> for f in FOLDERS:
> _createObjectByType(f['ctype'], self, f['name'])
> obj = self[f['name']]
> obj.setTitle(f['title'])
> obj.setDescription(f['description'])
> obj.setConstrainTypesMode(constraintypes.ENABLED)
> obj.setLocallyAllowedTypes(f['locallyAllowedTypes'])
> obj.setImmediatelyAddableTypes(f['locallyAllowedTypes'])
> obj.reindexObject()
>
> hasta aquí todo bien; he creado unas pruebas para comprobar que todo
> funciona:
>
> # test_folder.py
>
> class TestCVFolder(TestCase):
>
> def afterSetUp(self):
> _createObjectByType('CVupnFolder', self.folder, 'cv')
> self.cv = getattr(self.folder, 'cv')
> # create folders
> self.cv.at_post_create_script()
>
> def testExtensionFolderAllowedContentTypes(self):
> allowed_types = ('Course', )
> folder = self.cv.extension
>
> self.failUnlessEqual(folder.getLocallyAllowedTypes(),
> allowed_types)
> self.failUnlessEqual(folder.getImmediatelyAddableTypes(),
> allowed_types)
> self.assertRaises(Unauthorized,
> folder.invokeFactory, 'Document', 'foo')
> try:
> folder.invokeFactory('Course', 'course', title='course')
> except Unauthorized:
> self.fail()
>
> para hacer que la prueba pasara fue necesario lo siguiente en la
> declaración del tipo de contenido:
>
> # Course.xml
>
> <property name="global_allow">True</property>
>
> hasta acá todo bien, mi problema es que al entrar en la carpeta de marras,
> no aparece la opción de agregar cursos...
>
>
> _______________________________________________
> Usuarios-Plone mailing list
> Usuarios-Plone at lists.plone.orghttps://lists.plone.org/mailman/listinfo/usuarios-plone
>
>
>
> _______________________________________________
> Usuarios-Plone mailing list
> Usuarios-Plone at lists.plone.org
> https://lists.plone.org/mailman/listinfo/usuarios-plone
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.plone.org/pipermail/plone-usuarios-plone/attachments/20110318/2df31454/attachment-0002.html>
More information about the Usuarios-Plone
mailing list