validation_less.py 1011 Bytes
from .base_validation import BaseValidation


class ValidationLess(BaseValidation):
    def __init__(self, cldr, params=None):
        super(ValidationLess, self).__init__(cldr=cldr, params=params)
        
        self.__message = self.rulemessage or 'Value :attribute harus lebih dari :greater.'

    def validate(self):
        if (self.value is None) or (self.value == ''):
            ok = not self.required
        else:
            # ok = (str(self.value) < str(self.rulevalue))
            vt = self.value_type()
            if vt == 'string':
                ok = (str(self.value) < str(self.rulevalue))
            else:
                v = vt == 'float' and float(self.value) or int(self.value)
                r = vt == 'float' and float(self.rulevalue) or int(self.rulevalue)
                ok = (v < r)

        if not ok:
            self.colander_invalid[self.inputname] = self.__message.replace(':greater', str(self.rulevalue)).replace(':attribute', self.title)
            
        return ok