Salome HOME
*** empty log message ***
[tools/eficas.git] / InterfaceQT4 / politiquesValidation.py
index 062f9a870cce77db7a569f16586a714264561857..3c89ba3c6ac3a999a517d327df226d35b5839013 100644 (file)
@@ -32,7 +32,7 @@ class Validation  :
   def TesteUneValeur(self,valeurentree):
          valeur,validite=self.node.item.eval_valeur(valeurentree)
          if not validite :
-                  commentaire = "impossible d'évaluer : %s " %`valeurentree`
+                  commentaire = "impossible d'évaluer : %s " %`valeurentree`
                   return valeur,validite,commentaire
 
          testtype,commentaire = self.node.item.object.verif_type(valeur)
@@ -47,11 +47,11 @@ class Validation  :
                  commentaire=" "
 
          if not validite :
-                  commentaire = "impossible d'évaluer : %s " %`valeurentree`
+                  commentaire = "impossible d'évaluer : %s " %`valeurentree`
          return valeur, validite, commentaire
 
 # ----------------------------------------------------------------------------------------
-#   Méthodes utilisées pour la manipulation des items en notation scientifique
+#   Méthodes utilisées pour la manipulation des items en notation scientifique
 #   a mettre au point
 # ----------------------------------------------------------------------------------------
   def SetValeurTexte(self,texteValeur) :
@@ -62,10 +62,14 @@ class Validation  :
                         if str(clef) != str(texteValeur) :
                            self.node.item.object.init_modif()
                            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]
+                           if not self.parent.appliEficas.dict_reels.has_key(clefobj):
+                              self.parent.appliEficas.dict_reels[clefobj] = {}
+                           self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
+                           self.parent.appliEficas.dict_reels[clefobj]
+                           if clefobj=="" : 
+                              if not self.parent.appliEficas.dict_reels.has_key(self.node.item.object.etape) :
+                                 self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
+                              self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
                            self.node.item.object.fin_modif()
          except:
             pass
@@ -74,11 +78,39 @@ class Validation  :
          valeurTexte=valeur
          if "R" in self.node.item.object.definition.type:
                   clefobj=self.node.item.object.GetNomConcept()
-                  if self.parent.dict_reels.has_key(clefobj):
-                     if self.parent.dict_reels[clefobj].has_key(valeur):
-                        valeurTexte=self.parent.dict_reels[clefobj][valeur]
+                  if self.parent.appliEficas.dict_reels.has_key(clefobj):
+                     if self.parent.appliEficas.dict_reels[clefobj].has_key(valeur):
+                        valeurTexte=self.parent.appliEficas.dict_reels[clefobj][valeur]
          return valeurTexte
 
+  def AjoutDsDictReel(self,texteValeur):
+         # le try except est nécessaire pour saisir les paramétres
+         try :
+            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.appliEficas.dict_reels.has_key(clefobj):
+                          self.parent.appliEficas.dict_reels[clefobj] = {}
+                      self.parent.appliEficas.dict_reels[clefobj][clef]=texteValeur
+                      if clefobj=="" : 
+                         if not self.parent.appliEficas.dict_reels.has_key(self.node.item.object.etape) :
+                            self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
+                         self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
+                          
+         except:
+          pass
+
+  def AjoutDsDictReelEtape(self):
+      try:
+         if self.parent.appliEficas.dict_reels.has_key(self.node.item.object) :
+            self.parent.appliEficas.dict_reels[self.node.item.sdnom]=self.parent.appliEficas.dict_reels[self.node.item.object]
+            del self.parent.appliEficas.dict_reels[self.node.item.object]
+      except :
+         pass
+
+
 #------------------------------------
 class PolitiqueUnique(Validation) :
 #------------------------------------
@@ -95,18 +127,18 @@ class PolitiqueUnique(Validation) :
          if validite :
             validite=self.node.item.set_valeur(valeur)
             if self.node.item.isvalid():
-                  commentaire = "Valeur du mot-clé enregistrée"
+                  commentaire = "Valeur du mot-clé enregistrée"
                   self.SetValeurTexte(str(valeurentree))
             else:
                   cr = self.node.item.get_cr()
-                  commentaire =  "Valeur du mot-clé non autorisée "+cr.get_mess_fatal()
+                  commentaire =  "Valeur du mot-clé non autorisée "+cr.get_mess_fatal()
                   self.node.item.set_valeur(ancienne_val)
          return validite, commentaire 
 
  
-#------------------------
-class PolitiquePlusieurs:
-#------------------------
+#--------------------------------------
+class PolitiquePlusieurs(Validation):
+#--------------------------------------
   """
   classe servant pour les entrees ne demandant qu un mot clef
   """
@@ -117,17 +149,19 @@ class PolitiquePlusieurs:
 
   def AjoutValeurs(self,listevaleur,index,listecourante):
          listeRetour=[]
-         commentaire="Nouvelle valeur acceptée"
+         commentaire="Nouvelle valeur acceptée"
          commentaire2=""
          valide=1
+         if listevaleur==None: return
+         if listevaleur=="": return
          if not( type(listevaleur)  in (types.ListType,types.TupleType)) :
             listevaleur=tuple(listevaleur)
          for valeur in listevaleur :
              # On teste le type de la valeur
+             valeurScientifique=valeur
              valide=self.node.item.valide_item(valeur)
+             print 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)
@@ -135,7 +169,7 @@ class PolitiquePlusieurs:
                    #return testtype,commentaire,"",listeRetour
                    pass
              if not valide:
-                commentaire="Valeur "+str(valeur)+ " incorrecte : ajout à la liste refusé"
+                commentaire="Valeur "+str(valeur)+ " incorrecte : ajout à la liste refusé"
                 commentaire2=self.node.item.info_erreur_item()
                 return valide,commentaire,commentaire2,listeRetour
 
@@ -146,11 +180,13 @@ class PolitiquePlusieurs:
                 # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
                 min,max = self.node.item.GetMinMax()
                 if len(listecourante) + 1 >= max :
-                   commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
+                   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
+             self.AjoutDsDictReel(valeurScientifique)
              listecourante.insert(index,valeur)
              index=index+1
              listeRetour.append(valeur)
@@ -159,7 +195,7 @@ class PolitiquePlusieurs:
 
   def AjoutTuple(self,valeurTuple,index,listecourante):
          listeRetour=[]
-         commentaire="Nouvelle valeur acceptée"
+         commentaire="Nouvelle valeur acceptée"
          commentaire2=""
          valide=1
          if valeurTuple==None: return
@@ -173,7 +209,7 @@ class PolitiquePlusieurs:
             except :
                 pass
          if not valide:
-            commentaire="Valeur "+str(valeurTuple)+ " incorrecte : ajout à la liste refusé"
+            commentaire="Valeur "+str(valeurTuple)+ " incorrecte : ajout à la liste refusé"
             commentaire2=self.node.item.info_erreur_item()
             return valide,commentaire,commentaire2,listeRetour
 
@@ -184,7 +220,7 @@ class PolitiquePlusieurs:
             # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
             min,max = self.node.item.GetMinMax()
             if len(listecourante) + 1 >= max :
-               commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
+               commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
                return valide,commentaire,commentaire2,listeRetour
          listeRetour.append(valeurTuple)
          return valide,commentaire,commentaire2,listeRetour