Am Freitag, 30. Dezember 2005 13:30 schrieb Philipp von Weitershausen: > Florian Lindner wrote: > > my first use case is that I want to enhance the HomefolderManager to make > > it possible to select something else than a Folder to be created > > automatically. Right now I have forked a version of the HomefolderManager > > and just changed in the code. But I would like to have a more generic > > solution and I'll also commit it back to the trunk. > > For that I want all classes implementing IContainer (and IContentType ?) > > and let the user select on in the configuration dialog of the > > HomefolderManager. More use caess probably show up in my project later, > > but nothing fixed at this time. > > So what you want is to create objects. Classes are just an > implementation detail to creating objects :). Factories create objects, > whether they're from a class is immaterial. > > So, what you want is not a list of classes but a list of factories that > can create IContainers. This is possible by using > zapi.getUtilitiesFor(IFactory) and then checking each factory's > getInterfaces() method whether IContainer is a part of the returned > result. I would probably base an implementation of all on the > UtilityVocabulary.
Hi, I do it this way now: utils = getUtilitiesFor(IFactory) self.objects = {} for i in utils: if IContainer in i[1].getInterfaces(): the UtilityVocabulary gives the same result as getUtilitiesFor. But that does not list all classes, for example there is no class of the normal Folder. Florian _______________________________________________ Zope3-users mailing list Zope3-users@zope.org http://mail.zope.org/mailman/listinfo/zope3-users