From: pascale.noyret Date: Mon, 19 Oct 2020 14:29:01 +0000 (+0200) Subject: 1ere version projection XSD pour tenir compte des UserASSD en xml X-Git-Tag: MDM_V0.1~12 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=4b5119c66aeb81911515c40cbe6204c94fbe3573;p=tools%2Feficas.git 1ere version projection XSD pour tenir compte des UserASSD en xml --- diff --git a/Editeur/Eficas_utils.py b/Editeur/Eficas_utils.py index 89c601c5..80951e03 100644 --- a/Editeur/Eficas_utils.py +++ b/Editeur/Eficas_utils.py @@ -44,7 +44,8 @@ def getRepUser(dir): le repertoire de l'utilisateur /$home/Eficas_install """ - rep_user_eficas= os.path.join(os.environ['HOME'],dir) + #rep_user_eficas= os.path.join(os.environ['HOME'],dir) + rep_user_eficas= os.path.join(os.path.expanduser("~"),dir) if os.path.exists(rep_user_eficas): if os.path.isfile(rep_user_eficas) : print (tr("Un fichier de nom %s existe deja : impossible de creer un repertoire de meme nom", rep_user_eficas)) diff --git a/Editeur/session.py b/Editeur/session.py index 0fcad780..1470fea6 100644 --- a/Editeur/session.py +++ b/Editeur/session.py @@ -319,8 +319,11 @@ def parse(args): parser.error(tr("Nombre incorrect d'arguments")) options.comm.append(file) options.studies.append({"comm":file}) - elif len(args) == 1 and options.locale: - print((tr("Localisation specifiee pour l'application."))) + elif len(args) == 2 : + if options.locale: + print((tr("Localisation specifiee pour l'application."))) + else: + parser.error(tr("Nombre incorrect d'arguments")) else: parser.error(tr("Nombre incorrect d'arguments")) diff --git a/Efi2Xsd/AccasXsd.py b/Efi2Xsd/AccasXsd.py index 57433906..38af3be0 100755 --- a/Efi2Xsd/AccasXsd.py +++ b/Efi2Xsd/AccasXsd.py @@ -379,7 +379,6 @@ class X_compoFactoriseAmbigu(X_definition): def ajouteAuxTextes(self,nomMC,indent,debug=False) : - if nomMC=='N1' and self.nom == 'bloc_une_bloc_deux' : debug=True if debug : print ('ajouteAuxTextes', nomMC, self.nom, self.entites[nomMC]) #if debug : # traceback.print_stack() @@ -751,8 +750,9 @@ class X_BLOC (X_definitionComposee): #-------------------------------- class X_SIMP (X_definition): #-------------------------------- - def dumpXsd(self, dansFactorisation=False, multiple = False, first=False): + def dumpXsd(self, dansFactorisation=False, multiple=False, first=False, debug=False): #if PourTraduction : print (self.nom) + if debug : print ('X_SIMP dumpXsd pour', self.nom, '___________________________') self.prepareDumpXSD() # si inUnion la comparaison est fausse : on cree le nomDuType if multiple : self.inUnion=True @@ -766,6 +766,7 @@ class X_SIMP (X_definition): # --> homonymie on peut utiliser genealogie ? self.nomDuTypeDeBase = self.traduitType() + if debug : print ('nomDuTypeDeBase', self.nomDuTypeDeBase) if not multiple : self.nomDuTypePyxb = self.definitNomDuTypePyxb() else : @@ -775,6 +776,8 @@ class X_SIMP (X_definition): self.aCreer = True + if debug : print ('nomDuTypePyxb', self.nomDuTypePyxb) + if debug : print ('aCreer', self.aCreer) # on se sert des listes ou non pour la gestion des minOccurs /maxOccurs est > 0 if self.statut =='f' : minOccurs = 0 else : minOccurs = 1 @@ -795,7 +798,7 @@ class X_SIMP (X_definition): for val in self.defaut : txtDefaut+=str(val) +" " self.texteElt = eltWithDefautDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,txtDefaut) else : - if str(self.defaut) == 'True' : txtDefaut = 'true' + if str(self.defaut) == 'True' : txtDefaut = 'true' elif str(self.defaut) == 'False' : txtDefaut = 'false' else : txtDefaut = str(self.defaut) self.texteElt = eltWithDefautDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,minOccurs,1,txtDefaut) @@ -803,21 +806,23 @@ class X_SIMP (X_definition): elif first: self.texteElt = eltDsSequence.format(self.nom,self.code,self.nomDuTypePyxb,1,1) - #typeATraduire=self.type[0] - #if (isinstance(typeATraduire, Accas.UserASSD) or issubclass(typeATraduire, Accas.UserASSD)) : - # nomType = self.type[0].__name__ - # self.texteElt = self.texteElt[:-3]+">\n" - # self.texteElt += "\t"+attributeNameName - # if len(self.type) == 2 and self.type[1]=='createObject' : self.texteElt += attributeTypeForUserASSDCreation - # else : self.texteElt += attributeTypeForUserASSDConsommation - # self.texteElt += "\t"+attributeTypeUtilisateurName.format(nomType) - # self.texteElt += finTexteElt - - # self.aCreer est mis a jour ds definitNomDuTypePyxb # ou si elt est le 1er d une liste identique - #print ('je suis aCreer', self.aCreer) + if debug : print ('je suis aCreer', self.aCreer) if not self.aCreer : return + + typeATraduire=self.type[0] + if (not(isinstance(typeATraduire,str)) and issubclass(typeATraduire, Accas.UserASSD)) : + cata = CONTEXT.getCurrentCata() + if len(self.type) == 2 and self.type[1]=='createObject' : suffixe = 'C' + else : suffixe = 'U' + if typeATraduire.__name__+'_'+suffixe not in cata.listeUserASSDDumpes : + self.texteSimple = defUserAssd.format(typeATraduire.__name__, suffixe) + self.texteSimple + cata.listeUserASSDDumpes.add(typeATraduire.__name__+'_'+suffixe) + if cata.definitUserASSD ==False : + cata.definitUserASSD = True + self.texteSimple = defBaseXSDUserAssd + self.texteSimple + if not multiple : self.texteSimple += debutSimpleType.format(self.nomDuTypePyxb) else : self.texteSimple += debutSimpleTypeSsNom @@ -876,22 +881,26 @@ class X_SIMP (X_definition): else : typeATraduire=self.type[0] if not (typeATraduire in list(dictNomsDesTypes.keys())) : - if (isinstance(typeATraduire, Accas.ASSD) or issubclass(typeATraduire, Accas.ASSD)) : + #if (isinstance(typeATraduire, Accas.ASSD) or issubclass(typeATraduire, Accas.ASSD)) : + if (not(isinstance(typeATraduire,str)) and issubclass(typeATraduire, Accas.ASSD)) : # cas d une creation cata = CONTEXT.getCurrentCata() + # PNPNPN a Revoir pour la creation des keyrefs if len(self.type) == 2 and self.type[1]=='createObject' : if typeATraduire.__name__ not in list(cata.dictTypesASSDorUserASSDCrees) : cata.dictTypesASSDorUserASSDCrees[typeATraduire.__name__]=[self,] else : cata.dictTypesASSDorUserASSDCrees[typeATraduire.__name__].append(self) - return 'xs:string' + if issubclass(typeATraduire, Accas.UserASSD) : return typeATraduire.__name__+'_C' + else : return 'xs:string' # cas d une consommation if typeATraduire not in list(cata.dictTypesASSDorUserASSDUtilises) : cata.dictTypesASSDorUserASSDUtilises[typeATraduire]=[self,] else : cata.dictTypesASSDorUserASSDUtilises[typeATraduire].append(self,) - return 'xs:string' + if issubclass(typeATraduire, Accas.UserASSD) : return typeATraduire.__name__+'_U' + else : return 'xs:string' else : return ('YYYYY') return dictNomsDesTypes[typeATraduire] diff --git a/Efi2Xsd/MCAccasXML.py b/Efi2Xsd/MCAccasXML.py index 82ce5721..6da4d264 100755 --- a/Efi2Xsd/MCAccasXML.py +++ b/Efi2Xsd/MCAccasXML.py @@ -155,10 +155,6 @@ class X_MCSIMP(X_OBJECT): #if self.objPyxb !=None : self.objPyxb.objAccas=self - if isinstance(self.valeur,A_ASSD.ASSD) : - setattr(self.valeur,'typeUtilisateur','toto') - print (dir(self.definition)) - print (dir(self.valeur)) if debug : print ('X_MCSIMP', self.nom, self.objPyxb, ) if debug : print ('__________ fin X_MCSIMP', self.objPyxb, self.nom, self, self.maClasseModeleMetier,self.valeur) @@ -167,10 +163,6 @@ class X_MCSIMP(X_OBJECT): if not self.cata or not self.cata.modeleMetier : return if debug : print (' ___________________________ dans setValeurObjPyxb MCSIMP ', self.nom, newVal) if debug : print (' self.perePyxb = ', self.perePyxb.nom) - isUserASSD = False - if inspect.isclass(newVal) and issubclass(newVal,A_ASSD) : - isUserASSD = True - newVal = newVal.nom if debug : print (self.nom , ' a pour pere', self.perePyxb, self.perePyxb.nom, self.perePyxb.objPyxb) if debug : print ('debut du setValeurObjPyxb pour ', self.nom, self.perePyxb.objPyxb.orderedContent()) @@ -199,8 +191,6 @@ class X_MCSIMP(X_OBJECT): indice+=1 if not trouve : print ('Attention souci au changement de valeur de ', self.nom) self.objPyxb=nvlObj - if isUserASSD : setattr(self.objPyxb,name,newVal) - if isUserASSD : print(self.objPyxb.typeUtilisateur) #self.objPyxb.objAccas=self if debug : print ('fin du setValeurObjPyxb pour ', self.nom, self.perePyxb.objPyxb.orderedContent()) @@ -377,7 +367,7 @@ class X_ETAPE(X_MCCOMPO) : def metAJourNomASSD(self, nom,debug=False): if not self.cata or not self.cata.modeleMetier : return if debug : print ('X_ETAPE metAJourLesAttributs', self.nom, nom,' --------------------------') - self.objPyxb.name=nom + self.objPyxb.accasName=nom class X_JDC (X_MCCOMPO): # --------------------- @@ -431,7 +421,7 @@ class X_JDC (X_MCCOMPO): return (self.objPyxb.toDOM().toprettyxml()) - def analyseFromXML(self,debug=True): + def analyseFromXML(self,debug=False): print ("je suis ds analyseFromXML -- > appel ds analyseXML de I_JDC.py") print (self.procedure) if self.procedure == "" : return @@ -439,27 +429,25 @@ class X_JDC (X_MCCOMPO): for contentObjEtape in self.objPyxb.orderedContent(): objEtape=contentObjEtape.value objEtape.dictArgs=(self.pyxbToDict(objEtape)) - # attention au call d Oper qui renomme l objet pyxb - if hasattr(objEtape,'name') : sdName = objEtape.name objEtape.monNomClasseAccas=objEtape._ExpandedName.localName() objEtape.monNomClasseAccas=objEtape.monNomClasseAccas[2:] # doute sur les 2 lignes suivantes : objEtape peut etre contentObjEtape 2juin20 objEtape.dictPyxb['objEnPyxb']=objEtape objEtape.dictArgs['dicoPyxbDeConstruction']=objEtape.dictPyxb - print ('dicoPyxbDeConstruction', objEtape.dictArgs['dicoPyxbDeConstruction']) + if debug : print ('dicoPyxbDeConstruction', objEtape.dictArgs['dicoPyxbDeConstruction']) maClasseAccas=getattr(self.cata,objEtape.monNomClasseAccas) if debug : print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh') - if debug : print (maClasseAccas) - if debug : print (objEtape , type(objEtape)) - if debug : print (objEtape.dictPyxb) - - if debug : print (objEtape.monNomClasseAccas, type(objEtape.monNomClasseAccas)) - if debug : print (objEtape._ExpandedName, type(objEtape._ExpandedName)) - if debug : print ('dictArgs',objEtape.dictArgs) - if debug : print ('dictPyxb',objEtape.dictPyxb) - objAccasEtape=maClasseAccas(**(objEtape.dictArgs)) - if hasattr(objEtape,'name') : objAccasEtape.setName(sdName) - if debug : print (objAccasEtape) + if debug : print ('maClasseAccas ', maClasseAccas) + if debug : print ('objEtape ', objEtape , type(objEtape)) + if debug : print ('nomClasseAccas ',objEtape.monNomClasseAccas, type(objEtape.monNomClasseAccas)) + if debug : print ('_ExpandedName ', objEtape._ExpandedName, type(objEtape._ExpandedName)) + if debug : print ('dictArgs ',objEtape.dictArgs) + if debug : print ('dictPyxb ',objEtape.dictPyxb) + # attention au call d Oper qui renomme l objet pyxb + if hasattr(objEtape,'accasName') : + if debug and hasattr(objEtape,'accasName') :print ('sdName',objEtape.accasName) + objAccasEtape=maClasseAccas(nomXML=objEtape.accasName, **(objEtape.dictArgs)) + else : objAccasEtape=maClasseAccas(**(objEtape.dictArgs)) if debug : print ( 'hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh') @@ -474,12 +462,15 @@ class X_JDC (X_MCCOMPO): # --------------- if isinstance(objAAnalyser, pyxb.binding.basis.simpleTypeDefinition): print ('je suis un MCSimple') - # il faut traiter les UserASSD # traitement scalaire objAAnalyser.dictPyxb=objAAnalyser if not (isinstance(objAAnalyser,pyxb.binding.basis.STD_list)): - #print ('je suis un scalaire') + # print ('je suis un scalaire') #try : # python 3 + if isinstance(objAAnalyser,self.cata.modeleMetier.AccasUserAssd): + import inspect + laClassePyxbUserAssd=inspect.getmro(objAAnalyser.__class__)[1] + return self.creeUserAssd(objAAnalyser,laClassePyxbUserAssd) if isinstance(objAAnalyser, str) : return str(objAAnalyser) if isinstance(objAAnalyser, int) : return int(objAAnalyser) if isinstance(objAAnalyser, float): return float(objAAnalyser) @@ -541,6 +532,33 @@ class X_JDC (X_MCCOMPO): #print ('fin pour ',objAAnalyser) return dictArgs + def creeUserAssd(self,objAAnalyser,laClassePyxbUserAssd): + + print ('ttttttttttttttttttt') + nomClasseAccasUserAssd=laClassePyxbUserAssd.__name__[:-2] + enCreation=False + if laClassePyxbUserAssd.__name__[-2:]== '_C' : enCreation = True + elif laClassePyxbUserAssd.__name__[-2:] != '_U' : print ('pb avec', laClassePyxbUserAssd); exit() + laClasseAccas=getattr(self.cata,nomClasseAccasUserAssd) + if not(enCreation): + if str(objAAnalyser) in self.g_context.keys():return self.g_context[str(objAAnalyser)] + else : + obj=laClasseAccas() + self.g_context[str(objAAnalyser)]=obj + return obj + if str(objAAnalyser) in self.g_context.keys(): + if isinstance(self.g_context[str(objAAnalyser)],laClasseAccas): + return self.g_context[str(objAAnalyser)] + else : + nvlObj=laClasseAccas() + oldObj=self.g_context[str(objAAnalyser)] + nvlObj.transfere(oldObj) + self.g_context[str(objAAnalyser)]=nvlObj + return nvlObj + else : + obj=laClasseAccas() + self.g_context[str(objAAnalyser)]=obj + return obj # def analyseContent(self,objAAnalyser): # objAAnalyser.dictArgs={} diff --git a/Efi2Xsd/balisesXSD.py b/Efi2Xsd/balisesXSD.py index 8e2e732f..c86ec98d 100644 --- a/Efi2Xsd/balisesXSD.py +++ b/Efi2Xsd/balisesXSD.py @@ -66,11 +66,14 @@ finUnion = '\t\t\t\n' # User OR ASSD -attributeNameName = '\t\t\n' +attributeNameName = '\t\t\n' attributeTypeForASSD = '\t\t\n' attributeTypeUtilisateurName = '\t\t\n' producingASSDkeyRefDeclaration='\t\n\t\t\n\t\t\n\t\n' texteFieldUnitaire="./{}:{}/@name |" +defBaseXSDUserAssd='\t\n\t\t\n\t\t\n\t\n' +defUserAssd='\t\n\t\t\n\t\t\n\t\n' + # CATA debutTypeCata = '\t\n\t\t\n' diff --git a/Ihm/I_JDC.py b/Ihm/I_JDC.py index c0db8261..58c9d8f1 100644 --- a/Ihm/I_JDC.py +++ b/Ihm/I_JDC.py @@ -568,7 +568,7 @@ class JDC(I_OBJECT.OBJECT): def analyseXML(self): print ('analyseXML') - print (self.procedure) + #print (self.procedure) self.setCurrentContext() self.analyseFromXML() diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py index c550b15e..d41e340a 100644 --- a/InterfaceQT4/composimp.py +++ b/InterfaceQT4/composimp.py @@ -215,13 +215,12 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): num=self.item.object.definition.type[0].ntuple nomDeLaClasse = 'MonWidgetPlusieursTuple'+str(num) nomDuFichier = 'InterfaceQT4.monWidgetPlusieursTupleN' - #try: - if 1 : + try: _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0) MonWidgetPlusieursTuple = getattr(_temp,nomDeLaClasse) - #except : - # print ("Pas de Tuple de longueur : ", num) - # print ("Prevenir la maintenance ") + except : + print ("Pas de Tuple de longueur : ", num) + print ("Prevenir la maintenance ") widget=MonWidgetPlusieursTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.hasInto(): diff --git a/InterfaceQT4/monWidgetPlusieursBase.py b/InterfaceQT4/monWidgetPlusieursBase.py index 50a2413b..10abc607 100644 --- a/InterfaceQT4/monWidgetPlusieursBase.py +++ b/InterfaceQT4/monWidgetPlusieursBase.py @@ -35,7 +35,7 @@ from PyQt5.QtCore import QTimer, QSize, Qt from Extensions.i18n import tr from InterfaceQT4.feuille import Feuille -from desWidgetPlusieursBase import Ui_WidgetPlusieursBase +from desWidgetPlusieursBase import Ui_WidgetPlusieursBase from InterfaceQT4.politiquesValidation import PolitiquePlusieurs from InterfaceQT4.qtSaisie import SaisieValeur from InterfaceQT4.gereListe import GereListe @@ -49,7 +49,7 @@ nbMinimumDeQLineEdit=7 class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): - #print ('MonWidgetPlusieursBase', nom) + print ('MonWidgetPlusieursBase', nom) self.inFocusOutEvent = False self.changeUnLineEdit = False self.nomLine = "lineEditVal" diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py index 0b9f14a5..61c8b9d5 100755 --- a/InterfaceQT4/qtEficas.py +++ b/InterfaceQT4/qtEficas.py @@ -673,10 +673,11 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow): def initRecents(self): self.recent = [] try : - if sys.platform[0:5]=="linux" : - rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code) - else : - rep=os.path.join('C:/','.config/Eficas',self.code) + #if sys.platform[0:5]=="linux" : + #rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code) + rep=os.path.join(os.path.expanduser("~"),'.config/Eficas',self.code) + #else : + # rep=os.path.join('C:/','.config/Eficas',self.code) monFichier=rep+"/listefichiers_"+self.code index=0 f=open(monFichier) diff --git a/Noyau/N_ASSD.py b/Noyau/N_ASSD.py index 801df350..7349a236 100644 --- a/Noyau/N_ASSD.py +++ b/Noyau/N_ASSD.py @@ -105,11 +105,6 @@ class ASSD(object): def setName(self, nom): """Positionne le nom de self """ - print ('uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu') - print ('uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu') - print ('uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu') - print ('uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu') - print ('uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu') self.nom = nom def isTypCO(self): diff --git a/Noyau/N_ETAPE.py b/Noyau/N_ETAPE.py index 3e2da2db..7b035705 100644 --- a/Noyau/N_ETAPE.py +++ b/Noyau/N_ETAPE.py @@ -97,7 +97,6 @@ class ETAPE(N_MCCOMPO.MCCOMPO): enregistrements necessaires surcharge dans Ihm """ - #print ('makeRegister de ETAPE') if self.parent: self.jdc = self.parent.getJdcRoot() self.id = self.parent.register(self) diff --git a/Noyau/N_JDC_CATA.py b/Noyau/N_JDC_CATA.py index 3e8141f3..1f507c96 100644 --- a/Noyau/N_JDC_CATA.py +++ b/Noyau/N_JDC_CATA.py @@ -73,10 +73,12 @@ class JDC_CATA(N_ENTITE.ENTITE): CONTEXT.unsetCurrentCata() CONTEXT.setCurrentCata(self) self.fenetreIhm=None + self.definitUserASSD = False self.dictTypesXSD={} self.dictTypesXSDJumeaux={} self.dictTypesASSDorUserASSDCrees={} self.dictTypesASSDorUserASSDUtilises={} + self.listeUserASSDDumpes=set() def __call__(self, procedure=None, cata=None, cata_ord_dico=None, diff --git a/Noyau/N_OPER.py b/Noyau/N_OPER.py index 3b18d5a0..48239ae1 100644 --- a/Noyau/N_OPER.py +++ b/Noyau/N_OPER.py @@ -122,12 +122,13 @@ class OPER(N_ENTITE.ENTITE): self.txtNomComplet="" self.dejaPrepareDump=False - def __call__(self, reuse=None, **args): + def __call__(self, reuse=None, nomXML=None,**args): """ Construit l'objet ETAPE a partir de sa definition (self), puis demande la construction de ses sous-objets et du concept produit. """ - nomsd = self.nommage.getNomConceptResultat(self.nom) + if nomXML == None : nomsd = self.nommage.getNomConceptResultat(self.nom) + else : nomsd = nomXML etape = self.class_instance(oper=self, reuse=reuse, args=args) etape.MCBuild() etape.metAJourNomASSD(nomsd) diff --git a/Noyau/N_UserASSD.py b/Noyau/N_UserASSD.py index 6ed18126..f730a0c4 100644 --- a/Noyau/N_UserASSD.py +++ b/Noyau/N_UserASSD.py @@ -44,6 +44,7 @@ class UserASSD(ASSD): """ def __init__(self,nom='sansNom'): + #print ('dans init de UserASSD pour ', nom) self.nom = nom self.jdc = CONTEXT.getCurrentJdC() self.parent = None @@ -54,6 +55,7 @@ class UserASSD(ASSD): self.ptr_sdj = None + def initialiseParent(self, parent): #print ('je passe initialiseParent pour : ', self, parent) self.parent= parent @@ -71,6 +73,7 @@ class UserASSD(ASSD): self.valeur=valeur def ajoutUtilisePar(self,mc): + #print ('je passe ajoutUtilisePar pour : ', self.nom) self.utilisePar.add(mc) def enleveUtilisePar(self,mc): @@ -81,12 +84,16 @@ class UserASSD(ASSD): self.jdc.delConcept(self.nom) self.jdc.sdsDict[nouveauNom] = self self.setName(nouveauNom) - #print ('je suis dans renomme',nouveauNom, self.nom) - #print (self.utilisePar) for mc in (self.utilisePar): mc.demandeRedessine() + def transfere (self,obj): + # uniquement utise pour les lectures XML + self.utilisePar=obj.utilisePar + self.id=obj.id + for mc in self.utilisePar: mc.valeur=self + def deleteReference(self): print ('dans deleteReference') for MC in self.utilisePar : diff --git a/generator/generator_TELEMAC.py b/generator/generator_TELEMAC.py index a89b564e..6935d537 100644 --- a/generator/generator_TELEMAC.py +++ b/generator/generator_TELEMAC.py @@ -174,8 +174,10 @@ class TELEMACGenerator(PythonGenerator): s=PythonGenerator.generMCSIMP(self,obj) - # si le statut = Leger on peut vouloir forcer l ecriture - if self.statut == 'Leger' and obj.definition.sortie == 'n': + # Attention pas sur --> ds certains cas non traite par MCFACT ? + # a reflechir avec Yoann + # ajouter le statut ? + if self.statut == 'Leger' : if hasattr(obj.definition,'defaut') and (obj.definition.defaut == obj.valeur) and (obj.nom not in self.listeTelemac) : return s if hasattr(obj.definition,'defaut') and obj.definition.defaut != None and (type(obj.valeur) == tuple or type(obj.valeur) == list) and (tuple(obj.definition.defaut) == tuple(obj.valeur)) and (obj.nom not in self.listeTelemac) : return s