[Zope-CMF] Extending a Plone Object - Next problem

Alan Runyan runyaga@runyaga.com
Fri, 21 Feb 2003 12:08:37 -0600


As Florent says later.. "Plone has a bit more complexity
to its edit forms".  Just last night I wrote this HOWTO.
It is still being put on the plone.org somewhere in FAQ's
I believe.  but its not there.  I would move your
questions over to the plone-users mailing list.

from the 'lists' section of plone.org
http://plone.org/development/lists

you can get to the recent post
http://article.gmane.org/gmane.comp.web.zope.plone.documentation/204

look for
**I repurpose a content type but when I'm on a edit_form
and I click save nothing happens; or How I stopped hating
Plone for a CMF descprency because its necessary.**


I am very interested in how others have approached form validation
and decoupling the navigation targets from the xxx_edit scripts.  I
have spoken to GDavis about portal_form (which no one likes)
and he has come up with a really brilliant approach to implement
for Plone 1.1 (I hope ;-) but it extended the ActionsTool.

~runyaga

> Hi,
>
> I am now having problems creating the extended event...
>
> I created a new portal_type called myEvent based on CMF Calendar Event as
> advised by Florent.
>
> I have created a newMyEvent as
>
> # create the base object
> container.invokeFactory('Event', id)
> ob = getattr(container, id)
> # now add the properties you need
> ob.manage_addProperty('summary', '', 'text')
> # finally return the object
> return ob
>
> I changed the two myevent actions and the constrcutor path to newMyEvent.
I
> have customised myevent_edit (from plone_3rdparty), myevent_view and
> myevent_edit_form.
>
> When adding a new myEvent and clicking Save, I get no errors, but I get no
> data anywhere, just an empty myEvent. It just throws it away somewhere.
>
> What could be missing? Any ideas?
>
> The form action in myevent_edit_form is myevent_edit
>
> Thanks,
>
> - David
>
> ---
> David Rawle
> Checked for Viruses with Norton AntiVirus
> Secure Crytographic Signature (S/MIME) may be attached
>
> ----- Original Message -----
> From: "Sim Harbert" <sim@noisygecko.com>
> To: "David Rawle" <david@rawle.org.uk>
> Cc: "Florent Guillaume" <fg@nuxeo.com>; <zope-cmf@zope.org>
> Sent: Friday, February 21, 2003 4:40 PM
> Subject: Re: [Zope-CMF] Extending a Plone Object
>
>
> > This is the same thing I have been wanting to do, and I guess the
> > "scriptable type" method would work pretty well.  But...
> >
> > What I am finding out is that the hard part is getting all of the
> > editing and viewing "skins" set up.  And when I mean hard, I just mean
> > that it is not all in one nice easy to install filesystem product.  I am
> > developing on one or more Zope installations and would like to easily
> > move it to a production site.  I don't want to have to make all the
> > customizations through the ZMI for each site.  (And I do know about
> > using ZEO clients and scripting it all, but I don't have ZEO setup, and
> > would have to write a lot of scripts to do that.)
> >
> > I tried just hacking the CMFCalendar Event type directly to have custom
> > data fields.  But when Plone is being used, the skin edit forms aren't
> > the same ones that come with CMFCalendar, so that pretty much defeats my
> > original goals.  It took me a while just to figure out which
> > "event_edit" was being used.
> >
> > So I guess in the end creating my one Plone filesystem product which
> > extends sub-classes the Event type might be easiest. I guess I will try
> > that.  I have installed an PloneMinimalProduct, and will just try
> > starting with that.
> >
> > The good part is that I am quickly becoming a Plone expert.  The bad
> > part is that what I thought wouldn't be too hard to do has taken a lot
> > of my time.
> >
> > I guess this is a Plone problem, mostly, but it does involve CMF. :-)
> > But, if I come up with something that I release, I will try my darnedest
> > to make it work with non-Plone sites too.
> >
> > -Sim
> >
> > David Rawle wrote:
> >
> > >That worked beautifully...thank you so much. I have a new portal type
> based
> > >on Event...easy when you know how, huh?
> > >
> > >Cheers,
> > >
> > >- David
> > >
> > >---
> > >David Rawle
> > >Checked for Viruses with Norton AntiVirus
> > >Secure Crytographic Signature (S/MIME) may be attached
> > >
> > >----- Original Message -----
> > >From: "Florent Guillaume" <fg@nuxeo.com>
> > >Newsgroups: local.lists.zope.zope-cmf
> > >To: <zope-cmf@zope.org>
> > >Sent: Friday, February 21, 2003 3:18 PM
> > >Subject: Re: [Zope-CMF] Extending a Plone Object
> > >
> > >
> > >
> > >
> > >>Raphael Ritz  <r.ritz@biologie.hu-berlin.de> wrote:
> > >>
> > >>
> > >>>>I would like to create a new content type by adding a new field
> > >>>>
> > >>>>
> > >(summary) to
> > >
> > >
> > >>>>the standard Event object. And then create new forms based on the
> > >>>>
> > >>>>
> > >standard
> > >
> > >
> > >>>>event forms with the new field on it.
> > >>>>
> > >>>>
> > >>>Unfortunately you can't extend existing content types by simply
adding
> a
> > >>>few more
> > >>>properties (I wish there were an easy way for this).
> > >>>
> > >>>
> > >>There is a very easy way to do this built into CMF, the Scriptable
Type
> > >>Information.
> > >>
> > >>In the Types Tool, create a new Scriptable Type Information, deriving
it
> > >>from the base type you need. Name it "MyType" for instance. As
> > >>"Constructor path", type the name of a Python Script, for instance
> > >>MyType_create. Create this Python Script in the Types Tool:
> > >>
> > >>##parameters=container, id, *args, **kw
> > >># create the base object
> > >>container.invokeFactory('Some Base Portal Type', id)
> > >>ob = getattr(container, id)
> > >># now add the properties you need
> > >>ob.manage_addProperty('foo', 1, 'int')
> > >># finally return the object
> > >>return ob
> > >>
> > >>The only thing you have to be aware of is that during script
execution,
> > >>the portal_type of your object will be the base portal type and not
yet
> > >>the one of your final type.
> > >>
> > >>Florent
> > >>--
> > >>Florent Guillaume, Nuxeo (Paris, France)
> > >>+33 1 40 33 79 87  http://nuxeo.com  mailto:fg@nuxeo.com
> > >>
> > >>_______________________________________________
> > >>Zope-CMF maillist  -  Zope-CMF@zope.org
> > >>http://mail.zope.org/mailman/listinfo/zope-cmf
> > >>
> > >>See http://collector.zope.org/CMF for bug reports and feature requests
> > >>
> > >>
> > >>
> > >>
> > >
> > >
> > >
> > >_______________________________________________
> > >Zope-CMF maillist  -  Zope-CMF@zope.org
> > >http://mail.zope.org/mailman/listinfo/zope-cmf
> > >
> > >See http://collector.zope.org/CMF for bug reports and feature requests
> > >
> > >
> >
> >
> > _______________________________________________
> > Zope-CMF maillist  -  Zope-CMF@zope.org
> > http://mail.zope.org/mailman/listinfo/zope-cmf
> >
> > See http://collector.zope.org/CMF for bug reports and feature requests
> >
> >
>
>
>
> _______________________________________________
> Zope-CMF maillist  -  Zope-CMF@zope.org
> http://mail.zope.org/mailman/listinfo/zope-cmf
>
> See http://collector.zope.org/CMF for bug reports and feature requests
>