[Zope-dev] Re: How to create a product with all_meta_types and the

sureshvv shardasuresh at hotmail.com
Mon Mar 22 23:02:12 EST 2004


Maybe you can use the:

invokeFactory(id=xx, type=xx) method.

"Garito" <garito at sistes.net> wrote in message
news:008001c40816$42b09cf0$6800a8c0 at telemako...
> Hi Max
> 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?
>
> Thanks!!
>
> ----- Original Message ----- 
> From: "Max M" <maxm at mxm.dk>
> To: "Garito" <garito at sistes.net>
> Cc: "Lista Oficial de Zope" <zope-dev at zope.org>
> 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:
> >          zope_factory['Document'].manage_addDocumentAction(id)
> >
> >      elif 'Some Type' == portal_type:
> >          zope_factory['Some Type'].manage_addSomeTypeAction(id)
> >
> >      else:
> >          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
> >
> > http://www.mxm.dk/
> > IT's Mad Science
> >
>
>
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev at zope.org
> http://mail.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope )
>






More information about the Zope-Dev mailing list