btw you can do requires=IS_IN_SET(...,multiple=True,_and=IS_NOT_EMPTY())
On Nov 17, 1:33 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > DenesL I agree that "multiple should mean 1 or more, not zero or more." > > I disagree. Multiple means 0 or more. Anyway, we cannot change this. > > On Nov 17, 12:06 pm, Kostas M <kmo...@hotmail.com> wrote: > > > 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.... > > 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. > >