# au mot-clé courant
# ----------------------------------------------------------------------------------------
-# def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
-# if self.parent.modified == 'n' : self.parent.init_modif()
-# if name != None:
-# valeur =name
-# else :
- #XXX Pourquoi proceder ainsi ? Il n'est pas possible de mettre
- # None comme valeur du mot cle.
- # Probablement que ce debranchement permet de mettre record_valeur
- # en call back, il faut donc aller chercher la valeur dans l'entry
-# valeur= self.entry.get()
-# self.entry.delete(0,END)
- #XXX Pour permettre la mise a None du mot cle, on remet None si valeur == ''
-# if valeur == '':valeur=None
-# self.node.item.set_valeur(valeur,evaluation='non')
-# 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()
-
- def record_valeur_deja_evaluee(self,name=None,mess='Valeur du mot-clé enregistrée'):
+ def reset_old_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
"""
Enregistre val comme valeur de self.node.item.object SANS
faire de test de validité ni ré-évaluer l'ancienne valeur
permet de rester avec des valeurs non entrees et de ne pas
ré-évaluer des entiers par exemple
"""
- print "debut reset"
if self.parent.modified == 'n' : self.parent.init_modif()
self.node.item.set_valeur(name)
self.parent.appli.affiche_infos(mess)
else :
self.node.parent.verif()
self.node.update()
- if self.node.item.isvalid():
- self.node.parent.select()
def record_valeur(self,name=None,mess='Valeur du mot-clé enregistrée'):
"""
Enregistre val comme valeur de self.node.item.object
en evaluant l item et en le validant
"""
- print "ici"
if self.parent.modified == 'n' : self.parent.init_modif()
if name != None:
valeur = name
+ validite = 1
else :
- valeur= self.entry.get()
+ valeurentree= self.entry.get()
self.entry.delete(0,END)
- if valeur == '': valeur=None
- valeur,validite=self.node.item.eval_valeur(valeur)
-
- if self.node.item.is_list() :
- verification=self.node.item.valide_liste_complete(valeur)
- else :
- verification=self.node.item.valide_item(valeur)
- if verification :
+ if valeurentree == '': valeurentree=None
+ valeur,validite=self.node.item.eval_valeur(valeurentree)
+ if not validite :
+ valeur= self.entry.get()
+ commentaire = "impossible d'évaluer : %s " %`valeurentree`
+ self.parent.appli.affiche_infos(commentaire)
+
+ if validite :
+ if self.node.item.is_list() :
+ validite=self.node.item.valide_liste_complete(valeur)
+ else :
+ validite=self.node.item.valide_item(valeur)
+ if validite :
self.node.item.set_valeur(valeur)
self.parent.appli.affiche_infos(mess)
if self.node.item.get_position()=='global':
et l'affecte au mot-clé courant.
"""
l1_valeurs = self.Liste_valeurs.get_liste()
- # PN : remplacement des paramétres par leur nom (cf get_liste)
l_valeurs=[]
for val in l1_valeurs :
if val != '' and val != None :
- if val.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
- v=val.nom
- else:
- v=val
- l_valeurs.append(v)
+ l_valeurs.append(val)
longueur = len(l_valeurs)
if longueur < min or longueur > max :
valeur = l_valeurs[0]
else:
valeur = None
+
self.parent.appli.affiche_infos("Valeur acceptée")
self.record_valeur(valeur)
if self.node.item.isvalid():
-1 si le validateur trouve la liste incorrecte
"""
- #test1=0
- test2=0
commentaire="Valeur incorrecte : ajout à la liste refusé"
+ testvalide=1
if name != None :
valeur = name
else:
- valeur = self.get_valeur()
+ valeurentree = self.get_valeur()
+ if valeur == '': valeur=None
+ valeurentree,testvalide=self.node.item.eval_valeur(valeur)
if (valeur == None or valeur =="") :
encorevalide = -2
commentaire = "Pas de saisie des valeurs nulles"
- if (encorevalide ==0) :
- commentaire=self.node.item.info_erreur_item()
- if (encorevalide == -1) :
- commentaire=self.node.item.info_erreur_liste()
- min,max = self.node.item.GetMinMax()
-
- #if (encorevalide == 1) :
- # if self.node.item.wait_reel():
- # valeur = self.traite_reel(valeur)
- # if self.node.item.wait_geom():
- # val,test1 = valeur,1
- # else:
- # val,test1 = self.node.item.eval_valeur(valeur)
+ if testvalide :
+ if (encorevalide ==0) :
+ commentaire=self.node.item.info_erreur_item()
+ if (encorevalide == -1) :
+ commentaire=self.node.item.info_erreur_liste()
+ min,max = self.node.item.GetMinMax()
- #if test1 :
- test2 = self.node.item.object.verif_type(valeur)
+ testtype = self.node.item.object.verif_type(valeur)
- if test2 :
- liste_valeurs = self.Liste_valeurs.get_liste()
- if len(liste_valeurs) >= max :
+ if testtype :
+ liste_valeurs = self.Liste_valeurs.get_liste()
+ if len(liste_valeurs) >= max :
commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
+ else :
+ liste_valeurs.append(valeur)
+ self.Liste_valeurs.put_liste(liste_valeurs)
+ self.erase_valeur()
+ commentaire="Nouvelle valeur acceptée"
else :
- liste_valeurs.append(valeur)
- self.Liste_valeurs.put_liste(liste_valeurs)
- self.erase_valeur()
- commentaire="Nouvelle valeur acceptée"
- else :
commentaire ="Type de la valeur incorrecte"
+ else :
+ commentaire = "impossible d'évaluer : %s " %`valeurentree`
self.erase_valeur()
self.parent.appli.affiche_infos(commentaire)
# la valeur sélectionnée n'est pas dans la liste
return
self.Liste_valeurs.put_liste(liste_valeurs)
- #self.display_valeur('')
self.display_valeur(self.selected_valeur)
self.selected_valeur = None
#l_choix=list(objet_mc.into)
l_valeurs = self.node.item.GetListeValeurs()
l_choix= self.node.item.get_liste_possible(l_valeurs)
- l_choix.sort()
# reinitialisation de l_valeurs
l_valeurs = self.node.item.GetListeValeurs()
def add_valeur_plusieurs_base(self,name=None):
if name != None :
- valentree = name
+ valeur = name
else:
- valentree = self.get_valeur()
- valeur,validite=self.node.item.eval_valeur(valentree)
+ valeurentree = self.get_valeur()
+ if valeurentree == '': valeur=None
+ valeur,validite=self.node.item.eval_valeur(valeurentree)
+ if not validite :
+ commentaire = "impossible d'évaluer : %s " %`valeur`
+ self.parent.appli.affiche_infos(commentaire)
+ return
+
encorevalide=self.node.item.valide_item(valeur)
- print encorevalide
if encorevalide :
listecourante=self.Liste_valeurs.get_liste()
encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
- si non, restaure l'ancienne valeur
"""
if self.parent.modified == 'n' : self.parent.init_modif()
+ anc_val = self.node.item.get_valeur()
valeurentree = self.get_valeur()
self.erase_valeur()
- anc_val = self.node.item.get_valeur()
- valeur,test=self.node.item.eval_valeur(valeurentree)
+ valeur,validite=self.node.item.eval_valeur(valeurentree)
+ if not validite :
+ commentaire = "impossible d'évaluer : %s " %`valeur`
+ self.parent.appli.affiche_infos(commentaire)
+ return
- print "VALID_VALEUR"
- if test :
- test = self.node.item.set_valeur(valeur)
+ test = self.node.item.set_valeur(valeur)
- print "apres set valeur"
- print valeur
- print test
if not test :
- print "LLLLLA"
mess = "impossible d'évaluer : %s " %`valeur`
- self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée :"+mess)
+ self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée : "+mess)
elif self.node.item.isvalid() :
- print "LLLLLLLLLL"
self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée')
if self.node.item.get_position()=='global':
self.node.etape.verif_all()
self.node.update()
self.node.parent.select()
else :
- print " PASSE LA"
cr = self.node.item.get_cr()
mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
- self.record_valeur_deja_evaluee(anc_val,mess=mess)
+ self.reset_old_valeur(anc_val,mess=mess)
class UNIQUE_INTO_Panel(UNIQUE_Panel):
"""
else :
cr = self.node.item.get_cr()
mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
- self.record_valeur_deja_evaluee(anc_val,mess=mess)
+ self.reset_old_valeur(anc_val,mess=mess)
def makeValeurPage(self,page):
"""
else :
cr = self.node.item.get_cr()
mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
- self.record_valeur_deja_evaluee(anc_val,mess=mess)
+ self.reset_old_valeur(anc_val,mess=mess)
return
if self.node.item.get_position()=='global':
self.node.etape.verif_all()
else :
cr = self.node.item.get_cr()
mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
- self.record_valeur_deja_evaluee(anc_val,mess=mess)
+ self.reset_old_valeur(anc_val,mess=mess)
return
if self.node.item.get_position()=='global':
self.node.etape.verif_all()
valide=1
if self.definition.validators :
valide=self.definition.validators.verif(item)
- print "RRRRRRRRRRR"
- print item
- print valide
return valide
def valide_liste_partielle(self,item,listecourante):
valeur = tuple(valeur)
else :
valeur=valeur[0]
- print valeur
- retour=self.object.set_valeur(valeur,"non")
- if self.definition.validators :
- print self.definition.validators
+ retour=self.object.set_valeur(valeur)
validite=0
if self.object.isvalid():
validite=1
- retour=self.object.set_valeur(valeuravant,"non")
+ retour=self.object.set_valeur(valeuravant)
return validite
def valide_liste_complete (self,valeur):
pass
def isvalid(self):
- print "ISVALID"
valide=self.object.isvalid()
- print valide
return self.object.isvalid()
def eval_valeur(self,valeur):
valeurretour,validite= self.eval_valeur_item(valeur)
if validite == 0 :
valeurretour = None
- print "UUUUUUU"
- print valeurretour,validite
return valeurretour,validite
def eval_valeur_item(self,valeur):
if type(valeur) == types.StringType and self.object.wait_TXM():
essai_valeur="'" + valeur + "'"
valeurretour,validite= self.object.eval_valeur(essai_valeur)
- if valeur.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
- valeurretour=val.nom
+ if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'):
validite=1
if self.wait_co():
try:
valeurretour=str(valeur)
validite=1
- print "XXXXXXXX"
- print valeur
- print type(valeur)
- print valeurretour
- print type(valeurretour)
- print validite
return valeurretour,validite