]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
modif Yoann
authorpascale.noyret <pascale.noyret@edf.fr>
Mon, 3 Apr 2017 12:31:28 +0000 (14:31 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Mon, 3 Apr 2017 12:31:28 +0000 (14:31 +0200)
17 files changed:
Accas/__init__NonAster.py [deleted file]
Ihm/I_MCSIMP.py
InterfaceQT4/browser.py
InterfaceQT4/composimp.py
InterfaceQT4/configuration.py
InterfaceQT4/editor.py
InterfaceQT4/gereListe.py
InterfaceQT4/monGroupeOptionnel.py
InterfaceQT4/monWidget4a6RadioButton.py
InterfaceQT4/monWidgetCommande.py
InterfaceQT4/monWidgetOptionnel.py
InterfaceQT4/monWidgetPlusieursBase.py
InterfaceQT4/monWidgetRadioButton.py
InterfaceQT4/monWidgetSimpBase.py
Noyau/N_ENTITE.py
Noyau/N_MCLIST.py
Noyau/N_SIMP.py

diff --git a/Accas/__init__NonAster.py b/Accas/__init__NonAster.py
deleted file mode 100644 (file)
index 15ba86d..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-# Copyright (C) 2007-2015   EDF R&D
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-"""
-   Ce package contient les classes qui seront effectivement utilisees dans les applications.
-   C'est dans ce package que sont realisees les combinaisons de classes de base
-   avec les classes MIXIN qui implementent les fonctionnalites qui ont ete separees
-   du noyau pour des raisons de modularite afin de faciliter la maintenance et
-   l'extensibilite.
-
-   De plus toutes les classes utilisables par les applications sont remontees au
-   niveau du package afin de rendre le plus independant possible l'utilisation des
-   classes et leur implementation.
-"""
-
-# permet de se proteger de l'oubli de carte coding
-# ce warning deviendra fatal en python 2.4
-import warnings
-warnings.filterwarnings('error','Non-ASCII character.*pep-0263',DeprecationWarning)
-
-from A_JDC_CATA import JDC_CATA
-from A_OPER import OPER
-from A_PROC import PROC
-from A_MACRO import MACRO
-from A_FORM import FORM
-from A_BLOC import BLOC
-from A_FACT import FACT
-from A_SIMP import SIMP
-from A_EVAL import EVAL
-from A_NUPLET import NUPL
-
-from A_JDC import JDC
-from A_ETAPE import ETAPE
-from A_PROC_ETAPE import PROC_ETAPE
-from A_MACRO_ETAPE import MACRO_ETAPE
-from A_FORM_ETAPE import FORM_ETAPE
-from A_MCFACT import MCFACT
-from A_MCLIST import MCList
-from A_MCBLOC import MCBLOC
-from A_MCSIMP import MCSIMP
-
-# Les règles
-from A_AU_MOINS_UN import AU_MOINS_UN
-from A_MEME_NOMBRE import MEME_NOMBRE
-from A_AU_PLUS_UN import AU_PLUS_UN
-from A_UN_PARMI import UN_PARMI
-from A_PRESENT_PRESENT import PRESENT_PRESENT
-from A_PRESENT_ABSENT import PRESENT_ABSENT
-from A_EXCLUS import EXCLUS
-from A_ENSEMBLE import ENSEMBLE
-from A_A_CLASSER import A_CLASSER
-from A_AVANT import AVANT
-
-from A_ASSD import ASSD,assd
-from A_ASSD import GEOM,geom
-# Pour le moment on laisse fonction (ceinture et bretelles)
-from A_ASSD import FONCTION, fonction
-from A_ASSD import formule
-from A_ASSD import formule_c
-from A_ASSD import CO
-
-from Noyau.N__F import _F
-
-from Noyau.N_Exception import AsException
-from Noyau.N_utils import AsType
-
-from A_VALIDATOR import OrVal,AndVal,OnlyStr
-from A_VALIDATOR import OrdList,NoRepeat,LongStr,Compulsory
-from A_VALIDATOR import RangeVal, EnumVal, TypeVal, PairVal
-from A_VALIDATOR import CardVal, InstanceVal
-from A_VALIDATOR import VerifTypeTuple
-
-# On remplace la factory des validateurs initialement dans Noyau par celle
-# de A_VALIDATOR
-import A_VALIDATOR
-import Noyau.N_ENTITE
-Noyau.N_ENTITE.ENTITE.factories['validator']=A_VALIDATOR.validatorFactory
-
-from A_SENSIBILITE import CONCEPT_SENSIBLE, REUSE_SENSIBLE, DERIVABLE
-
-from Extensions.niveau import NIVEAU
-from Extensions.etape_niveau import ETAPE_NIVEAU
-from Extensions.commentaire import COMMENTAIRE
-from Extensions.parametre import PARAMETRE  
-from Extensions.parametre_eval import PARAMETRE_EVAL
-from Extensions.commande_comm import COMMANDE_COMM 
-from Extensions.mcnuplet import MCNUPLET
-
index dd02069d3cdf4cbcc0541b2e4ab42a11e918aeea..6fd1fac937b7b7b7fdd0321f731eb12d8f85d589 100644 (file)
@@ -64,6 +64,8 @@ class MCSIMP(I_OBJECT.OBJECT):
           if hasattr(type_permis, "__class__") and type_permis.__class__.__name__ == 'Matrice':
              self.monType=type_permis
              return self.valideMatrice(cr=cr)
+      if self.definition.siValide != None :
+            self.definition.siValide(self)
       return Validation.V_MCSIMP.MCSIMP.isvalid(self,cr=cr)
 
   def GetNomConcept(self):
index 35d45b08b2fdb8b9c6920dbc01c8d8a65324a230..418d0bc8c9a4069eef957bb316478453d4f9c4e7 100644 (file)
@@ -324,6 +324,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         # posera des pb si un code decide d appeler FIN un mot clef
         # on resoudera a ce moment la
         # pour l instant pas de poussiere sous le tapis
+        #print( 'debut affichePanneau pour', self.item.nom)
         if  not(self.item.isactif()) : 
             from .monWidgetInactif import MonWidgetInactif
             self.fenetre = MonWidgetInactif(self,self.editor)
@@ -357,8 +358,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
         self.tree.inhibeExpand=True
         self.tree.expandItem(self)
         self.tree.inhibeExpand=False
-        #print "fin de affichePanneau", self.item.nom
-        #print "______________________________"
+        #print( 'fin affichePanneau pour', self.item.nom)
           
 
     def createPopUpMenu(self):
index 84f443328ae8ff179ab2939b4c54ea670c9f7f70..3f3e5a6e4e95ac176e089b458014438a5f87540c 100644 (file)
@@ -68,14 +68,27 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
         #print "____________________________", monNom, self.item.wait_co() 
         #print "____________________________", monNom, self.item.wait_assd() 
         # Gestion d'une seule valeur (eventuellement un tuple ou un complexe)
+        if maDefinition.into != [] and maDefinition.into != None:
+            if type(maDefinition.into) ==types.FunctionType : monInto=maDefinition.into() 
+            else : monInto = maDefinition.into
+
+        # a faire ailleurs
+        #if maDefinition.intoExe != None :
+        #    print (self.item)
+        #    monInto = maDefinition.intoExe(self.item)
+        #    maDefinition.into = monInto
+        #    from Noyau.N_VALIDATOR import  IntoProtocol
+        #    monObjet.intoProto = IntoProtocol("into", into=maDefinition.into, val_min=maDefinition.val_min, val_max=maDefinition.val_max)
+
+
         if maDefinition.max == 1 :
 
         # A verifier
           if maDefinition.into != [] and maDefinition.into != None:
-            if len(maDefinition.into) < 4 :
+            if len(monInto) < 4 :
               from .monWidgetRadioButton import MonWidgetRadioButton
               widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
-            elif len(maDefinition.into) < 7 :
+            elif len(monInto) < 7 :
               from .monWidget4a6RadioButton import MonWidget4a6RadioButton
               widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             else :
index 85e9dd56d1f8291c76a4439e83d284cf84b6f2a6..8b7bb7d5ae9dec3a4fe1b5c169b8926628192320 100644 (file)
@@ -109,6 +109,7 @@ class CONFIG_BASE(object):
       self.translatorFichier=None
       self.dicoImages= {}
       self.simpleClic= False
+      self.afficheOptionnelVide=False
 
  
   #--------------------------------------
index ede146cbf47496b2663c6a89c790728fa0661dc8..34f26de935b9984c4ee70d1dbf5b90756d5b2c19 100755 (executable)
@@ -105,6 +105,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
         self.closeFrameRechercheCommande=self.appliEficas.CONFIGURATION.closeFrameRechercheCommande
         self.closeArbre=self.appliEficas.CONFIGURATION.closeArbre
         self.affiche=self.appliEficas.CONFIGURATION.affiche
+        self.afficheOptionnelVide=self.appliEficas.CONFIGURATION.afficheOptionnelVide
         self.nombreDeBoutonParLigne = self.appliEficas.CONFIGURATION.nombreDeBoutonParLigne
         self.dicoImages = self.appliEficas.CONFIGURATION.dicoImages
         self.simpleClic = self.appliEficas.CONFIGURATION.simpleClic
@@ -1395,22 +1396,61 @@ class JDCEditor(Ui_baseWidget,QWidget):
         if ouChercher ==None : print ('SOUCI'); return
         monMC=ouChercher.get_child(MCFils,restreint="oui")
         if monMC== None : monMC= ouChercher.addentite(MCFils)
+
         monMC.definition.into=valeurs
+        from Noyau.N_VALIDATOR import  IntoProtocol
+        monMC.definition.intoProto = IntoProtocol("into", into=monMC.definition.into, val_min=monMC.definition.val_min, val_max=monMC.definition.val_max)
         monMC.state='changed'
         monMC.isvalid()
 
+    #----------------------------------------------------#
+    def reCalculeValiditeMCApresChgtInto(self,nomEtape,MCFils,listeAvant=()):
+    #----------------------------------------------------#
+        for e in self.jdc.etapes:
+            if e.nom == nomEtape : ouChercher=e; break
+        
+        for mot in listeAvant :
+            try :
+              ouChercher=ouChercher.get_child(mot,restreint="oui")
+            # Le mot clef n est pas la
+            except : return 0
+        try :
+           monMC=ouChercher.get_child(MCFils,restreint="oui")
+        # Le mot clef n est pas la
+        except : return 0
+
+        #print ('________',monMC)
+        if hasattr(monMC.definition,'into') :
+           if type(monMC.definition.into) ==types.FunctionType : maListeDeValeur=monMC.definition.into()
+           else : maListeDeValeur=monMC.definition.into
+        else :
+           return 0
+        
+        monMC.state='changed'
+        return 1
+
+
     #-------------------------------------#
     def changeIntoDefMC(self,etape,listeMC,valeurs):
     #-------------------------------------#
         definitionEtape=getattr(self.jdc.cata[0],etape)
         ouChercher=definitionEtape
         if len(listeMC) > 1 :
+
            for mc in listeMC[0:-1]:
              mcfact=ouChercher.entites[mc]
              ouChercher=mcfact
            
         mcAccas=ouChercher.entites[listeMC[-1]]
+
+        if hasattr(mcAccas,'into') : oldValeurs=mcAccas.into
+        else : oldValeurs=None
+        if oldValeurs==valeurs : return 0
+
         mcAccas.into=valeurs
+        from Noyau.N_VALIDATOR import  IntoProtocol
+        mcAccas.intoProto = IntoProtocol("into", into=valeurs, val_min=mcAccas.val_min, val_max=mcAccas.val_max)
+        return 1
 
     #-------------------------------------------------------------#
     def deleteDefinitionMC(self,etape,listeAvant,nomDuMC):
index 418fa27d767b3d25ec0adbe1b64e9a4ded5b812c..6b568d25d781d37e16a72ca56739e802c3e398e0 100644 (file)
@@ -197,6 +197,7 @@ class GereListe(object):
 
    def moinsPushed(self):
        # on supprime le dernier
+       if self.NumLineEditEnCours == 0 : return
        if self.NumLineEditEnCours==self.indexDernierLabel : 
           nomLineEdit=self.nomLine+str(self.indexDernierLabel)
           courant=getattr(self,nomLineEdit)
index 9cc037e48664c0d8358f0ba951739934cd88ff1f..2d5972b29762e2c5feb320394302e2ad33a31361 100644 (file)
@@ -78,7 +78,7 @@ class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel):
   """
   """
   def __init__(self,liste,parentQt,parentMC):
-     #print "dans init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom
+     #print "dans init de monWidgetOptionnel ", parentQt, liste,parentMC
      QWidget.__init__(self,None)
      self.setupUi(self)
      self.listeChecked=[]
@@ -88,14 +88,20 @@ class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel):
      self.cb=None
      self.parentQt=parentQt
      self.parentMC=parentMC
-     self.afficheTitre()
-     if liste != [] : self.affiche(liste)
-     else : self.MCOptionnelLayout.insertWidget(0,QLabel(tr('Pas de MC Optionnel')))
+     if liste != [] : 
+        self.affiche(liste)
+        self.afficheTitre()
+     elif self.parentQt.parentQt.afficheOptionnelVide != False : 
+        self.afficheTitre()
+        self.MCOptionnelLayout.insertWidget(0,QLabel(tr('Pas de MC Optionnel')))
+     else :
+        self.frameLabelMC.close()
+     #print "dans fin de monWidgetOptionnel ", parentQt
 
 
   def afficheTitre(self):
      labeltext,fonte,couleur = self.parentMC.node.item.GetLabelText()
-     print (labeltext)
+     #print (labeltext)
      l=tr(labeltext)
      li=[]
      while len(l) > 25:
@@ -117,7 +123,7 @@ class MonGroupeOptionnel (QWidget,Ui_groupeOptionnel):
          self.MCOptionnelLayout.insertWidget(0,cb)
          self.dicoCb[cb]=mot
      self.scrollAreaCommandesOptionnelles.horizontalScrollBar().setSliderPosition(0)
-     #print "Fin Optionnel ____ affiche", liste
+     print "Fin Optionnel ____ affiche", liste
 
       
 
index 0e3b97f96282e3143ff83a44ab56077722de4ac6..3919b75d9690f78ab1278071fd955ed27cc952b9 100644 (file)
@@ -32,7 +32,8 @@ class MonWidget4a6RadioButton (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommu
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "dans le init de MonWidget4a6RadioButton",self
-        self.maListeDeValeur=monSimpDef.into
+        if type(monSimpDef.into) ==types.FunctionType : self.maListeDeValeur=monSimpDef.into()
+        else : self.maListeDeValeur=monSimpDef.into
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
 
   def setMaxI(self):
index 1805b84cffe2b7a7012890af9a3d66d9ba31d801..becfee22f13f21faa0bda111354dd1815e184802 100644 (file)
@@ -222,10 +222,10 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe):
       self.monGroupe=self.monOptionnel.afficheOptionnel(liste,self)
       
 
-  #def focusInEvent(self,event):
+  def focusInEvent(self,event):
       #print "je mets a jour dans focusInEvent de monWidget Commande "
-  #    if self.editor.code == "CARMELCND" : return #Pas de MC Optionnels pour Carmel
-  #    self.afficheOptionnel()
+      if self.editor.code == "CARMELCND" : return #Pas de MC Optionnels pour Carmel
+      self.afficheOptionnel()
 
 
   def reaffiche(self,nodeAVoir=None):
index cc0fbd29ae0c0c638c5146c3247132299857b053..46f5cb38de9c1c939c7ea4ec69d6e63dfa02e219 100644 (file)
@@ -31,33 +31,36 @@ from .monGroupeOptionnel import MonGroupeOptionnel
 # Import des panels
 class  MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel):
   def __init__(self,parentQt):
-     #print "dans init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom
+     #print ("dans init de monWidgetOptionnel ", parentQt )
      QWidget.__init__(self,None)
      self.setupUi(self)
      self.dicoMCWidgetOptionnel={}
      self.parentQt=parentQt
 
   def afficheOptionnel(self,liste,MC):
-     #print "dans Optionnel ____ affiche", liste 
+     print ('afficheOptionnel MonWidgetOptionnel', self,liste,MC)
+     #import traceback
+     #traceback.print_stack()
      self.vireLesAutres(MC)
      if MC.node.item.nom in self.dicoMCWidgetOptionnel :
-        self.dicoMCWidgetOptionnel[MC.node.item.nom].setParent(None)
         self.dicoMCWidgetOptionnel[MC.node.item.nom].close()
+        self.dicoMCWidgetOptionnel[MC.node.item.nom].setParent(None)
+        self.dicoMCWidgetOptionnel[MC.node.item.nom].deleteLater()
      groupe = MonGroupeOptionnel(liste,self,MC)
      self.groupesOptionnelsLayout.insertWidget(0,groupe)
      self.dicoMCWidgetOptionnel[MC.node.item.nom]=groupe
      return groupe
 
   def vireLesAutres(self,MC):
-      #print "je passe dans vireLesAutres"
+      #print( "je passe dans vireLesAutres")
       genea =MC.obj.get_genealogie()
-      #print genea
+      #print (genea)
       for k in list(self.dicoMCWidgetOptionnel.keys()):
+          #if k not in genea :  print ( k)
           if k not in genea :  
              self.dicoMCWidgetOptionnel[k].close()
              del self.dicoMCWidgetOptionnel[k]
-          #if k not in genea :  print k
-      #print "________"
+      #print( "fin vireLesAutres")
       
   def afficheOptionnelVide(self):
       self.GeneaLabel.setText("")
index d66aa6dcad6308b9f1900b065819338ddde92ba1..5e4390c7c4fb4303fb3bd1b1a9d384a7954a3c32 100644 (file)
@@ -75,16 +75,14 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
           self.BSelectFichier.setIconSize(QSize(32, 32))
 
         self.listeValeursCourantes=self.node.item.GetListeValeurs()
-        #if self.monSimpDef.max != "**"  and self.monSimpDef.max < 7: 
-        #   hauteur=dicoLongueur[self.monSimpDef.max]
-        #   hauteur=dicoLongueur[2]
-        #   print ('hauteur', hauteur)
-        #   self.resize(self.width(),hauteur)
-        #   self.setMinimumHeight(hauteur)
+        self.monSimpDef.max = 3
+        if self.monSimpDef.max != "**"  and self.monSimpDef.max < 7: 
+           hauteurMax=dicoLongueur[self.monSimpDef.max]
+        else :
+           hauteurMax=220
         #   if self.monSimpDef.max == self.monSimpDef.min : self.setMaximumHeight(hauteur)
-        #else :
-        #   self.resize(self.width(),hauteurMax)
-        #   self.setMinimumHeight(hauteurMax)
+        self.resize(self.width(),hauteurMax)
+        self.setMinimumHeight(hauteurMax)
         self.finCommentaireListe()
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
@@ -96,9 +94,12 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
        self.vScrollBar = self.scrollArea.verticalScrollBar()
        self.politique=PolitiquePlusieurs(self.node,self.editor)
        # construction du min de valeur a entrer
+       self.monSimpDef.max = 3
        if self.monSimpDef.max == "**"  : aConstruire=7
        elif self.monSimpDef.max == float('inf'): aConstruire=7
        else                            : aConstruire=self.monSimpDef.max
+       print ('1,aConstruire', aConstruire)
+
        for i in range(1,aConstruire):
            self.ajoutLineEdit()
        QApplication.processEvents()
@@ -237,6 +238,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie)
              else :
                  self.editor.affiche_infos("")
           elif donneFocus==None : donneFocus=courant
+
       nomDernierLineEdit="lineEditVal"+str(self.indexDernierLabel)
       dernier=getattr(self,nomDernierLineEdit)
       derniereValeur=dernier.text()
index 1e40fb750928ac154fd80c217a7c341f728c41f0..1ba3e9cf59d5dc021ecf3f6a46baaafa6e2195a7 100644 (file)
@@ -133,7 +133,9 @@ class MonWidgetRadioButtonCommun (Feuille):
 class MonWidgetRadioButton (Ui_WidgetRadioButton,MonWidgetRadioButtonCommun):
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         #print "MonWidgetRadioButton ", self
-        self.maListeDeValeur=monSimpDef.into
+        if type(monSimpDef.into) ==types.FunctionType : self.maListeDeValeur=monSimpDef.into()
+        else : self.maListeDeValeur=monSimpDef.into
+
         MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         
   def setMaxI(self):
index 32fde23ac619b5b1be7d88b7a80486dc30ad790f..37b5129644e82a731e8eb296f599642f83b8995c 100644 (file)
@@ -91,6 +91,7 @@ class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille):
                   'Fichier' : tr(u'Un fichier est attendu.  '),
                   'FichierNoAbs' : tr(u'Un fichier est attendu.  '),
                   'Repertoire' : tr(u'Un repertoire est attendu.  '),
+                  'FichierOuRepertoire' : tr(u'Un repertoire ou un fichier est attendu.  '),
                   'Heure' : tr(u'Heure sous la forme HH:MM'),
                   'Date' :  tr(u'Date sous la forme JJ/MM/AA')}
       if mc.type[0] != type:
index 27e13d503758fc332933e5f56d4c9e434a00e7a6..d9387e293f3259ba4d0018d18af0194cd37a4e31 100644 (file)
@@ -252,7 +252,7 @@ class ENTITE(object):
     def check_into(self):
         """Vérifie l'attribut into."""
         if self.into != None:
-            if type(self.into) not in (list, tuple):
+            if (type(self.into) not in (list, tuple)) and (type(self.into) != types.FunctionType) :
                 self.cr.fatal(
                     _(u"L'attribut 'into' doit être un tuple : %r"), self.into)
 
index 21912655fe696d4474c47619d52031eff65e7d32..cb758ef9d214f0f132843a05bcc6c7e327f6e297 100644 (file)
@@ -90,7 +90,7 @@ class MCList(UserList):
         for child in self.data:
             child.supprime()
 
-    def get_child(self, name):
+    def get_child(self, name,restreint='non'):
         """
             Retourne le fils de nom name s'il est contenu dans self
             Par défaut retourne le fils du premier de la liste
index cc1d47caa6eaf565806e7a3c622628ee3de790f4..6bf64eb9b7829b2523f131d1015ba52de6379e5e 100644 (file)
@@ -46,7 +46,7 @@ class SIMP(N_ENTITE.ENTITE):
     class_instance = N_MCSIMP.MCSIMP
     label = 'SIMP'
 
-    def __init__(self, typ,ang="", fr="", statut='f', into=None, defaut=None,
+    def __init__(self, typ,ang="", fr="", statut='f', into=None, siValide = None, defaut=None,
                  min=1, max=1, homo=1, position='local',
                  val_min=float('-inf'), val_max=float('inf'), docu="", validators=None,
                  sug=None):
@@ -76,6 +76,7 @@ class SIMP(N_ENTITE.ENTITE):
         self.fr = fr
         self.statut = statut
         self.into = into
+        self.siValide = siValide
         self.defaut = defaut
         self.min = min
         self.max = max