def get_liste_possible(self,listeActuelle=[]):
if hasattr(self.definition.validators,'into'):
- self.get_definition().into=self.definition.validators.into
- valeurspossibles = self.get_definition().into
- # CCAR : Ne serait-il pas preferable d'appeler get_into ?
- #valeurspossibles=self.get_into(listeActuelle)
+ valeurspossibles = self.definition.validators.into
+ else:
+ valeurspossibles = self.get_definition().into
+ #On ne garde que les items valides
listevalideitem=[]
for item in valeurspossibles:
encorevalide=self.valide_item(item)
if encorevalide :
listevalideitem.append(item)
- # on ne verifie pas la liste des choix si max = 1
- # (sinon cela enleve tous les choix possibles)
- min,max=self.GetMinMax()
- if max != 1 :
- listevalideliste=[]
- for item in listevalideitem:
- listetravail=[]
- for item2 in listeActuelle : listetravail.append(item2)
- encorevalide=self.valide_liste_partielle(item,listetravail)
- if encorevalide :
- listevalideliste.append(item)
- else :
- listevalideliste=listevalideitem
+
+ #on ne garde que les choix possibles qui passent le test de valide_liste_partielle
+ listevalideliste=[]
+ for item in listevalideitem:
+ encorevalide=self.valide_liste_partielle(item,listeActuelle)
+ if encorevalide :
+ listevalideliste.append(item)
return listevalideliste
def get_liste_param_possible(self):
- #
liste_param=[]
for param in self.object.jdc.params:
encorevalide=self.valide_item(param.valeur)
return valide
def valide_liste_partielle(self,item,listecourante):
- valeur=listecourante
+ #On protege la liste en entree en la copiant
+ valeur=listecourante[:]
valeur.append(item)
- valeur = tuple(valeur)
return self.object.valid_valeur_partielle(valeur)
def valide_liste_complete (self,valeur):
return self.object.valid_valeur(valeur)
+ def valide_val (self,valeur):
+ return self.object.valid_val(valeur)
+
def info_erreur_item(self) :
commentaire=""
if self.definition.validators :
if self.parent.modified == 'n' : self.parent.init_modif()
self.node.item.set_valeur(name)
self.parent.appli.affiche_infos(mess)
- #if self.node.item.get_position()=='global':
- #self.node.etape.verif_all()
- #elif self.node.item.get_position()=='global_jdc':
- #self.node.racine.verif_all()
- #else :
- #self.node.parent.verif()
- #self.node.update()
def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
"""
self.parent.appli.affiche_infos(commentaire)
if validite :
- if self.node.item.is_list() :
- validite=self.node.item.valide_liste_complete(valeur)
- commentaire=self.node.item.info_erreur_liste()
- else :
- validite=self.node.item.valide_item(valeur)
- commentaire=self.node.item.info_erreur_item()
+ validite,commentaire=self.node.item.valide_val(valeur)
if validite :
self.node.item.set_valeur(valeur)
self.parent.appli.affiche_infos(mess)
- #if self.node.item.get_position()=='global':
- #self.node.etape.verif_all()
- #elif self.node.item.get_position()=='global_jdc':
- #self.node.racine.verif_all()
- #else :
- #self.node.parent.verif()
- #self.node.update()
- #if self.node.item.isvalid():
- # self.node.parent.select()
else :
self.parent.appli.affiche_infos(commentaire)
l1_valeurs = self.Liste_valeurs.get_liste()
else:
l1_valeurs = liste
+
+ #nettoyage de la liste
l_valeurs=[]
for val in l1_valeurs :
if val != '' and val != None :
0 si le validateur trouve la valeur de l item incorrecte
-1 si le validateur trouve la liste incorrecte
"""
-
commentaire="Valeur incorrecte : ajout à la liste refusé"
testvalide=1
else :
testtype = self.node.item.object.verif_type(valeur)
if not testtype :
- if valeur.__class__.__name__ in ( 'PARAMETRE', 'ITEM_PARAMETRE') :
- testtype = 1
- else :
commentaire ="Type de la valeur incorrecte"
encorevalide=-2