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.calz...@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@lists.plone.orghttps://lists.plone.org/mailman/listinfo/usuarios-plone > > > > _______________________________________________ > Usuarios-Plone mailing list > Usuarios-Plone@lists.plone.org > https://lists.plone.org/mailman/listinfo/usuarios-plone > >
_______________________________________________ Usuarios-Plone mailing list Usuarios-Plone@lists.plone.org https://lists.plone.org/mailman/listinfo/usuarios-plone