l_valeurs=[]
if (len(liste)% self.nbValeurs != 0):
message="La cardinalité n'est pas correcte, la dernière valeur est ignorée"
- #self.Commentaire.setText(QString(commentaire))
- self.editor.affiche_infos(commentaire)
+ self.editor.affiche_infos(message)
for i in range(len(liste)/ self.nbValeurs) :
if (self.nbValeurs==2):
t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1])
self.LBValeurs.clear()
listeValeurs=self.node.item.GetListeValeurs()
for valeur in self.DecoupeListeValeurs(listeValeurs):
- self.LBValeurs.insertItem(str(valeur))
+ if type(valeur) == types.TupleType:
+ TupleEnTexte="("
+ for val in valeur :
+ TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+ TupleEnTexte = TupleEnTexte[0:-2] +")"
+ self.LBValeurs.insertItem(TupleEnTexte)
+ else :
+ self.LBValeurs.insertItem(QString(str(valeur)))
def Ajout1Valeur(self,liste=[]):
# Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
if liste == [] :
- liste,validite=SaisieValeur.TraiteLEValeur(self)
+ liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self)
+ if validite :
+ for val in texteBrut.split(',') :
+ print val
+ self.politique.AjoutDsDictReel(val)
else :
validite=1
if validite == 0 : return
index=self.LBValeurs.currentItem() +1
indexListe=index*self.nbValeurs
if index == 0 :
- index = -1
+ index = len(self.listeValeursCourantes)
indexListe=len(self.listeValeursCourantes)
listeVal=[]
for valeur in self.listeValeursCourantes :
listeVal.append(valeur)
- validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal)
+ validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index+1,listeVal)
self.Commentaire.setText(comm2)
if not validite :
self.editor.affiche_infos(comm)
l1=self.listeValeursCourantes[:indexListe]
l3=self.listeValeursCourantes[indexListe:]
for valeur in self.DecoupeListeValeurs(listeRetour):
- self.LBValeurs.insertItem(QString(str(valeur)),index)
+ if type(valeur) == types.TupleType:
+ TupleEnTexte="("
+ for val in valeur :
+ TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+ TupleEnTexte = TupleEnTexte[0:-2] +")"
+ self.LBValeurs.insertItem(TupleEnTexte,index)
+ else :
+ self.LBValeurs.insertItem(QString(str(valeur)),index)
index=index+1
self.listeValeursCourantes=l1+listeRetour+l3
def BuildLBValeurs(self):
# redefinit en raison de l heritage par monFonctionPanel
- SaisieValeur.BuildLBValeurs(self)
+ SaisieValeur.BuildLBValeurs(self,politique=self.politique)
def BOkPourListePressed(self):
if self.listeValeursCourantes == [] :
def Ajout1Valeur(self,valeur=None):
- liste,validite=SaisieValeur.TraiteLEValeur(self,valeur)
+ print "je passe par la"
+ liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self,valeur)
+ print texteBrut
if validite == 0 : return
if liste ==[] : return
+ for val in texteBrut.split(',') :
+ print val
+ self.politique.AjoutDsDictReel(val)
index=self.LBValeurs.currentItem() + 1
listeVal=[]
self.initVal()
def readVal(self):
+ if self.file == "" : return
f = open(self.file, "rb")
self.texte = f.read()
f.close()
def BImportSelPressed(self):
text=str(self.TBtext.selectedText())
self.textTraite=text
+ if self.textTraite == "" : return
self.Traitement()
def BImportToutPressed(self):
liste1=self.textTraite.split(self.separateur)
liste=[]
for val in liste1 :
- val=str(val)
- try :
- val=eval(val,{})
- except :
- pass
- liste.append(val)
+ if val != '' and val != ' ' and val != self.separateur :
+ val=str(val)
+ try :
+ val2=eval(val,{})
+ liste.append(val)
+ except :
+ pass
self.FonctPanel.AjoutNValeur(liste)
+ print liste
def SetValeurTexte(self,texteValeur) :
try :
if "R" in self.node.item.object.definition.type:
- if texteValeur[0] != "'":
+ if str(texteValeur)[0] != "'":
clef=eval(texteValeur)
if str(clef) != str(texteValeur) :
self.node.item.object.init_modif()
except:
pass
+ def AjoutDsDictReel(self,texteValeur):
+ try :
+ #if 1 :
+ if "R" in self.node.item.object.definition.type:
+ if str(texteValeur)[0] != "'":
+ clef=eval(texteValeur)
+ if str(clef) != str(texteValeur) :
+ clefobj=self.node.item.object.GetNomConcept()
+ if not self.parent.dict_reels.has_key(clefobj):
+ self.parent.dict_reels[clefobj] = {}
+ self.parent.dict_reels[clefobj][clef]=texteValeur
+ self.parent.dict_reels[clefobj]
+ except:
+ #else:
+ #print "pb ds try de AjoutDsDictReel"
+ pass
+
def GetValeurTexte(self,valeur) :
valeurTexte=valeur
if "R" in self.node.item.object.definition.type:
return validite, commentaire
-#------------------------
-class PolitiquePlusieurs:
-#------------------------
+#-------------------------------------
+class PolitiquePlusieurs (Validation):
+#-------------------------------------
"""
classe servant pour les entrees ne demandant qu un mot clef
"""
def AjoutValeurs(self,listevaleur,index,listecourante):
+ print "debut politique pour ", listevaleur
listeRetour=[]
commentaire="Nouvelle valeur acceptée"
commentaire2=""
if not( type(listevaleur) in (types.ListType,types.TupleType)) :
listevaleur=tuple(listevaleur)
for valeur in listevaleur :
+ valeurScientifique=valeur
# On teste le type de la valeur
valide=self.node.item.valide_item(valeur)
if not valide :
- #print self.__class__
- #if not testtype :
try :
valeur,valide=self.node.item.eval_valeur(valeur)
valide,commentaire = self.node.item.object.verif_type(valeur)
# On valide la liste obtenue
encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante)
+ print "listecourante", listecourante
if not encorevalide :
commentaire2=self.node.item.info_erreur_liste()
# On traite le cas ou la liste n est pas valide pour un pb de cardinalite
commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
return valide,commentaire,commentaire2,listeRetour
if len(listecourante) + 1 > min :
+ commentaire=""
return valide,commentaire,commentaire2,listeRetour
# On ajoute la valeur testee a la liste courante et a la liste acceptee
+ print "dans politique"
+ print valeurScientifique
+ self.AjoutDsDictReel(valeurScientifique)
+ print valeur
+ print self.GetValeurTexte(valeur)
+ print self.parent.dict_reels
listecourante.insert(index,valeur)
index=index+1
listeRetour.append(valeur)
self.listBoxASSD.setCurrentItem(0)
- def BuildLBValeurs(self):
+ def BuildLBValeurs(self,politique=None):
self.LBValeurs.clear()
listeValeurs=self.node.item.GetListeValeurs()
for valeur in listeValeurs:
- self.LBValeurs.insertItem(str(valeur))
+ if politique :
+ self.LBValeurs.insertItem(str(self.politique.GetValeurTexte(valeur)))
+ else :
+ self.LBValeurs.insertItem(str(valeur))
if listeValeurs != None and listeValeurs != [] :
self.LBValeurs.setCurrentItem(len(listeValeurs) - 1)
valeurBrute=str(self.LEValeur.text())
else :
valeurBrute=valeurTraitee
- if valeurBrute == str("") : return listeValeurs,1
+ if valeurBrute == str("") : return listeValeurs,1,valeurBrute
try :
valeur=eval(valeurBrute,{})
except :
except :
commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python"
self.editor.affiche_infos(commentaire)
- return listeValeurs,0
+ return listeValeurs,0,valeurBrute
else : # ce n'est pas un tuple à la mode aster
else:
listeValeurs.append(valeur)
- return listeValeurs,1
+ return listeValeurs,1,valeurBrute
class SaisieSDCO :