From 97dba6b68e3a9099a56cd66c76517b919ea08bd7 Mon Sep 17 00:00:00 2001 From: Christian Caremoli <> Date: Wed, 24 May 2006 17:00:15 +0000 Subject: [PATCH] CCAR: adaptation validation liste partielle a nouveau mecanisme de validation --- Editeur/composimp.py | 36 ++++++++++++++++-------------------- Editeur/newsimppanel.py | 23 +---------------------- Editeur/plusieurspanel.py | 6 ++---- 3 files changed, 19 insertions(+), 46 deletions(-) diff --git a/Editeur/composimp.py b/Editeur/composimp.py index b257fb93..ea4b9909 100644 --- a/Editeur/composimp.py +++ b/Editeur/composimp.py @@ -259,33 +259,26 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): 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) @@ -327,14 +320,17 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): 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 : diff --git a/Editeur/newsimppanel.py b/Editeur/newsimppanel.py index 8164f926..ea414a03 100644 --- a/Editeur/newsimppanel.py +++ b/Editeur/newsimppanel.py @@ -74,13 +74,6 @@ class newSIMPPanel(panels.OngletPanel): 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'): """ @@ -103,25 +96,11 @@ class newSIMPPanel(panels.OngletPanel): 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) diff --git a/Editeur/plusieurspanel.py b/Editeur/plusieurspanel.py index 19bc5be8..a8c7bad1 100644 --- a/Editeur/plusieurspanel.py +++ b/Editeur/plusieurspanel.py @@ -55,6 +55,8 @@ class PLUSIEURS_Panel(newSIMPPanel): 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 : @@ -96,7 +98,6 @@ class PLUSIEURS_Panel(newSIMPPanel): 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 @@ -118,9 +119,6 @@ class PLUSIEURS_Panel(newSIMPPanel): 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 -- 2.39.2