validation_list.py 752 Bytes
from .base_validation import BaseValidation

class ValidationList(BaseValidation):
    def __init__(self, cldr, params = {}):
        super(ValidationList, self).__init__(cldr = cldr, params = params)

        self.__value_list   = isinstance(self.rulevalue, str) and self.rulevalue.split(',') or list(self.rulevalue)
        self.__message      = self.rulemessage or ':attribute tidak tersedia.'

    def validate(self):
        ok  = True
        if (self.value is None) or (self.value == ''):
            ok = not self.required
        else:
            ok = (str(self.value) in self.__value_list)

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