Charlie Clark wrote:
This is probably necessary anyway. I'm not sure whether it's right to
try and go straight to z3c.form. My understanding is that there isn't
a great deal of difference between the two libraries so hopefully an
implementation could live with both. I don't think that everyone has
moved onto z3c.form - certainly that wasn't my impression at
Europython. It would be nice to have a formlib based CMF 2.2 and I
think I now understand most of this well enough to contribut. We could
possibly onto z3c.form in 2.3 which might have replaced zope.formlib
in Zope by then.
I doubt that formlib will be replaced by z3c.form. Rather, it just seems
that everyone prefers to work with the latter and so the former is
becoming less relevant.
They are definitely different, and don't share any code as far as I
know, but if you know one, moving to the other is pretty trivial.
z3c.form also has good (if a bit too abundant) documentation.
Thus, if CMF hasn't yet picked a form library in a release, then you
could try to learn from Plone's mistakes and not jump on a sinking ship. :)
How about we use a naming convention that's linked to the factory
that's persisted in the FTI, i.e. we look for a view called "add-
<factory_name>" and link to that if it's available.
You might as well stick with actions if you're going to do that. I've
been experimenting with the following
portal_type = self.request.form.get('portal_type')
at = getToolByName(self.context, 'portal_actions')
actions = at.listFilteredActionsFor(self.context)
addable = actions.get('add', )
for a in addable:
if a['id'] == portal_type:
return request.response("%s/%s" (%self.context.absolute_url(),
It's workable but so easy to break as it relies on "add" actions
having the same name as the portal_type. It makes much more sense to
me to have this on the type info: if I ask the type tool for the
factory, surely I can also ask it for the view?
You mean we have an action on the FTI object with category 'add' and
name == FTI name/portal_type? That still means having to get that link
right, though (a typo in the FTI name or a rename of the FTI makes it
break), and I question whether you ever need all the other info that
actions provide. We already have ways to control add permissions and
other filters for what's addable where.
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book
Zope-CMF maillist - Zope-CMF@lists.zope.org
See http://collector.zope.org/CMF for bug reports and feature requests