else :
validite=self.node.item.valide_item(valeur)
commentaire=self.node.item.info_erreur_item()
-
+
if validite :
self.node.item.set_valeur(valeur)
self.parent.appli.affiche_infos(mess)
self.parent.appli.affiche_infos("Valeur acceptée")
self.record_valeur(valeur)
- if self.node.item.isvalid():
- self.node.parent.select()
+ #if self.node.item.isvalid():
+ # self.node.parent.select()
# fermeture de la fenêtre de sélection
if self.ajout_valeurs:
self.ajout_valeurs.quit()
commentaire="Valeur incorrecte : ajout à la liste refusé"
testvalide=1
+ # Lecture de la zone de saisie et evaluation si nécessaire
if name != None :
valeur = name
else:
if (not testvalide) :
commentaire = "impossible d'évaluer : %s " %`valeurentree`
+ # Pas de traitement des valeurs nulles ( a priori clic involontaire
if (valeur == None or valeur =="") :
commentaire = "Pas de saisie des valeurs nulles"
encorevalide = -2
commentaire=self.node.item.info_erreur_item()
if (encorevalide == -1) :
commentaire=self.node.item.info_erreur_liste()
+ # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
+ min,max = self.node.item.GetMinMax()
+ if len(self.Liste_valeurs.get_liste()) >= max :
+ commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
if testvalide and (encorevalide == 1):
min,max = self.node.item.GetMinMax()
commentaire ="Type de la valeur incorrecte"
#self.erase_valeur()
- print "AVANT PB"
- print encorevalide
- print commentaire
self.parent.appli.affiche_infos(commentaire)
def sup_valeur_sans_into(self,name=None):
listecourante=self.Liste_valeurs.get_liste()
encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
if not encorevalide : encorevalide = -1
- print "ICI ", encorevalide
self.add_valeur_sans_into(valeur,encorevalide)
def select_in_file(self):
"""
valide=1
if self.definition.validators :
- valide=self.definition.validators.verif_item(item)
-
- # if not self.definition.validators.is_list():
- # try :
- # valide=self.definition.validators.verif(item)
- # except :
- # valide=0
+ try :
+ valide=self.definition.validators.verif_item(item)
+ except :
+ valide = 0
return valide
def valide_liste_partielle(self,item,listecourante):
validite=self.definition.validators.valide_liste_partielle(valeur)
if validite==0:
min,max=self.GetMinMax()
-
if len(valeur) < min :
validite=1
retour=self.object.set_valeur(valeuravant)
return 1
return 0
+ def info_erreur_item(self):
+ chaine=""
+ a=1
+ for v in self.validators:
+ if v.info_erreur_item() != "" :
+ if a==1:
+ chaine=v.info_erreur_item()
+ a=0
+ else:
+ chaine=chaine+" \n ou "+ v.info_erreur_item()
+ return chaine
+
+ def info_erreur_liste(self):
+ chaine=""
+ a=1
+ for v in self.validators:
+ if v.info_erreur_liste() != "" :
+ if a==1:
+ chaine=v.info_erreur_liste()
+ a=0
+ else:
+ chaine=chaine+" \n ou "+v.info_erreur_liste()
+
def is_list(self):
"""
Si plusieurs validateurs sont reliés par un OU
return v_into
validator_into.extend(v_into)
return validator_into
+
class AndVal(Valid):
def info(self):
return "\n et ".join([v.info() for v in self.validators])
+ def info_erreur_item(self):
+ chaine=""
+ a=1
+ for v in self.validators:
+ if v.info_erreur_item() != "" :
+ if a==1:
+ chaine=v.info_erreur_item()
+ a=0
+ else:
+ chaine=chaine+" \n et "+v.info_erreur_item()
+ return chaine
+
+ def info_erreur_liste(self):
+ a=1
+ for v in self.validators:
+ if v.info_erreur_liste() != "" :
+ if a==1:
+ chaine=v.info_erreur_liste()
+ a=0
+ else:
+ chaine=chaine+" \n et "+v.info_erreur_liste()
+ return chaine
+
def verif_item(self,valeur):
for validator in self.validators:
v=validator.verif_item(valeur)
else:
return []
+ def info_erreur_liste(self):
+ return "La cardinalité de la liste doit être comprise entre %s et %s" % (self.min,self.max)
+
class ListVal(Valid):
def is_list(self):
return 1
if e in self.into:
liste_choix.append(e)
return liste_choix
+
+ def info_erreur_item(self):
+ return "La valeur n'est pas dans la liste des choix possibles"
class LongStr(ListVal):
def info_erreur_item(self):
return "Longueur de la chaine incorrecte"
def verif_item(self,valeur):
- if len(valeur) < self.low :return 0
- if len(valeur) > self.high:return 0
+ low=self.low
+ high=self.high
+ if valeur[0]=="'" and valeur[-1]=="'" :
+ low=low+2
+ high=high+2
+ if len(valeur) < low :return 0
+ if len(valeur) > high:return 0
return 1
class RangeVal(ListVal):
if valeur > self.high:return 0
return 1
+ def info_erreur_item(self) :
+ return "La valeur doit être comprise entre %s et %s" % (self.low,self.high)
+
class TypeVal(ListVal):
def verif_item(self,valeur):
try:
liste_choix.append(e)
return liste_choix
-
+ def info_erreur_liste(self) :
+ return "La liste doit être en ordre "+self.ord