def unique_code_validator_lib(form, field): code_unique = Libelle_Opportunite.objects(name=field.data).count() if code_unique: if not form.id.data: raise wtf.ValidationError('Ce nom est deja utilise.') else: code = Libelle_Opportunite.objects.get(id=form.id.data) if code.name != field.data: raise wtf.ValidationError('Ce nom est deja utilise.')
def unique_code_validator(form, field): code_unique = LigneService.objects(sigle=field.data).count() if code_unique: if not form.id.data: raise wtf.ValidationError(u'Ce sigle est déja utilisé') else: code = LigneService.objects.get(id=form.id.data) if code.sigle != field.data: raise wtf.ValidationError(u'Ce sigle est déja utilisé.')
def unique_code_validator(form, field): code_unique = Moyen_paiement.objects(sigle=field.data).count() if code_unique: if not form.id.data: raise wtf.ValidationError('Ce sigle est deja utilise.') else: code = Moyen_paiement.objects.get(id=form.id.data) if code.sigle != field.data: raise wtf.ValidationError('Ce sigle est deja utilise.')
def validate_cidr(form, field): try: network = netaddr.IPNetwork(field.data) except (UnboundLocalError, netaddr.AddrFormatError): raise wtf.ValidationError('Unrecognised format of CIDR') if network.size < 4: raise wtf.ValidationError('Network size is lower then 4; use something like 10.1.1.1/30.') if network.size > 65536: raise wtf.ValidationError('Network size is greater then 65536')
def unique_code_validator_attr(form, field): code_unique = Attribut.objects(name=field.data).count() if code_unique: if not form.id.data: raise wtf.ValidationError(u'Ce sigle est déja utilisé.') else: code = Attribut.objects.get(id=form.id.data) if code.name != field.data: raise wtf.ValidationError(u'Ce sigle est déja utilisé.')
def unique_email_validator(form, field): """ email must be unique""" user_manager = Client.objects(email=field.data) if len(user_manager): if not form.id.data: raise wtf.ValidationError('Cette adresse email existant.') else: use = Client.objects.get(id=form.id.data) if use.email != field.data: raise wtf.ValidationError('Cette adresse email existant.')
def unique_name_validator(form, field): """ name must be unique""" data = PointDeVente.objects(Q(name=field.data)).count() if form.id.data: data_old = PointDeVente.objects.get(id=str(form.id.data)) if data_old.name != field.data and data >= 1: raise wtf.ValidationError("Nom appareil existant") else: if data >= 1 and field.data: raise wtf.ValidationError("Nom appareil existant")
def unique_email_validator_2(form, field): """ name must be unique""" data = Users.objects(Q(email=field.data)).count() if form.id.data: data_old = Users.objects.get(id=str(form.id.data)) if data_old.email != field.data and data >= 1: raise wtf.ValidationError("Adresse Email existante") else: if data >= 1: raise wtf.ValidationError("Adresse Email existante")
def unique_code_validator(form, field): code_unique = Profil.objects(name=field.data).count() if code_unique: if not form.id.data: raise wtf.ValidationError( 'Ce nom est deja utilise dans les profils.') else: code = Profil.objects.get(id=form.id.data) if code.name != field.data: raise wtf.ValidationError( 'Ce nom est deja utilise dans les profils.')
def unique_code_validator(form, field): code_unique = Domaine.objects(code=field.data) if len(code_unique): if not form.id.data: raise wtf.ValidationError( 'Ce code est deja utilise dans le domaine.') else: code = Domaine.get_by_id(int(form.id.data)) if code.code != field.data: raise wtf.ValidationError( 'Ce code est deja utilise dans le domaine.')
def unique_name_validator(form, field): """ name must be unique""" mag = Articles.objects( Q(name=field.data) & Q(type_article=form.type_article.data)).count() if form.id.data: mag_old = Articles.objects.get(id=str(form.id.data)) if mag_old.name != field.data and mag >= 1: raise wtf.ValidationError("Nom existant") else: if mag >= 1: raise wtf.ValidationError("Nom existant")
def unique_email_validator(form, field): """ email must be unique""" user_manager = Comptes.objects( Q(notification_email=field.data) ).count() if form.id.data: mag_old = Comptes.objects.get(id=str(form.id.data)) if mag_old.notification_email != field.data and user_manager >= 1: raise wtf.ValidationError("Email deja utilise dans un compte") else: if user_manager >= 1: raise wtf.ValidationError("Email deja utilise dans un compte")
def verif_dispobilite(form, field): dispo = float(field.data) - float(form.administration.data) dispo -= float(form.production.data) dispo -= float(form.formation.data) dispo -= float(form.developpement.data) if dispo > 0: raise wtf.ValidationError( 'La somme des heures de prestation n\'est pas egale aux heures disponibles' ) if dispo < 0: raise wtf.ValidationError( 'La somme des heures de prestation est superieure aux heures disponibles ' + str(dispo))
def unique_name_validator(form, field): """ name must be unique""" data = Magasins.objects( Q(name=field.data) ).count() if form.id.data: data_old = Magasins.objects.get(id=str(form.id.data)) if data_old.name != field.data and data >= 1: raise wtf.ValidationError("Nom de point de vente existant") else: if data >= 1 and field.data: raise wtf.ValidationError("Nom de point de vente existant")
def unique_name_validator(form, field): """ name must be unique""" data = Categories.objects( Q(name=field.data) & Q(type_cat=form.type_cat.data) ).count() if form.id.data: mag_old = Categories.objects.get(id=str(form.id.data)) if mag_old.name != field.data and data >= 1: raise wtf.ValidationError("Nom deja utilise") else: if data >= 1 and field.data: raise wtf.ValidationError("Nom deja utilise")
def unique_reference(form, field): if len(field.data) > 3: raise wtf.ValidationError( 'Pas plus de 03 caracteres pour une reference.') else: client = Client.objects(ref=field.data) if len(client): if not form.id.data: raise wtf.ValidationError('Reference Unique. Il en existe un.') else: use = Client.objects.get(id=form.id.data) if use.ref != field.data: raise wtf.ValidationError( 'Reference Unique. Il en existe un.')
def unique_email_validator(form, field): """ name must be unique""" user_email = Clients.objects( Q(email=field.data) & Q(type_client=form.type_client.data)).count() if form.id.data: user_manager = Clients.objects().get(id=form.id.data) if field.data != user_manager.email and user_email >= 1: raise wtf.ValidationError("Adresse Courriel existant") else: if user_email >= 1 and field.data: raise wtf.ValidationError("Adresse Courriel existant")
def controle_avance(form, field): if form.id.data and form.solde.data: besoin = BesoinFinancier.objects.get(id=form.id.data) solde = besoin.montant - besoin.paye if float(field.data) > solde: raise wtf.ValidationError( 'Le montant de l\'avance est superieur au solde')
def valid_matiere(form, field): if field.data: json_data = str(field.data) produit_compose = json.loads(json_data) if len(produit_compose) == 0 and form.type_article.data == 1: raise wtf.ValidationError( "Le produit compose doit avoir au moins un article associe")
def control_heure(form, field): if not form.derob_day.data and field.data: time = str(field.data) time = time.split(':') if int(time[0]) == 8 and int(time[1]) > 0 and not form.derob_day.data: raise wtf.ValidationError('L\'heure est superieure a la periode de travail') if int(time[0]) > 8 and not form.derob_day.data: raise wtf.ValidationError('L\'heure est superieure a la periode de travail') if int(time[0]) == 0 and int(time[1]) == 0 and not form.derob_day.data: raise wtf.ValidationError('Impossible de sauvegarder un temps null ou egale a zero') if not form.derob_day.data and not field.data: raise wtf.ValidationError('Champ Obligatoire')
def verif_sigle(form, field): pret_exist = Prestation.objects(sigle=field.data) if len(pret_exist) == 1: current = pret_exist.first() if current.id != form.id.data: raise wtf.ValidationError( 'Il existe une prestation avec le meme sigle.')
def controle_date(form, field): date_echeance = function.date_convert(field.data) if form.id.data: if form.relance.data or form.solde.data: if date_echeance < datetime.date.today(): raise wtf.ValidationError( 'La date de la relance doit etre superieur ou egale a la date en cours' )
def control_date(form, field): day = datetime.date.today().strftime('%d/%m/%Y') dt = datetime.datetime.strptime(day, '%d/%m/%Y') send_date = function.date_convert(field.data) if send_date.year != function.date_convert(dt).year: raise wtf.ValidationError( 'Cette date n\'est pas une date de l\'annee en cours')
def controle_date_end(form, field): date_start = datetime.datetime.combine( function.date_convert(form.date_start.data), datetime.datetime.min.time()) date_end = datetime.datetime.combine(function.date_convert(field.data), datetime.datetime.min.time()) if date_end < date_start: raise wtf.ValidationError( 'La date de fin doit etre > la date de debut')
def unique_name_validator(form, field): """ name must be unique""" data = Clients.objects( Q(display_name=field.data) & Q(type_client=form.type_client.data)).count() if form.id.data: data_old = Clients.objects.get(id=str(form.id.data)) if data_old.display_name != field.data and data >= 1: if int(form.type_client.data) == 1: raise wtf.ValidationError("Nom du fournisseur existant") else: raise wtf.ValidationError("Nom de client existant") else: if data >= 1: if int(form.type_client.data) == 1: raise wtf.ValidationError("Nom du fournisseur existant") else: raise wtf.ValidationError("Nom de client existant")
def control_date(form, field): day = datetime.date.today().strftime('%d/%m/%Y') dt = datetime.datetime.strptime(day, '%d/%m/%Y') start = dt - timedelta(days=dt.weekday()) end = start + timedelta(days=6) send_date = function.datetime_convert(field.data) if send_date < function.datetime_convert(start) or send_date > function.datetime_convert(end): raise wtf.ValidationError('La date doit etre comprise entre '+function.format_date(start, '%d/%m/%Y')+" et "+function.format_date(end, '%d/%m/%Y'))
def controle_date_start(form, field): date_start = datetime.datetime.combine(function.date_convert(field.data), datetime.datetime.min.time()) # if datetime.date.today() > date_start and not form.id.data: # raise wtf.ValidationError('La date de debut doit etre >= date en cours') if form.id.data: projet = Projet.objects.get(id=form.id.data) if projet.date_start > date_start: raise wtf.ValidationError( 'La nouvelle date de debut doit etre >= a la date modifie')
def control_date(form, field): day = datetime.date.today().strftime('%d/%m/%Y') dt = datetime.datetime.strptime(day, '%d/%m/%Y') start = dt - timedelta(days=dt.weekday()) end = start + timedelta(days=6) send_date = datetime.datetime.combine(function.date_convert(field.data), datetime.datetime.min.time()) send_start = datetime.datetime.combine(function.date_convert(start), datetime.datetime.min.time()) send_end = datetime.datetime.combine(function.date_convert(end), datetime.datetime.min.time()) if not form.derob.data: if send_date < send_start or send_date > send_end: raise wtf.ValidationError('La date doit etre comprise entre '+function.format_date(start, '%d/%m/%Y')+" et "+function.format_date(end, '%d/%m/%Y'))
def password_validator(form, field): """ Password must have one lowercase letter, one uppercase letter and one digit.""" # Convert string to list of characters password = list(field.data) password_length = len(password) # Count lowercase, uppercase and numbers lowers = uppers = digits = 0 for ch in password: # if ch.islower(): lowers+=1 if ch.isupper(): uppers += 1 if ch.isdigit(): digits += 1 # Password must have one lowercase letter, one uppercase letter and one digit is_valid = password_length >= 6 and uppers and digits if not is_valid: raise wtf.ValidationError( 'Le mot de passe doit avoir plus de 6 caracteres avec une lettre minuscule, une lettre majuscule et un chiffre.' )
def exist_date(form, field): date_field = datetime.datetime.combine(function.date_convert(field.data), datetime.datetime.min.time()) exist_ferier = Ferier.objects(date=date_field) if len(exist_ferier): raise wtf.ValidationError('Cette date a deja ete cree')