[Zope-CMF] Re: How to use "typesTool.manage_addTypeInformation" ?
Raphael Ritz
r.ritz at biologie.hu-berlin.de
Fri May 6 06:08:49 EDT 2005
KLEIN Stéphane wrote:
> Hello,
>
> I try to build CMF Product.
If you start learning this you might also want to take
a look at
http://www.neuroinf.de/LabTools/MySite
Raphael
>
> I read chapiter 13 "Writing a Product in Python" of "The Definitive
> Guide to Plone" book
> (http://docs.neuroinf.de/PloneBook/ch12.rst?image_scale=narrow).
>
> I look the install method of Extensions/Install.py file.
>
> I the book, I've this code :
>
> def install(self):
> out = []
> typesTool = getToolByName(self, 'portal_types')
> skinsTool = getToolByName(self, 'portal_skins')
>
> if id not in typesTool.objectIds():
> typesTool.manage_addTypeInformation(
> add_meta_type = factory_type_information['meta_type'],
> id = factory_type_information['id']
> )
> out.append('Registered with the types tool')
> else:
> out.append('Object "%s" already existed in the types tool' % (id))
>
> When I use this code, I've this error :
>
> """
> 2005-05-05 19:36:33
> failed:
> Traceback (most recent call last):
>
> File
> "/home/harobed/newzope/Products/CMFQuickInstallerTool/QuickInstallerTool.py",
> line 235, in installProduct
> res=install()
>
> File
> "/home/harobed/myzope/lib/python/Products/ExternalMethod/ExternalMethod.py",
> line 232, in __call__
> return f(self.aq_parent.this(), *args, **kw)
>
> File
> "/home/harobed/newzope/Products/ZHelloWorld/Extensions/Install.py", line
> 22, in install
> )
>
> File "/home/harobed/newzope/Products/CMFCore/TypesTool.py", line 598,
> in manage_addTypeInformation
> raise ValueError, (
>
> ValueError: Meta type ZHelloWorld is not a type class.
> """
>
> ZHelloWorld is my product name.
>
> Now, in source code tarbal example, I've this :
>
> from Products.CMFCore.TypesTool import FactoryTypeInformation as fti_klass
>
> ...
>
> def install(self):
> out = []
> typesTool = getToolByName(self, 'portal_types')
> skinsTool = getToolByName(self, 'portal_skins')
>
> if id not in typesTool.objectIds():
> typesTool.manage_addTypeInformation(
> fti_klass.meta_type,
> id = plone_product_name
> )
> out.append('Registered with the types tool')
> else:
> out.append('Object "%s" already existed in the types tool' % (id))
>
> Here, the value of fti_klass.meta_type is "Factory-based Type Information".
>
> What is the good method ? Why I must add type class with fti_klass
> meta_type name and not my meta_type value ?
>
> Thanks for your help,
> -- Stéphane
>
> _______________________________________________
> Zope-CMF maillist - Zope-CMF at lists.zope.org
> http://mail.zope.org/mailman/listinfo/zope-cmf
>
> See http://collector.zope.org/CMF for bug reports and feature requests
>
>
More information about the Zope-CMF
mailing list