validation_confirmed.py 1.46 KB
from .base_validation import BaseValidation

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

        self.__confirmname      = 'confirmation_' + self.inputname
        self.__confirmvalue     = (self.__confirmname in self.allvalues) and self.allvalues[self.__confirmname] or None
        self.__message          = self.rulemessage or 'Konfirmasi :attribute tidak sama.'
        
    def validate(self):
        ok = (str(self.value) == str(self.__confirmvalue))

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

"""
eg:

def form_validator(form, value):
    cldr = colander.Invalid(form, 'Form input harus diisi')

    validations = {
        'password': {
            'rules' : confirmed', # artinya field ini membutuhkan field 'confirmation_password' dan isinya harus sama. persis seperti register
            'messages': {
                'confirmed' : 'Password tidak sama dengan Konfirmasi Password',
            }
        },
        'confirmation_password': {
            'rules' : 'required',
            'messages': {
                'required'  : 'Konfirmasi Password harus diisi',
            }
        }
    }

    valid = FormValidator(
        cldr        = cldr,
        inputvalues = value,
        validations = validations
    )
    valid.validate()

"""