[Zope-CMF] Extending a Plone Object - Next problem
Fri, 21 Feb 2003 17:14:41 -0000
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
ob = getattr(container, id)
# now add the properties you need
ob.manage_addProperty('summary', '', 'text')
# finally return the object
I changed the two myevent actions and the constrcutor path to newMyEvent. I
have customised myevent_edit (from plone_3rdparty), myevent_view and
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
Checked for Viruses with Norton AntiVirus
Secure Crytographic Signature (S/MIME) may be attached
----- Original Message -----
From: "Sim Harbert" <firstname.lastname@example.org>
To: "David Rawle" <email@example.com>
Cc: "Florent Guillaume" <firstname.lastname@example.org>; <email@example.com>
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.
> David Rawle wrote:
> >That worked beautifully...thank you so much. I have a new portal type
> >on Event...easy when you know how, huh?
> >- David
> >David Rawle
> >Checked for Viruses with Norton AntiVirus
> >Secure Crytographic Signature (S/MIME) may be attached
> >----- Original Message -----
> >From: "Florent Guillaume" <firstname.lastname@example.org>
> >Newsgroups: local.lists.zope.zope-cmf
> >To: <email@example.com>
> >Sent: Friday, February 21, 2003 3:18 PM
> >Subject: Re: [Zope-CMF] Extending a Plone Object
> >>Raphael Ritz <firstname.lastname@example.org> 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
> >>>>event forms with the new field on it.
> >>>Unfortunately you can't extend existing content types by simply adding
> >>>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
> >>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 Guillaume, Nuxeo (Paris, France)
> >>+33 1 40 33 79 87 http://nuxeo.com mailto:email@example.com
> >>Zope-CMF maillist - Zope-CMF@zope.org
> >>See http://collector.zope.org/CMF for bug reports and feature requests
> >Zope-CMF maillist - Zope-CMF@zope.org
> >See http://collector.zope.org/CMF for bug reports and feature requests
> Zope-CMF maillist - Zope-CMF@zope.org
> See http://collector.zope.org/CMF for bug reports and feature requests