[Zope3-Users] z3c.form - howto ignore the context for single widgets in an Edit form?

Stephan Richter srichter at cosmos.phy.tufts.edu
Fri Feb 8 11:06:05 EST 2008

On Friday 08 February 2008, Hermann Himmelbauer wrote:
> What's your opinion on this, Stephan?

One important design goal for z3c.form is not to be JS dependent. This is what 
we developed z3c.formjs for. 

Also, remember that a widget is something different in z3c.form. Taking the 
E-mail widget example, we still only have a TextFieldWidget but might have a 
specific EMailValidator registered for this widget.

From this point of view, I think it would be cool, if we could have a 
ConfirmationWidget, which simply displays another widget twice. This 
could then either be a PasswordWidget or TextFieldWidget. The cool part about 
it is that the constructor of the confirmation widget could be smart to take 
the passed in field into account.

So here is how I would like this to look:

class ConfirmationWidget(...)

   widget = None # The widget that we want to display twice.


def FieldConfirmationWidget(field, request):
    widget = FieldWidget(field, ConfirmationWidget(request))
    widget.widget = zope.component.getMultiAdapter(
        (field, request), IFieldWidget)
    return widget

The challenge is to have unique names for the widget and its confirmation and 
do all the updating correctly. You probably also need a custom validator that 
first compares the two values to be equal and then forwards the validation.

I would love to see this widget in z3c.form. Of course, I am also still 
waiting for the ObjectWidget. :-)

Stephan Richter
Web Software Design, Development and Training
Google me. "Zope Stephan Richter"

More information about the Zope3-users mailing list