At first thanks villas for the correction of the boolean 'multiple'
argument.
DenesL I agree that "multiple should mean 1 or more, not zero or
more."
Making though the following test:
>>> IS_IN_SET(['max', 'john'])('')
('', 'value not allowed')
>>> IS_IN_SET(['max', 'john'], multiple=True)('')
([], None)
seems that the zero option strangely is allowed for the multiple case.
According to:
http://www.web2py.com/examples/static/epydoc/web2py.gluon.validators.IS_IN_SET-class.html#__call__
this is due to lines:
327 if self.multiple and (value == None or value ==
''):
328 return ([], None)
I think should return (value, self.error_message), as is the case for
multiple=False
>
> Because multiple is not False, but I am not sure about the logic.
> No selection should still fail because it is not in the set,
> i.e. multiple should mean 1 or more, not zero or more.
>