[Zope-dev] z3c.form - extraction from sequence widget

Christian Theune ct at gocept.com
Sat Aug 30 19:51:07 EDT 2008


On Thu, 2008-08-28 at 22:55 +0100, Martin Aspeli wrote:
> Hermann Himmelbauer wrote:
> > Am Donnerstag 28 August 2008 02:35:28 schrieb Marius Gedminas:
> >> On Wed, Aug 27, 2008 at 05:15:48PM -0700, Stephan Richter wrote:
> >>> On Wednesday 27 August 2008, Martin Aspeli wrote:
> >>>> This means that if the request contains the empty-marker only (no
> >>>> selection was made) for a checkbox widget (say), then the return value
> >>>> is [], rather than default (NOVALUE).
> >>>>
> >>>> Is that a bug? I have a custom checkbox widget derived from the
> >>>> standard checkbox widget, (z3c.formwidget.query, in fact), and I never
> >>>> get any "required missing" exceptions, even when I untick all the
> >>>> checkboxes and click OK.
> >>>>
> >>>> Am I missing something?
> >>> I think you have a point. Have you tried changing the behavior to
> >>> return "default" and see what tests fail? If no major failures come out
> >>> of this, I would say change it.
> >> Wait a second, maybe I'm misunderstanding this, but I certainly oppose
> >> any change that would make an unchecked checkbox an error during form
> >> validation.
> >>
> >> A required Bool field can have two values: True or False.  One is
> >> represented by a checked checkbox, the other by an unchecked checkbox.
> >> An unchecked checkbox is not missing input and should not trigger
> >> "required missing" errors.
> > 
> > I see this the same way - in my application I have a similar case (Accept some 
> > policy by a checkbox-click). I solved this simply by checking the value in 
> > the action handler and raising a WidgetExecutionError if it is unchecked.
> 
> The notion of a "required" boolean field is a bit weird anyway.

I remember Windows UI introducing 3-state-checkboxes back in ... uuh ...
I think I saw it with Delphi 2.

They had the ability to say unchecked, checked and grey meaning: the
user didn't say anything.

> I think you *could* interpret it so that a boolean field that's required 
> really means "you have to tick this box" (e.g. an "I agree to these 
> terms and conditions" type scenario).
> 
> To put it the other way - how would you have a non-required boolean 
> field represented by a checkbox? You really need three states then: True 
> False and None, which you can't get with a checkbox.

Actually that shouldn't be None. It's more that the attribute wouldn't
be set in the first place as None can't be globally used as a marker for
'no user input'.

Christian

-- 
Christian Theune · ct at gocept.com
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20080831/9148dd3f/attachment.bin 


More information about the Zope-Dev mailing list