diff --git a/gluon/packages/dal b/gluon/packages/dal index b7677e52..b6520165 160000 --- a/gluon/packages/dal +++ b/gluon/packages/dal @@ -1 +1 @@ -Subproject commit b7677e52e86955d7851dba5a162fd27b13678f9f +Subproject commit b652016533661b43fc49e48ab3112e6c684ba627 diff --git a/gluon/validators.py b/gluon/validators.py index 718758ce..3659e82d 100644 --- a/gluon/validators.py +++ b/gluon/validators.py @@ -2568,12 +2568,12 @@ class IS_DATETIME_IN_RANGE(IS_DATETIME): class IS_LIST_OF(Validator): - def __init__(self, other=None, minimum=0, maximum=100, + def __init__(self, other=None, minimum=None, maximum=None, error_message=None): self.other = other self.minimum = minimum self.maximum = maximum - self.error_message = error_message or "Enter between %(min)g and %(max)g values" + self.error_message = error_message def __call__(self, value): ivalue = value @@ -2581,9 +2581,11 @@ class IS_LIST_OF(Validator): ivalue = [ivalue] ivalue = [i for i in ivalue if str(i).strip()] if self.minimum is not None and len(ivalue) < self.minimum: - return (ivalue, translate(self.error_message) % dict(min=self.minimum, max=self.maximum)) + return (ivalue, translate(self.error_message or + 'Minimum length is %(min)s') % dict(min=self.minimum, max=self.maximum)) if self.maximum is not None and len(ivalue) > self.maximum: - return (ivalue, translate(self.error_message) % dict(min=self.minimum, max=self.maximum)) + return (ivalue, translate(self.error_message or + 'Maximum length is %(max)s') % dict(min=self.minimum, max=self.maximum)) new_value = [] other = self.other if self.other: