Martijn Faassen a écrit :
On Dec 7, 2007 1:54 PM, Christophe Combelles <[EMAIL PROTECTED]> wrote:
2- Then I'm trying to create a form for a single Object field. I've understood
that this case should be handled by a subform. So I could create such a thing by
using a template for the main form, and a subtemplate for the subform. But then,
I've begun using z3c.formui to have a better template for the main form, but now
how do I display the subform in the div-based formui template?
The real final thing I'm trying to do is just a form for a
with IStuff being just made of 3 TextLine fields.
Doing this is quite easy with the formlib, or maybe I got used to it, but I'd
really like to be able to do all the same things with z3c.form
Just so you know I really look for such features too. z3c.form simply
declares that subforms are the way to go,
but when I look at example code I see rather involved ways information
has to pass back and forth between subform
and form. I hope more automation is possible here, while hopefully
retaining the increased control that z3c.form offers. Something
like an object widget that lets you specify a sub-form and template
manually. I looked at z3c.form to find such increased control for one
project, but the lack of automation really killed that for this
I've begun implementing an ObjectWidget today for z3c.form.
I wanted to finish it to be able to use it in a small contracted project, but it
seems it will take more time, and I'm in a real emergency so I reverted back my
project to a classical formlib/BrowserPage/macros layout to be able to deliver
it in time. However, I will work on it again by the end of the week.
You can already take a look at it here
I've tried to follow Stephan's advice, which is using a subform.
My idea is the following: since widgets already are IFormAware, which means they
can access the parentform through a 'form' attribute', I have added another
interface ISubformAware that offers a 'subform' attribute just for the ObjectWidget.
The 'subform' attribute allows the objectwidget to remember the subform it is
associated to, but the subform is initially stored in the form under the same
name as the field, just like it is done in the subform example. So I might
expect it to be backward compatible.
The subform is created automatically during the update() of the widget,
and a template of the objectwidget can easily loop over the subform with
tal:repeat="widget view/subform/widgets/values" to render the widgets.
The doctest is already working for a simple addform, but it is incomplete, and I
don't know where, when and how to create the associated object. The user should
probably provide a factory, just as with the formlib.
comments and ideas are welcome
Zope3-users mailing list