From e36a291fc329a0fde6ee72934687f2194eadf8b6 Mon Sep 17 00:00:00 2001 From: PASCALE NOYRET Date: Fri, 18 Feb 2022 20:27:14 +0100 Subject: [PATCH] ajout/Supp/Valid Fact ok) --- Editeur/Objecttreeitem.py | 1 - Ihm/I_MCCOMPO.py | 1 + Ihm/I_MCLIST.py | 4 +-- InterfaceWeb/browser.py | 39 ++++++++++++++-------------- InterfaceWeb/compofact.py | 7 +---- InterfaceWeb/compomclist.py | 51 ++++++++++++++++++++++++++----------- 6 files changed, 59 insertions(+), 44 deletions(-) diff --git a/Editeur/Objecttreeitem.py b/Editeur/Objecttreeitem.py index 3b8b26fa..e1a30037 100644 --- a/Editeur/Objecttreeitem.py +++ b/Editeur/Objecttreeitem.py @@ -192,7 +192,6 @@ class ObjectTreeItem(TreeItem,Delegate): """ Connecte la fonction callable (avec arguments args) a l'item self sur le canal channel """ - #print self,channel,callable,args CONNECTOR.Connect(self._object,channel,callable,args) CONNECTOR.Connect(self.object, channel,callable,args) diff --git a/Ihm/I_MCCOMPO.py b/Ihm/I_MCCOMPO.py index 11e32f8d..028f5ce2 100644 --- a/Ihm/I_MCCOMPO.py +++ b/Ihm/I_MCCOMPO.py @@ -546,5 +546,6 @@ class MCCOMPO(I_OBJECT.OBJECT): objUserAssd.supprime(self) def initModifUp(self): + print ('llllllllllllllllllllllllllllllllllllllllllll',self.nom) Validation.V_MCCOMPO.MCCOMPO.initModifUp(self) CONNECTOR.Emit(self,"valid") diff --git a/Ihm/I_MCLIST.py b/Ihm/I_MCLIST.py index 956bd5d0..429949bb 100644 --- a/Ihm/I_MCLIST.py +++ b/Ihm/I_MCLIST.py @@ -56,6 +56,7 @@ class MCList: Indique si l'objet est repetable. Retourne 1 si le mot-cle facteur self peut etre repete Retourne 0 dans le cas contraire + Appele uniquement pour le 1er fact de la liste """ if self.data[0].definition.max > 1 : @@ -76,7 +77,7 @@ class MCList: for i in self.data: dico = i.getDicoForFancy() if nbFactDejaLa > i.definition.min : dico['statut']='f' - if nbFactDejaLa < i.definition.max-1 : dico['repetable'] = 1 + if nbFactDejaLa < i.definition.max : dico['repetable'] = 1 else : dico['repetable'] = 0 listeDict.append(dico) return listeDict @@ -239,7 +240,6 @@ class MCList: Methode appelee apres qu'une modification a ete faite afin de declencher d'eventuels traitements post-modification """ - #print "finModif",self CONNECTOR.Emit(self,"valid") if self.parent: self.parent.finModif() diff --git a/InterfaceWeb/browser.py b/InterfaceWeb/browser.py index 9ba47708..05653c2e 100644 --- a/InterfaceWeb/browser.py +++ b/InterfaceWeb/browser.py @@ -69,7 +69,6 @@ class JDCTree(): COMMENT = "COMMENTAIRE" PARAMETERS = "PARAMETRE" -import traceback #--------------- class JDCNode(): #-------------- @@ -107,6 +106,9 @@ class JDCNode(): def onValid(self): #----------------- debug=0 + + print ('ds onValid', self.item.nom) + if self.item.nom == 'Fact1' : print ('je suis dans on Valide ----------------', self) #if self.treeParent.oldValidite=='init' : self.treeParent.oldValidite='unknown' validite=self.item.isValid() if debug : print ('ds onValid', self.item.nom, self.oldValidite, validite) @@ -116,7 +118,7 @@ class JDCNode(): if self.item.state != 'modified' : return self.oldValidite=validite self.editor.connecteur.toWebApp('propageValide',self.getIdUnique(), validite) - if debug : print ('appel de propageValide pour ', self.item.nom, validite,self.oldValidite) + #if debug : print ('appel de propageValide pour ', self.item.nom, validite,self.oldValidite) def onAdd(self,ajout): #---------------------- @@ -151,12 +153,12 @@ class JDCNode(): if debug : print ('posDansArbre', posDansSelf) if self.children[posDansSelf].item.nature == 'MCBLOC' : laListe=self.children[posDansSelf].item.getDicoForFancy() + elif self.children[posDansSelf].item.nature == 'MCList' : laListe=self.children[posDansSelf].item.getDicoForFancy() else : laListe=(self.children[posDansSelf].item.getDicoForFancy(),) posOuAjouter=posDansArbre self.editor.connecteur.toWebApp('appendChildren',ouAjouter,laListe,posOuAjouter) - print (laListe) #print ('la pos ', posOuAjouter) #print (' appel appendChild',self.item.idUnique,laListe,pos) @@ -275,20 +277,10 @@ class JDCNode(): return None - #print ('dans appendChild browser.py appel addItem', self.item.addItem) + print ('dans appendChild browser.py appel addItem', self.item.addItem) obj = self.item.addItem(name,index) # emet le signal 'add' - - # PN : boucle sur les mclist. si necessaire a deriver - #try : - # self.buildChildren() - # child=self.children[index] - #except : - # print ('pb buildChildren dans appendChild') - # pass - - - #print ("-------------- fin append child", child, child.item) if not obj : return None + self.updateOptionnels() return True #return child.getIdUnique() @@ -300,33 +292,40 @@ class JDCNode(): #print ('browser :_appel de delete _______', self, self.vraiParent, self.item.nature) ret,commentaire=self.vraiParent.item.suppItem(self.item) - if ret!=0 : self.treeParent.buildChildren() + if ret!=0 : + self.treeParent.buildChildren() + self.treeParent.updateOptionnels() return (ret,commentaire) def updateNodeLabel(self): #------------------------- monDictPartiel={} - monDictPartiel['title']=self.item.getLabelText()[0][0:-1] + label=self.item.getLabelText()[0] + if label[-1]==":" : label=label[0:-1] + monDictPartiel['title']=label self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel) def updateRepetable(self,isRepetable): #------------------------------------- + if self.oldRepetable == isRepetable : return + self.oldRepetable = isRepetable monDictPartiel={} monDictPartiel['repetable']=isRepetable self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel) def updateStatut(self,statut): #----------------------------- + if self.oldStatut == statut : return + self.oldStatut = statut monDictPartiel={} monDictPartiel['statut']=statut self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel) def updateOptionnels(self): #--------------------------- - print ('dans updateOptionnels') - return + if self.item.nature == 'MCList' or self.item.nature == 'JDC' : return monDictPartiel={} - monDictPartiel['infoOptionnels']=maNouvelleListeOtionnels + monDictPartiel['infoOptionnels'] = self.item.calculOptionnelInclutBlocs() self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel) #def chercheNoeudCorrespondant(self,objSimp): diff --git a/InterfaceWeb/compofact.py b/InterfaceWeb/compofact.py index 31c74c8b..0bffe940 100644 --- a/InterfaceWeb/compofact.py +++ b/InterfaceWeb/compofact.py @@ -133,15 +133,10 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem): def suppItem(self,item) : """ Cette methode a pour fonction de supprimer l'item passee en argument - des fils de l'item FACT qui est son pere + dans l'item FACT qui est son pere - item = item du MOCLE a supprimer du MOCLE pere - item.getObject() = MCSIMP ou MCBLOC """ - print ('lllllllllllllllllllllllllllllllllllllll') - print ('inutile --> dans MCLIST ') - print ('SVP si on passe la on le dit a Pascale') - print ('lllllllllllllllllllllllllllllllllllllll') - print (poum) itemobject=item.getObject() if itemobject.isOblig() : return (0, tr('Impossible de supprimer un mot-cle obligatoire ')) diff --git a/InterfaceWeb/compomclist.py b/InterfaceWeb/compomclist.py index 789494ce..72bb6649 100644 --- a/InterfaceWeb/compomclist.py +++ b/InterfaceWeb/compomclist.py @@ -50,8 +50,11 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): def getIdUnique(self): #--------------------- print ('pas d iD unique pour la MCLIST') + # on renvoie l'ID du 1er MCFact + # print (self.item._object[0].idUnique) + return self.item._object[0].idUnique - def onValid(self): + def onValidBad(self): #----------------- #print( self.item.nature) if self.item.nature == 'MCFACT' : @@ -103,10 +106,26 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): if debug : print (' posDansArbre ', posDansArbre , ' posDansSelf ', posDansSelf) self.editor.connecteur.toWebApp('appendChildren',ouAjouter,laListe,posDansArbre) - - if len(self.item.data) == 2 : self.children[0].updateNodeLabel() - - for nodeChild in self.children : + #print ('la pos ', posOuAjouter) + #print (' appel appendChild',self.item.idUnique,laListe,pos) + self.updateChildrenProperties() + + + def onSupp(self,suppression): + #--------------------------- + browser.JDCNode.onSupp(self, suppression) + self.updateChildrenProperties() + + + def updateChildrenProperties(self): + #---------------------------------- + if self.item.nature == 'MCFACT': + children=(self.item.fauxNoeudGraphique,) + children[0].updateNodeLabel() + else : + if len(self.item.data) == 2 : self.children[0].updateNodeLabel() + children=self.children + for nodeChild in children : if nodeChild.item.isOblig() : newStatut ='o' else : newStatut = 'f' if newStatut != nodeChild.oldStatut : @@ -118,8 +137,6 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): nodeChild.oldRepetable=newRepetable - #print ('la pos ', posOuAjouter) - #print (' appel appendChild',self.item.idUnique,laListe,pos) class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): """ La classe MCListTreeItem joue le role d'un adaptateur pour les objets @@ -133,11 +150,13 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): itemNode=Node def init(self): - # Si l'objet Accas (MCList) a moins d'un mot cle facteur + # Avant Si l'objet Accas (MCList) a moins d'un mot cle facteur # on utilise directement ce mot cle facteur comme delegue self.updateDelegate() def updateDelegate(self): + self.setDelegate(self._object) + return if len(self._object) > 1: self.setDelegate(self._object) else: @@ -153,12 +172,13 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): def getSubList(self): self.updateDelegate() - if len(self._object) <= 1: - self._object.data[0].alt_parent=self._object - return compofact.FACTTreeItem.getSubList(self) + #if len(self._object) <= 1: + # self._object.data[0].alt_parent=self._object + # return compofact.FACTTreeItem.getSubList(self) liste=self._object.data sublist=[None]*len(liste) + # suppression des items lies aux objets disparus for item in self.sublist: old_obj=item.getObject() @@ -183,11 +203,12 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): obj.alt_parent=self._object pos=pos+1 - if len(self._object) <= 1: - self._object.data[0].alt_parent=self._object - return compofact.FACTTreeItem.getSubList(self) - self.sublist=sublist + + #if len(self._object) <= 1: + # self._object.data[0].alt_parent=self._object + # return compofact.FACTTreeItem.getSubList(self) + return self.sublist def getIconName(self): -- 2.39.2