From e5fe7d1fd7d3f3d7bdc06ba4cdd76b13f2c740d9 Mon Sep 17 00:00:00 2001 From: PASCALE NOYRET Date: Tue, 15 Mar 2022 09:29:46 +0100 Subject: [PATCH] partage eric correction ajout/supp + facultatifs --- Ihm/I_MCLIST.py | 4 ++ Ihm/I_MCSIMP.py | 5 ++- Ihm/I_OBJECT.py | 5 ++- InterfaceSsIhm/eficas_go.py | 2 +- InterfaceWeb/browser.py | 59 +++++++++++++++---------- testFlask/connectEficas.py | 85 +++++++++++++++++++++++++++---------- 6 files changed, 113 insertions(+), 47 deletions(-) diff --git a/Ihm/I_MCLIST.py b/Ihm/I_MCLIST.py index 429949bb..0c9aa021 100644 --- a/Ihm/I_MCLIST.py +++ b/Ihm/I_MCLIST.py @@ -147,6 +147,10 @@ class MCList: for child in self.data : child.updateConcept(sd) + def demandeUpdateOptionnels(self): + for child in self.data : + child.demandeUpdateOptionnels() + def deleteRef(self): for child in self.data : child.deleteRef() diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index 12db3549..c3f3b5d5 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -388,8 +388,8 @@ class MCSIMP(I_OBJECT.OBJECT): """ if self.definition.position == 'global' : self.etape.deepUpdateConditionBloc() + self.etape.demandeUpdateOptionnels() elif self.definition.position == 'reCalculeEtape' : - print ('je passe par la pour ', self.nom) self.etape.deepUpdateConditionBloc() self.etape.demandeRedessine() elif self.definition.position == 'global_jdc' : @@ -400,6 +400,9 @@ class MCSIMP(I_OBJECT.OBJECT): else: self.parent.updateConditionBloc() + def demandeUpdateOptionnels(self): + pass + def setValeur(self,new_valeur,evaluation='oui'): self.initModif() self.valeur = new_valeur diff --git a/Ihm/I_OBJECT.py b/Ihm/I_OBJECT.py index cc9baec8..5c81a294 100644 --- a/Ihm/I_OBJECT.py +++ b/Ihm/I_OBJECT.py @@ -245,7 +245,10 @@ class OBJECT: else : laClasse+='NonValide' return laClasse - + def demandeUpdateOptionnels(self): + CONNECTOR.Emit(self,"demandeUpdateOptionnels") + for mc in self.mcListe : + mc.demandeUpdateOptionnels() def demandeRedessine(self): #print ('demandeRedessine pour', self.nom, self, tout) diff --git a/InterfaceSsIhm/eficas_go.py b/InterfaceSsIhm/eficas_go.py index d8601300..cfe8c7b4 100755 --- a/InterfaceSsIhm/eficas_go.py +++ b/InterfaceSsIhm/eficas_go.py @@ -58,7 +58,7 @@ def lanceEficasQt6(code=None, multi=False, langue='en', labelCode=None): options = session.parse(sys.argv) if options.code != None : code=options.code - from InterfaceQT4.editorSsIhm import Appli + from InterfaceQT6.qt6 import Appli app = QApplication(sys.argv) Eficas=Appli(code=code,salome=0,multi=multi,langue=langue,labelCode=labelCode) diff --git a/InterfaceWeb/browser.py b/InterfaceWeb/browser.py index cc72c82f..4665aec6 100644 --- a/InterfaceWeb/browser.py +++ b/InterfaceWeb/browser.py @@ -100,7 +100,7 @@ class JDCNode(): self.item.connect("valid",self.onValid,()) self.item.connect("supp" ,self.onSupp,()) self.item.connect("add" ,self.onAdd,()) - self.item.connect("redessine" ,self.onRedessine,()) + self.item.connect("demandeUpdateOptionnels" ,self.updateOptionnels,()) def onValid(self): @@ -176,6 +176,7 @@ class JDCNode(): else : liste=(mcSupprime.idUnique,) self.buildChildren() + self.updateOptionnels() self.editor.connecteur.toWebApp('deleteChildren',liste) #print (' appel deleteChildren',liste) @@ -259,27 +260,41 @@ class JDCNode(): #import traceback #traceback.print_stack() - if name in self.item.mcListe : mcPere = self.item - else : mcPere = self.item.object.dictMCVenantDesBlocs[name] - - try : - if pos == 'first' : index = 0 - elif pos == 'last' : index = len(self.children) - elif type(pos) == int : index = pos # position fixee - elif type(pos) == object : index = mcPere.getIndex(pos) +1 # pos est un item. Il faut inserer name apres pos - elif type(name) == object : index = mcPere.getIndexChild(name.nom) - elif self.item.nature != 'JDC' : index = mcPere.getIndexChild(name) - else : return None - except : - txt=' Impossible d ajouter {} en position {}'.format(name, pos) - self.editor.afficheInfos(txt,'rouge') - return None + + if self.item.nature != 'JDC' : dictMCVenantDesBlocs=self.item.object.dictMCVenantDesBlocs + else : dictMCVenantDesBlocs={} + + if name in dictMCVenantDesBlocs : + # cas d un MC sous un bloc + mcPere = self.item.object.dictMCVenantDesBlocs[name] + try : + if pos == 'first' : index = 0 + elif pos == 'last' : index = len(self.children) + elif type(pos) == int : index = pos # position fixee + elif type(pos) == object : index = mcPere.getIndex(pos) +1 # pos est un item. Il faut inserer name apres pos + elif type(name) == object : index = mcPere.getIndexChild(name.nom) + elif self.item.nature != 'JDC' : index = mcPere.getIndexChild(name) + else : return None + except : + txt=' Impossible d ajouter {} en position {}'.format(name, pos) + self.editor.afficheInfos(txt,'rouge') + return None + obj = mcPere.addEntite(name,pos) + else : + try : + if pos == 'first' : index = 0 + elif pos == 'last' : index = len(self.children) + elif type(pos) == int : index = pos # position fixee + elif type(pos) == object : index = self.item.getIndex(pos) +1 # pos est un item. Il faut inserer name apres pos + elif type(name) == object : index = self.item.getIndexChild(name.nom) + elif self.item.nature != 'JDC' : index = self.item.getIndexChild(name) + else : return None + except : + txt=' Impossible d ajouter {} en position {}'.format(name, pos) + self.editor.afficheInfos(txt,'rouge') + return None + obj = self.item.addItem(name,index) # emet le signal 'add' - if name in self.item.mcListe : - obj = self.item.addItem(name,index) # emet le signal 'add' - else : - obj = mcPere.addEntite(name,pos) - if not obj : return None self.updateOptionnels() return True @@ -324,7 +339,7 @@ class JDCNode(): def updateOptionnels(self): #--------------------------- - if self.item.nature == 'MCList' or self.item.nature == 'JDC' : return + if self.item.nature == 'MCList' or self.item.nature == 'JDC' or self.item.nature=='MCSIMP' : return monDictPartiel={} monDictPartiel['infoOptionnels'] = self.item.calculOptionnelInclutBlocs() self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel) diff --git a/testFlask/connectEficas.py b/testFlask/connectEficas.py index 2065f3d4..272e5a45 100644 --- a/testFlask/connectEficas.py +++ b/testFlask/connectEficas.py @@ -51,9 +51,11 @@ class accasConnecteur : self.appWeb=appWeb def toWebApp(self,fction,*args, **kwargs): - if self.appWeb == None : # test - print ('self.appWeb.fromConnecteur', fction, *args, **kwargs) - if fction =='propageValide' : print ('self.appWeb.fromConnecteur', self.monEditeur.getNodeById(args[0]).nom) + #if fction =='propageValide' : + debug=0 + if debug : print ('PNPNPN : self.appWeb.fromConnecteur', fction, *args, **kwargs) + if self.appWeb == None : + #if fction =='propageValide' : print ('self.appWeb.fromConnecteur propageValide', self.monEditeur.getNodeById(args[0]).nom) return self.appWeb.fromConnecteur(fction, *args, **kwargs) @@ -121,7 +123,9 @@ class accasConnecteur : def suppNode(self,id): #------------------- + monNode=self.monEditeur.getNodeById(id) + print ('monNode', monNode) retour=monNode.fauxNoeudGraphique.delete() return retour @@ -134,6 +138,9 @@ class accasConnecteur : retour = nouvelIdUnique ou None """ monNode=self.monEditeur.getNodeById(id) + if monNode.fauxNoeudGraphique == None : + print ('PNPN pas de noeud Graphique associe a l id') + return retour=monNode.fauxNoeudGraphique.appendChild(name,pos) return retour @@ -192,50 +199,69 @@ if __name__ == "__main__": print (r) (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProc.comm') + lllll = 1 testAjoutSuppFact=1 if testAjoutSuppFact : monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - pprint.pprint(d) monProc2=d['children'][0]['key'] print ('id monProc2 : ', monProc2) #r=monEficasConnecteur.appendChild(monProc2,'Fact2') #print ('ajout de Fact2 dans monProc2 reussi', r) #r=monEficasConnecteur.appendChild(monProc2,'Fact2') #print ('ajout de Fact2 dans monProc2 inadequat', r) - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) + d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) + fact11=d['children'][0]['children'][2]['key'] + fact12=d['children'][0]['children'][3]['key'] + fact13=d['children'][0]['children'][4]['key'] + fact14=d['children'][0]['children'][5]['key'] + pprint.pprint(d) + #print (d) #monFact2=d['children'][0]['children'][3]['key'] #print (monFact2) #r=monEficasConnecteur.suppNode(monFact2) #print (r) #fact11=d['children'][0]['children'][2]['key'] - #print(d['children'][0]['children'][2]['title']) - #r=monEficasConnecteur.suppNode(fact11) - #print (r) - print ('******************************************************') - print ('******************************************************') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact2') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - print ('******************************************************') - print ('******************************************************') + #monNode=monEficasConnecteur.monEditeur.getNodeById(fact11) + #print ('monNode', monNode) + r=monEficasConnecteur.suppNode(fact11) + r=monEficasConnecteur.suppNode(fact12) + r=monEficasConnecteur.suppNode(fact13) + print ('________________________________________________') + print ('________________________________________________') + print ('________________________________________________') + print ('________________________________________________') + print ('________________________________________________') + r=monEficasConnecteur.suppNode(fact14) print (r) #r=monEficasConnecteur.appendChild(monProc2,'Fact1') + #r=monEficasConnecteur.appendChild(monProc2,'Fact1') + #r=monEficasConnecteur.appendChild(monProc2,'Fact1') + #r=monEficasConnecteur.appendChild(monProc2,'Fact2') + #r=monEficasConnecteur.appendChild(monProc2,'Fact1') + #print (d) + #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) + #pprint.pprint(d) + #r=monEficasConnecteur.appendChild(monProc2,'Fact1') #print (r) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) + #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) #fact12=d['children'][0]['children'][3]['key'] #print(d['children'][0]['children'][3]['title']) #r=monEficasConnecteur.appendChild(fact12,'paramInFact1') + #fact1=d['children'][0]['children'][2] + #print (fact1) #fact11=d['children'][0]['children'][2]['key'] + #print (fact11) + #print ('******************************************************') + #r=monEficasConnecteur.suppNode(fact11) #r=monEficasConnecteur.appendChild(fact11,'paramInFact1') #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) #paramInFact12=d['children'][0]['children'][2]['children'][0]['key'] #r=monEficasConnecteur.suppNode(paramInFact12) #print (r) (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact.comm') + exit() testChangeValeur=0 if testChangeValeur : @@ -324,13 +350,28 @@ if __name__ == "__main__": r=monEficasConnecteur.appendChild(idRacine,'MonProc','last') d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) param1PLast = d['children'][1]['children'][0]['key'] - print ('_________________________________________________') - print ('_________________________________________________') - print ('_________________________________________________') - print ('_________________________________________________') r=monEficasConnecteur.changeValeur(param1PLast,'1') (ok,newFile)=monEficasConnecteur.saveFile('/tmp/propageValide.comm') print ('ajout de MonProc2 en postion last', r) + + testUpdateInfo = 0 + if testUpdateInfo : + print ('________________________ testUpdateInfo ___________________________') + monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') + idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique + print ('idRacine', idRacine) + d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) + badMonProc2 = d['children'][0]['children'][0]['key'] + r=monEficasConnecteur.appendChild(badMonProc2,'Fact1') + monProc2 = d['children'][0]['key'] + #print ('idProc2', monProc2) + #print (d) + r=monEficasConnecteur.appendChild(monProc2,'Fact1') + r=monEficasConnecteur.appendChild(monProc2,'Fact1') + r=monEficasConnecteur.appendChild(monProc2,'Fact1') + r=monEficasConnecteur.appendChild(monProc2,'Fact1') + d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) + print (['children'][0]) exit() -- 2.39.2