[Zope3-dev] Re: <vocabulary> BBB

Philipp von Weitershausen philipp at weitershausen.de
Wed May 17 14:32:19 EDT 2006


dev at projekt01.ch wrote:
>> I'm working on removing BBB warnings of our current app for 3.3.
>> For the <vocabulay> directive it was possible to give the 
>> factory some parameters like this:
>>
>> <vocabulary
>>       name="doctype"
>>       factory="..vocab.ContainerVocabulary"
>>       containerName="doctype" />
>>
>> Now, with the <utility> directive that's not possible.
> 
> Write a own factory like:
> 
> class DocTypeContainerVocabulary(ContainerVocabulary):
> 
>   def __init__(self):
> 	super(DocTypeContainerVocabulary, self).__init__()
> 	self.containerName = 'doctype'
> 
> and also you have to *patch* your class with :
> 
> classProvides(DocTypeContainerVocabulary, IVocabularyFactory)

This is unnecessarily complicated. Simply do:

class DocTypeContainerVocabulary(ContainerVocabulary):
    containerName = 'doctype'
    zope.interface.classProvides(IVocabularyFactory)

Btw, the "classProvides" thing isn't "patching". Not sure what you mean,
Roger, but it looks like you wanted to give this a negative connotation.

Philipp



More information about the Zope3-dev mailing list