From cbc4616feca36878c13fa2c39fee429e52388246 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Tue, 13 Mar 2018 18:27:31 +0100 Subject: [PATCH] pour telemac : bug boucle import grande valeur --- InterfaceQT4/browser.py | 2 -- InterfaceQT4/composimp.py | 10 +++--- InterfaceQT4/gereIcones.py | 2 -- InterfaceQT4/groupe.py | 5 ++- InterfaceQT4/monBoutonValide.py | 8 +++-- InterfaceQT4/monGroupeOptionnel.py | 9 +++++- InterfaceQT4/monWidgetFact.py | 3 +- InterfaceQT4/monWidgetPlusieursTuple.py | 24 ++++++++++++-- Noyau/N_ENTITE.py | 17 ++++++++++ Noyau/N_SIMP.py | 42 +++++++++++++++++++++++-- convert/convert_TELEMAC.py | 18 +++++++++-- 11 files changed, 117 insertions(+), 23 deletions(-) diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index 6dd8c35f..67eda81b 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -271,7 +271,6 @@ class JDCNode(QTreeWidgetItem,GereRegles): repIcon=self.appliEficas.repIcon couleur=self.item.getIconName() - if not self.editor.maConfiguration.differencieSiDefaut and couleur == 'ast-green-dark-ball' : couleur="ast-green-ball" monIcone = QIcon(repIcon+"/" + couleur + ".png") self.setIcon(0,monIcone) @@ -713,7 +712,6 @@ class JDCNode(QTreeWidgetItem,GereRegles): """ repIcon=self.appliEficas.repIcon couleur=self.item.getIconName() - if not self.editor.maConfiguration.differencieSiDefaut and couleur == 'ast-green-dark-ball' : couleur="ast-green-ball" monIcone = QIcon(repIcon+"/" + couleur + ".png") self.setIcon(0,monIcone) diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py index a5227245..e48a9e61 100644 --- a/InterfaceQT4/composimp.py +++ b/InterfaceQT4/composimp.py @@ -487,12 +487,10 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): def getIconName(self): - if self.isValid(): - if self.object.valeur == self.object.definition.defaut : - return "ast-green-dark-ball" - # cas des tuples et des listes - if self.object.definition.max > 1 : - if list(self.object.valeur) == list(self.object.definition.defaut) : return "ast-green-dark-ball" + if self.appli.maConfiguration.differencieSiDefaut and self.isValid(): + if self.object.definition.defaut != None : + if self.object.valeur == self.object.definition.defaut : return "ast-green-dark-ball" + if self.object.definition.max > 1 and list(self.object.valeur) == list(self.object.definition.defaut) : return "ast-green-dark-ball" return "ast-green-ball" elif self.object.isOblig(): return "ast-red-ball" diff --git a/InterfaceQT4/gereIcones.py b/InterfaceQT4/gereIcones.py index 095a9f60..0787448d 100644 --- a/InterfaceQT4/gereIcones.py +++ b/InterfaceQT4/gereIcones.py @@ -187,10 +187,8 @@ class FacultatifOuOptionnel(object): self.node.delete() def setValide(self): - #print " c est le moment de gerer le passage au suivant" if not(hasattr (self,'RBValide')) : return couleur=self.node.item.getIconName() - if not self.editor.maConfiguration.differencieSiDefaut and couleur == 'ast-green-dark-ball' : couleur="ast-green-ball" monIcone = QIcon(self.repIcon+"/" + couleur + ".png") self.RBValide.setIcon(monIcone) diff --git a/InterfaceQT4/groupe.py b/InterfaceQT4/groupe.py index cd7a98b4..7616c20f 100644 --- a/InterfaceQT4/groupe.py +++ b/InterfaceQT4/groupe.py @@ -21,7 +21,7 @@ from __future__ import absolute_import from __future__ import print_function -from PyQt5.QtWidgets import QWidget +from PyQt5.QtWidgets import QWidget, QSpacerItem, QSizePolicy from PyQt5.QtCore import Qt from Extensions.i18n import tr @@ -64,6 +64,9 @@ class Groupe(QWidget,FacultatifOuOptionnel): if hasattr(self,'RBDeplie') : self.RBDeplie.clicked.connect(self.setDeplie) if hasattr(self,'RBPlie') : self.RBPlie.clicked.connect( self.setPlie) self.setAcceptDrops(True) + if hasattr (self, 'commandesLayout'): + spacerItem = QSpacerItem(20, 5, QSizePolicy.Minimum, QSizePolicy.Expanding) + self.commandesLayout.addItem(spacerItem) def donneFocus(self): for fenetre in self.listeFocus: diff --git a/InterfaceQT4/monBoutonValide.py b/InterfaceQT4/monBoutonValide.py index 0d3b9f24..335d1644 100644 --- a/InterfaceQT4/monBoutonValide.py +++ b/InterfaceQT4/monBoutonValide.py @@ -39,15 +39,19 @@ class MonBoutonValide(QToolButton) : def mouseDoubleClickEvent(self, event): #print "dans mouseDoubleClickEvent" + strAide=self.parent.node.item.object.getFr() + if hasattr(self.parent.node.item.object.definition, 'defaut') : + strAide+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut) strRapport=six.text_type(self.parent.node.item.object.report()) - self.parent.editor._viewText(strRapport, "JDC_RAPPORT") + self.parent.editor._viewText(strAide+"\n"+strRapport, "JDC_RAPPORT") def mousePressEvent(self, event): #print "dans mousePressEvent" if self.parent.node.item.object.isValid() : myToolTip=tr("objet valide") if self.parent.editor.maConfiguration.differencieSiDefaut : - if self.parent.node.item.object.valeur != self.parent.node.item.object.definition.defaut : + if hasattr(self.parent.node.item.object.definition, 'defaut') : + if self.parent.node.item.object.valeur != self.parent.node.item.object.definition.defaut : myToolTip+='\ndefaut : \n'+str(self.parent.node.item.object.definition.defaut) QToolTip.showText(event.globalPos(),myToolTip ) diff --git a/InterfaceQT4/monGroupeOptionnel.py b/InterfaceQT4/monGroupeOptionnel.py index 01961022..641369f0 100644 --- a/InterfaceQT4/monGroupeOptionnel.py +++ b/InterfaceQT4/monGroupeOptionnel.py @@ -41,8 +41,10 @@ class MonRBButtonCustom(QCheckBox): if couleur != None : mapalette=self.palette() mapalette.setColor( QPalette.WindowText, couleur ) + mapalette.setColor( QPalette.Base, Qt.green ) self.setPalette( mapalette ); self.setText(tr(texte)) + print ('jjjjjjjjjjjj') try : monToolTip=monOptionnel.parentMC.dictToolTipMc[texte] self.setToolTip(monToolTip) @@ -93,15 +95,20 @@ class MonPBButtonCustom(QWidget,Ui_customPB): QWidget.__init__(self) self.setupUi(self) if couleur != None : + print ( 'je change pour ', texte) + self.monPb.setText(texte) + self.monPb.setStyleSheet('QPushButton {background-color: #A3C1DA; color: red;}') mapalette=self.monPb.palette() mapalette.setColor( QPalette.ButtonText, Qt.red ) self.monPb.setPalette( mapalette ) + self.monPb.update() + self.update() try : monToolTip=monOptionnel.parentMC.dictToolTipMc[texte] self.monPb.setToolTip(monToolTip) except : pass - self.monPb.setText(texte) + #self.monPb.setText(texte) self.monPb.clicked.connect(self.ajoutMC) self.texte=texte diff --git a/InterfaceQT4/monWidgetFact.py b/InterfaceQT4/monWidgetFact.py index 5e519195..38f5805b 100644 --- a/InterfaceQT4/monWidgetFact.py +++ b/InterfaceQT4/monWidgetFact.py @@ -40,7 +40,6 @@ class MonWidgetFactCommun(Groupe): self.GroupBox.setText(tr(labeltext)) self.GroupBox.setTextInteractionFlags(Qt.TextSelectableByMouse) self.parentQt.commandesLayout.insertWidget(insertIn,self) - #else : self.parentQt.commandesLayout.insertWidget(0,self) self.doitAfficherOptionnel=False def enterEvent(self,event): @@ -67,5 +66,5 @@ class MonWidgetFact(Ui_WidgetFact,MonWidgetFactCommun): class MonWidgetFactTableau(Ui_WidgetFact,MonWidgetFactCommun): def __init__(self,node,editor,parentQt,definition, obj, niveau,commande,insertIn=1): MonWidgetFactCommun.__init__(self,node,editor,parentQt, definition,obj,niveau,commande,insertIn) - print ('je passe dans FactTableau') + #print ('je passe dans FactTableau') MonWidgetFactTableau.__init__(self,node,editor,parentQt, definition,obj,niveau,commande) diff --git a/InterfaceQT4/monWidgetPlusieursTuple.py b/InterfaceQT4/monWidgetPlusieursTuple.py index c289b9e8..9b3e3583 100644 --- a/InterfaceQT4/monWidgetPlusieursTuple.py +++ b/InterfaceQT4/monWidgetPlusieursTuple.py @@ -344,14 +344,34 @@ class MonWidgetPlusieursTuple(Feuille,GereListe): t=tuple(liste[i:len(liste)]) i=i+self.nbValeurs if indexDernierRempli < self.indexDernierLabel: + print ('if') nomLineEdit=self.nomLine+str(indexDernierRempli+1) LEARemplir=getattr(self,nomLineEdit) LEARemplir.lineEditVal_1.setText(str(t[0])) LEARemplir.lineEditVal_2.setText(str(t[1])) if self.nbValeurs== 3 : LEARemplir.lineEditVal_3.setText(str(t[2])) else : - self.ajoutLineEdit(t,False) - indexDernierRempli = indexDernierRempli + 1 + print ('eslse') + # ne pas appeler ajoutLineEdit(t,False ) pb de boucle pb du a etablitOrdre et a listeWidgetAffichage qui bouge + self.indexDernierLabel=self.indexDernierLabel+1 + nomLineEdit=self.nomLine+str(self.indexDernierLabel) + + if self.nbValeurs == 2 : nouveauLE = TupleCustom2(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel) + else : nouveauLE = TupleCustom3(self.nbValeurs,self.scrollArea,self,self.indexDernierLabel) + + print (nomLineEdit) + self.verticalLayoutLE.insertWidget(self.indexDernierLabel-1,nouveauLE) + setattr(self,nomLineEdit,nouveauLE) + print (nouveauLE) + nouveauLE.setValeur(t) + + self.listeAffichageWidget.append(nouveauLE.lineEditVal_1) + self.listeAffichageWidget.append(nouveauLE.lineEditVal_2) + if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal_3) + indexDernierRempli = indexDernierRempli+1 + + self.etablitOrdre() + def RBListePush(self): diff --git a/Noyau/N_ENTITE.py b/Noyau/N_ENTITE.py index 4e879847..ca70e0a5 100644 --- a/Noyau/N_ENTITE.py +++ b/Noyau/N_ENTITE.py @@ -90,6 +90,7 @@ class ENTITE(object): """ Cette methode doit retourner un objet dérivé de la classe OBJECT """ + raise NotImplementedError("La méthode __call__ de la classe %s doit être implémentée" % self.__class__.__name__) @@ -260,3 +261,19 @@ class ENTITE(object): if self.position not in ('local', 'global', 'global_jdc'): self.cr.fatal(_(u"L'attribut 'position' doit valoir 'local', 'global' " u"ou 'global_jdc' : %r"), self.position) + + def dumpXSD(self): + args = self.entites.copy() + mcs = set() + for nom, val in list(args.items()): + if val.label == 'SIMP': + mcs.add(nom) + # XXX + # if val.max != 1 and val.type == 'TXM': + # print "#CMD", parent, nom + elif val.label == 'FACT': + liste=val.dumpXSD() + mcs.update(liste) + print (self.nom, mcs) + return mcs + diff --git a/Noyau/N_SIMP.py b/Noyau/N_SIMP.py index e9cb4986..84055eb1 100644 --- a/Noyau/N_SIMP.py +++ b/Noyau/N_SIMP.py @@ -25,8 +25,8 @@ from __future__ import absolute_import import types -from . import N_ENTITE -from . import N_MCSIMP +from Noyau import N_ENTITE +from Noyau import N_MCSIMP class SIMP(N_ENTITE.ENTITE): @@ -95,6 +95,7 @@ class SIMP(N_ENTITE.ENTITE): if self.min == '**' : self.min = float('-inf') if self.val_min == '**' : self.val_min = float('-inf') self.fenetreIhm=fenetreIhm + #self.creeT_SIMP() def verifCata(self): """ @@ -115,3 +116,40 @@ class SIMP(N_ENTITE.ENTITE): de sa valeur (val), de son nom (nom) et de son parent dans l arboresence (parent) """ return self.class_instance(nom=nom, definition=self, val=val, parent=parent) + + def creeT_SIMP(self): + from Efi2Xsd.readerEfficas import monSIMP + from Efi2Xsd.mapDesTypes import dictSIMPEficasXML + + self.objXML=monSIMP() + for nomEficasArg in dictSIMPEficasXML : + argu=getattr(self,nomEficasArg) + nomXMLarg=dictSIMPEficasXML[nomEficasArg] + if not isinstance(nomXMLarg, (list, tuple)) : + print(nomXMLarg, argu) + #if nomEficasArg in listeParamDeTypeTypeAttendu: + # typeAttendu = self.typ + + setattr(self.objXML, nomXMLarg, argu) + + + +# for nomXMLArg in dir(self) : +# if nomXMLArg in self.dictATraiter : +# nomEficasArg=self.dictATraiter[nomXMLArg] +# argu=getattr(self,nomXMLArg) +# if argu==None : continue +# +# if type(nomEficasArg) == types.DictionaryType: +# for nomXML in list(nomEficasArg.keys()): +# arguDecoupe=getattr(argu,nomXML) +# nomEficasDecoupe=nomEficasArg[nomXML] +# if arguDecoupe == None : continue +# self.dictArgsEficas[nomEficasDecoupe]=arguDecoupe +# else : +# self.dictArgsEficas[nomEficasArg] = argu +# +# +# +# +# diff --git a/convert/convert_TELEMAC.py b/convert/convert_TELEMAC.py index 9204ffb8..87299eb5 100644 --- a/convert/convert_TELEMAC.py +++ b/convert/convert_TELEMAC.py @@ -97,12 +97,24 @@ class TELEMACparser(Pythonparser): from Accas import A_BLOC, A_FACT, A_SIMP - self.dicoCasToCata = appli.readercata.dicoCasToCata + try : + self.dicoCasToCata = appli.readercata.dicoCasToCata + except : + self.dicoCasToCata = {} + print ('pas de dicoCasToCata') self.dicoInverse = appli.readercata.dicoInverse self.dicoMC = appli.readercata.dicoMC self.Ordre_Des_Commandes = appli.readercata.Ordre_Des_Commandes - self.TelemacdicoEn = appli.readercata.TelemacdicoEn - self.DicoEnumCasFrToEnumCasEn = appli.readercata.DicoEnumCasFrToEnumCasEn + try : + self.TelemacdicoEn = appli.readercata.TelemacdicoEn + except : + self.TelemacdicoEn = {} + print ('pas de TelemacdicoEn') + try : + self.DicoEnumCasFrToEnumCasEn = appli.readercata.DicoEnumCasFrToEnumCasEn + except : + self.DicoEnumCasFrToEnumCasEn = {} + print ('pas de DicoEnumCasFrToEnumCasEn') if appli.langue=='fr' : -- 2.39.2