From: pascale.noyret Date: Thu, 25 Feb 2021 10:40:06 +0000 (+0100) Subject: souci userASSD X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=5ccdae4ac9c5e4ef72834de4be72ba220b84b262;p=tools%2Feficas.git souci userASSD --- diff --git a/Noyau/N_BLOC.py b/Noyau/N_BLOC.py index 73d9835f..18676fc3 100644 --- a/Noyau/N_BLOC.py +++ b/Noyau/N_BLOC.py @@ -108,9 +108,7 @@ class BLOC(N_ENTITE.ENTITE): Cette méthode vérifie si le dictionnaire passé en argument (dict) est susceptible de contenir un bloc de mots-clés conforme à la définition qu'il porte. - Si la réponse est oui, la méthode retourne 1 - Si la réponse est non, la méthode retourne 0 Le dictionnaire dict a pour clés les noms des mots-clés et pour valeurs @@ -143,6 +141,7 @@ class BLOC(N_ENTITE.ENTITE): "Catalogue entite : ", self.nom, ", de pere : ", self.pere.nom, '\n', "Erreur dans la condition : ", self.condition, ''.join(l)) except: + print (self.nom) l = traceback.format_exception( sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]) raise AsException( diff --git a/Noyau/N_MCCOMPO.py b/Noyau/N_MCCOMPO.py index 288910db..1f48a50a 100644 --- a/Noyau/N_MCCOMPO.py +++ b/Noyau/N_MCCOMPO.py @@ -351,7 +351,7 @@ class MCCOMPO(N_OBJECT.OBJECT): if v.label != 'SIMP': continue if v.position == 'local': continue if v.position == 'inGetAttribut': continue - if v.position == 'recalculeEtape': continue + if v.position == 'reCalculeEtape': continue if v.statut == 'o': continue obj = v(val=None, nom=k, parent=etape) dico[k] = obj.getValeur() diff --git a/Noyau/N_MCSIMP.py b/Noyau/N_MCSIMP.py index 107bb142..069b76b2 100644 --- a/Noyau/N_MCSIMP.py +++ b/Noyau/N_MCSIMP.py @@ -305,29 +305,45 @@ class MCSIMP(N_OBJECT.OBJECT): N_OBJECT.OBJECT.supprime(self) def getUserAssdPossible(self): + print ('yyyyy') classeAChercher = self.definition.type l=[] dicoValeurs={} d={} for (nomMC, Xpath) in self.definition.filtreVariables : + print (nomMC, Xpath) if Xpath == None : dicoValeurs[nomMC] = getattr(self,nomMC) else : - exp=Xpath+'.getChild("'+nomMC+'")' - leMotCle=eval(exp) + #try: + if 1 : + pereMC=eval(Xpath) + if pereMC : + exp=Xpath+'.getChild("'+nomMC+'")' + leMotCle=eval(exp) + else : leMotCle=None if leMotCle : if leMotCle.val : dicoValeurs[nomMC]=leMotCle.val elif leMotCle.definition.max != 1 : dicoValeurs[nomMC] = [] else : dicoValeurs[nomMC] = None else : #PN PN est-ce sur ? sinon quoi None ou [] - # je ense que les 2 valeurs doivent être renseigne si le filtre depend de 2 valeurs + # je pense que les 2 valeurs doivent être renseignees si le filtre depend de 2 valeurs return l + #except: + # return l + for k,v in self.parent.jdc.sdsDict.items(): if (isinstance(v, classeAChercher)) : if self.definition.filtreExpression : - if v.executeExpression(self.definition.filtreExpression ,dicoValeurs) : l.append(v) + try : + if v.executeExpression(self.definition.filtreExpression ,dicoValeurs) : l.append(v) + except : + print ('il faut comprendre except pour', self.nom) + #print (self.nom) + #print (self.parent.nom) + #print (k,v) else : l.append(v) return l diff --git a/Noyau/N_OBJECT.py b/Noyau/N_OBJECT.py index 2619a284..71ae895c 100644 --- a/Noyau/N_OBJECT.py +++ b/Noyau/N_OBJECT.py @@ -110,7 +110,7 @@ class OBJECT(object): def longueurDsArbre(self): if self.nom == "Consigne" : return 0 - if self.nom == "BlocConsigne" : return 0 + if self.nom == "blocConsigne" : return 0 return 1 diff --git a/Noyau/N_UserASSD.py b/Noyau/N_UserASSD.py index 5d64658c..010e3b7d 100644 --- a/Noyau/N_UserASSD.py +++ b/Noyau/N_UserASSD.py @@ -91,6 +91,7 @@ class UserASSD(ASSD): except : pass def renomme(self,nouveauNom): + print ('je passe dans renomme') self.jdc.delConcept(self.nom) self.jdc.sdsDict[nouveauNom] = self self.setName(nouveauNom) @@ -104,6 +105,7 @@ class UserASSD(ASSD): for mc in self.utilisePar: mc.valeur=self def deleteReference(self, mcCreateur=None): + print ('je passe dans supprime de N_UserASSDMultiple') # meme signature que UserASSDMultiple for MC in self.utilisePar : try : @@ -133,11 +135,7 @@ class UserASSD(ASSD): def supprime(self, mcCreateur=None): - # meme signature que N_UserASSDMultiple - try : del self.jdc.sdsDict[self.nom] - except : print ('passe dans supprime mais pour', self.nom) - self.deleteReference(mcCreateur) - ASSD.supprime(self) - - + # mcCreateur utile pour N_UserASSDMultiple + print ('je passe dans supprime de N_UserASSDMultiple') + self.deleteReference(mcCreateur) diff --git a/Noyau/N_UserASSDMultiple.py b/Noyau/N_UserASSDMultiple.py index 906f5ba6..400b00c4 100644 --- a/Noyau/N_UserASSDMultiple.py +++ b/Noyau/N_UserASSDMultiple.py @@ -51,6 +51,16 @@ class UserASSDMultiple(UserASSD): if pere not in self.peres : self.peres.append(pere) etape = pere.getEtape() if self not in etape.userASSDCrees : etape.userASSDCrees.append(self) + + def renomme(self,nouveauNom): + print ('je passe dans renomme') + #import traceback + #traceback.print_stack() + self.jdc.delConcept(self.nom) + self.jdc.sdsDict[nouveauNom] = self + self.setName(nouveauNom) + for mc in (self.utilisePar): + mc.demandeRedessine() def initialiseParent(self, pere): @@ -58,6 +68,7 @@ class UserASSDMultiple(UserASSD): pass def deleteReference(self,mcCreateur): + print ('je passe dans deleteReference', mcCreateur.nom) if not(mcCreateur in self.peres) : return self.peres.pop(self.peres.index(mcCreateur)) if len(self.peres)==0 : diff --git a/Vimmp/cata_CSAndCPS_v16.py b/Vimmp/cata_CSAndCPS_v16.py index 955cfb1c..867fa86c 100644 --- a/Vimmp/cata_CSAndCPS_v16.py +++ b/Vimmp/cata_CSAndCPS_v16.py @@ -1340,7 +1340,7 @@ def prepareBoundaryCondition(): blocApplyOnParticle = BLOC(condition = "SystemType == 'Classical particle system' and TypeOfBoundaryCondition != 'Inlet'" , ApplyOnAllsParticle = SIMP(typ=bool, statut ='o', defaut = True,), blocSpecifyParticle = BLOC(condition = "ApplyOnAllsParticle == False" , - ApplyOnParticles = SIMP(statut ='o',max="**", typ = userParticle), + ApplyOnParticles = SIMP(statut ='o',max="**", typ = userParticle, homo='SansOrdreNiDoublon'), ), ),