I understand what you explain but what about if I install a new product?
Rewrite the factory?
I think is not a good solution don't you think?
----- Original Message -----
From: "Max M" <[EMAIL PROTECTED]>
To: "Garito" <[EMAIL PROTECTED]>
Cc: "Lista Oficial de Zope" <[EMAIL PROTECTED]>
Sent: Friday, March 12, 2004 10:34 AM
Subject: Re: [Zope-dev] How to create a product with all_meta_types and the
> Garito wrote:
> > Hi Chris!
> > Want I want exactly is to create a product's object by his name
> > programmatically not by the construction form
> > Is this posible?
> You cannot know the name of the constructor function, unless you read
> the source.
> The constructors added to Zope during the product initialisation can be
> both forms and actual function methods. There is no way of knowing
> which. And there can be more than two.
> So you would need to write a factory function based on the info you can
> get from the source. Ie. in an external method. Something like::
> def portal_factory(self, parent, portal_type, id='', title='',):
> "Adds the content. A factory function."
> # generate a general id
> if id == '':
> id = self.ZopeTime().strftime(portal_type + '_%Y%m%d_%H%M%S')
> zope_factory = parent.manage_addProduct
> # add the content
> if 'Document' == portal_type:
> elif 'Some Type' == portal_type:
> zope_factory['Some Type'].manage_addSomeTypeAction(id)
> raise 'Error adding portal_type'
> # get the newly added content
> obj = getattr(parent, id)
> # Add the title
> obj.title = title
> return obj
> hilsen/regards Max M, Denmark
> IT's Mad Science
Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists -