]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
correction des bugs et des chemins pour la version qt eficas multi
authorPASCALE NOYRET <pascale.noyret@edf.fr>
Fri, 1 Mar 2024 14:35:29 +0000 (15:35 +0100)
committerPASCALE NOYRET <pascale.noyret@edf.fr>
Fri, 1 Mar 2024 14:35:29 +0000 (15:35 +0100)
12 files changed:
Accas/catalog/reader_cata.py
Editeur/configuration.py
Editeur/editor.py
Editeur/editor_manager.py
Editeur/eficas_appli.py
Editeur/eficas_go.py
InterfaceGUI/QT5/monChoixCode.py
InterfaceGUI/QT5/qt_editor.py
InterfaceGUI/QT5/qt_eficas.py
InterfaceGUI/Web/.web_eficas.py.swp [new file with mode: 0644]
InterfaceGUI/Web/web_editor_manager.py
InterfaceGUI/Web/web_eficas.py

index 4910e52fee6babdca57b721ca28dfeda00d2b9cd..5a8e72d41d3b63b22af0e3b05f3fbd4d3bb14ca5 100644 (file)
@@ -80,12 +80,12 @@ class ReaderCataCommun(object):
             widgetChoix.close()
             raise EficasException()
 
+    #--------------------#
     def choisitCata(self):
     #--------------------#
 
-        listeCataPossibles = []
-
         listeTousLesCatas = []
+        listeCataPossibles = []
         for catalogue in self.appliEficas.maConfiguration.catalogues:
             if isinstance(catalogue, CatalogDescription):
                 listeTousLesCatas.append(catalogue)
@@ -106,7 +106,7 @@ class ReaderCataCommun(object):
             self.appliEficas.afficheMessage(
                     tr("Import du catalogue"),
                     tr("Pas de catalogue defini pour le code {}".format(self.code)))
-            self.appliEficas.close()
+            #self.appliEficas.close()
             if self.appliEficas.salome == 0: sys.exit(1)
             return
 
@@ -181,7 +181,6 @@ class ReaderCataCommun(object):
             else:
                 # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur
                 # lequel il veut utiliser ...
-                print ('PN : --> passer la commande askChoixCatalogue dans Editor avec sortie pour non QT / non Web')
                 #self.appliEficas.afficheMessage( tr("Import du catalogue"), tr('Aucun catalogue choisi'), critique = True)
                 self.demandeCatalogue = True
                 self.askChoixCatalogue(cataListeChoix)
index 1bda98f01563b8b885f4fd6aa3ab232189720655..d0a8750229660806372070b0672292b45cc37bfd 100644 (file)
@@ -46,13 +46,16 @@ class BaseConfiguration(object):
 
         self.appliEficas = appliEficas
         self.code = appliEficas.code
-        if self.code == None: return
         self.salome = appliEficas.salome
 
         if self.salome: name = "prefs_eficas_salome.ini"
         else: name = "prefs_eficas.ini"
-        if sys.platform == 'linux' : self.repUser = os.path.join( os.path.expanduser("~"), '.config/Eficas',self.code)
-        else : self.repUser = os.path.join('C:/','.config/Eficas',self.code)
+        if self.code != None : 
+            if sys.platform == 'linux' : self.repUser = os.path.join( os.path.expanduser("~"), '.config/Eficas',self.code)
+            else : self.repUser = os.path.join('C:/','.config/Eficas',self.code)
+        else :
+            if sys.platform == 'linux' : self.repUser = os.path.join( os.path.expanduser("~"), '.config/Eficas')
+            else : self.repUser = os.path.join('C:/','.config/Eficas')
         self.fichierPrefsUtilisateur = os.path.join(self.repUser, name)
 
         self.labelsStandards = ('PdfReader', 'saveDir', 'modeNouvCommande', 'afficheUQ', 'closeAutreCommande', 'closeFrameRechercheCommande', 
@@ -71,7 +74,7 @@ class BaseConfiguration(object):
 
         self.setValeursParDefaut()
 
-        if self.code != "":
+        if self.code != "" and self.code != None:
             self.lectureFichierIniStandard()
             self.lectureFichierIniIntegrateur()
             self.lectureFichierIniUtilisateur()
@@ -93,9 +96,13 @@ class BaseConfiguration(object):
 
         # Valeurs par defaut
         self.pathDoc = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..","Doc"))
-        self.PedfReader = "acroread"
-        nomDir = "Eficas_" + self.code
-        self.saveDir = os.path.abspath(os.path.join(os.path.expanduser("~"), nomDir))
+        self.PdfReader = "acroread"
+         
+        if self.code :
+           nomDir = "Eficas_" + self.code
+           self.saveDir = os.path.abspath(os.path.join(os.path.expanduser("~"), nomDir))
+        else :
+           self.saveDir = os.path.abspath(os.path.expanduser("~"))
         self.modeNouvCommande = "initial"
         self.affiche = "alpha"
         self.closeAutreCommande = False
index 7c5836aef4f2544ddc43db908fbc5a7d4100c94e..5dc397b8c6062d0c60faf787418d63ff70ab8965 100755 (executable)
@@ -57,9 +57,8 @@ class Editor:
         self.dicoNouveauxFact = {}
         self.dict_reels = {}
         self.liste_simp_reel = []
-        self.idUnique = uuid1().hex
-        self.appliEficas.editorManager.dictEditors[self.idUnique]=self
-
+        self.idEditor = uuid1().hex
+        self.appliEficas.editorManager.dictEditors[self.idEditor]=self
 
 
         # ces attributs sont mis a jour par definitCode appelee par newEditor
index 21b75ccb711b54671d86863a427ed63443728e85..04fc0bd828045a143013a51208cf6b75a9baafae 100644 (file)
@@ -41,15 +41,15 @@ class EditorManager(object):
         self.doubles = {}
 
 
-    # -----------------------------------------------------
-    def getEditor(self, fichier=None, jdc=None, include=0):
-    # -----------------------------------------------------
+    # -----------------------------------------------------------------
+    def getEditor(self, cata = None, fichier=None, jdc=None, include=0):
+    # -----------------------------------------------------------------
         """
           Retourne un nouvel editeur ou None si doublon 
         """
 
         if fichier == None :
-            self.appliEficas.afficheMessage('Eficas sans Ihm', 
+            self.appliEficas.afficheMessage('Eficas', 
                  'nom de fichier obligatoire pour obtenir un editor')
             return None
         for indexEditor in self.dictEditors:
@@ -63,16 +63,9 @@ class EditorManager(object):
             self.appliEficas.afficheMessage('Eficas sans Ihm', 'impossible d allouer un editor')
             return None
         self.editors.append(editor)
-        idEditor = uuid1().hex
-        self.dictEditors[idEditor] = editor
-        editor.idEditor = idEditor
+        self.dictEditors[editor.idEditor] = editor
         return editor
 
-    # --------------------------------
-    def setCurrentEditorById(self,id):
-    # --------------------------------
-        print ('a Programmer')
-        return True
       
 
     # -------------------------
index ee3dc79a5b672978782537523df2f8c2d49dd84e..e794efedb45e29c52e36fd12df4c57bfdd0bfa08 100755 (executable)
@@ -88,7 +88,6 @@ class EficasAppli:
             from Editeur.configuration import BaseConfiguration
             self.maConfiguration = BaseConfiguration(self)
 
-        self.suiteTelemac = False
         self.withUQ = False
         self.genereXSD = False
         from Editeur.editor_manager import EditorManager
@@ -144,8 +143,8 @@ class EficasAppli:
     #------------------------------------------------------
         #PN reflechir a ce que cela veut dire d avoir plusieurs editeurs
         if (hasattr(self, "editor")) and self.editor != None:
-            print("un seul editeur par application eficas_appli ")
-            sys.exit()
+            print("un seul editeur par application eficas_appli sans Ihm ? ")
+            sys.exit()
         self.editor = self.editorManager.getEditor(fichier, jdc, include)
         return self.editor
 
@@ -161,7 +160,7 @@ class EficasAppli:
         return self.editorManager.setCurrentEditorById(self,id)
 
     #---------------------------
-    def openFile(self, fichier):
+    def openDataSet(self, fichier):
     #---------------------------
         try:
             monEditor = self.editorManager.openFile(fichier)
index 4385b4ce33ea30433d6fc6dda0daa78079457941..3ce489f8d505510b434a0a42091ccd36dae9e207 100755 (executable)
@@ -256,4 +256,5 @@ def createObjetPythonFromDocumentAccas(fichierCata=None, fichier=None, code=None
 
 
 if __name__ == "__main__":
-    pass
+    if repIni not in sys.path : sys.path.insert(0,repIni)
+    lanceQtEficas(multi=True)
index 21253779e05eca82deaa0815c6057c7c338f3a40..1f6091cb90d9ff06043001123ca9ec46144cf412 100644 (file)
@@ -27,6 +27,7 @@ from PyQt5.QtWidgets import QDialog, QRadioButton, QGroupBox, QButtonGroup
 from PyQt5.QtGui import QPalette
 from PyQt5.QtCore import QProcess, QFileInfo, Qt, QSize
 
+listeCode = ("Telemac", "ReacteurNumerique", "Adao", "A", "B")
 
 # Import des panels
 
@@ -57,10 +58,9 @@ class MonChoixCode(Ui_ChoixCode, QDialog):
     def verifieInstall(self):
         self.groupCodes = QButtonGroup(self.groupBox)
         vars = list(os.environ.items())
-        listeCode = ("Telemac", "ReacteurNumerique", "Adao")
         for code in listeCode:
             dirCode = os.path.abspath(
-                os.path.join(os.path.abspath(__file__), "../..", code)
+                os.path.join(os.path.abspath(__file__), "../../../Codes", code)
             )
             try:
                 l = os.listdir(dirCode)
@@ -94,24 +94,25 @@ class MonChoixCode(Ui_ChoixCode, QDialog):
                 self.groupCodes.addButton(bouton)
             except:
                 pass
-        self.appliEficas.listeCode = self.appliEficas.listeCode + listeCodesIntegrateur
 
     def choisitCode(self):
         bouton = self.groupCodes.checkedButton()
         if bouton == None:
             return
         code = str(bouton.text())
-        codeUpper = code.upper()
-        self.appliEficas.code = codeUpper
+        self.appliEficas.code = code
         try:
             dirCode = os.path.abspath(
-                os.path.join(os.path.abspath(__file__), "../..", code)
+                os.path.join(os.path.abspath(__file__), "../../../Codes", code)
             )
             l = os.listdir(dirCode)
             sys.path.insert(0, dirCode)
         except:
             clef = "PREFS_CATA_" + code
-            repIntegrateur = os.path.abspath(os.environ[clef])
-            l = os.listdir(repIntegrateur)
-            sys.path.insert(0, repIntegrateur)
+            try:
+                repIntegrateur = os.path.abspath(os.environ[clef])
+                l = os.listdir(repIntegrateur)
+                sys.path.insert(0, repIntegrateur)
+            except :
+                print ('probleme voir la maintenance pour definir le code')
         self.close()
index 413f32573ce5a6538e61710de28278441f4f3b83..6c35db38d27d63fcf847d3be874370bccc1ed1ac 100755 (executable)
@@ -72,8 +72,8 @@ class QtEditor(Editor, Ui_baseWidget, QWidget):
         Editor.__init__(self, appliEficas, fichier, jdc, include)
 
         # on enleve la gestion du dicEditor necessaire dans les autres cas
-        # mais ici l index est le numero de page et non l idUnique
-        del self.appliEficas.editorManager.dictEditors[self.idUnique]
+        # mais ici l index est le numero de page et non l idEditor
+        del self.appliEficas.editorManager.dictEditors[self.idEditor]
 
         if self.jdc:
             comploader.chargerComposants(self.appliEficas.GUIPath)
index 24d1da9ba5bca6605084875391726e249ecd723e..da16ce0920d863ac692c06f204decb2476be91f6 100755 (executable)
@@ -58,15 +58,12 @@ class QtEficasAppli(EficasAppli, Ui_Eficas, QMainWindow):
         self.GUIPath = GUIPath
         self.suiteTelemac = self.maConfiguration.suiteTelemac
         self.multi = multi
-        if self.multi : 
-            self.definitCode(code, None)
-            if self.code == None: return
-
         if self.maConfiguration.demandeLangue:
             from InterfaceGUI.QT5.monChoixLangue import MonChoixLangue
             widgetLangue = MonChoixLangue(self)
             ret = widgetLangue.exec_()
 
+        self.recemmentUtilises = []
         from Accas.extensions import localisation
         localisation.localise(None, self.langue, translatorFile=self.maConfiguration.translatorFile,)
         self.repIcon = os.path.join( os.path.dirname(os.path.abspath(__file__)),"..", "..", "Editeur", "icons")
@@ -152,7 +149,7 @@ class QtEficasAppli(EficasAppli, Ui_Eficas, QMainWindow):
             widgetChoix = MonChoixCode(self)
             ret = widgetChoix.exec_()
         if self.code == None:
-            return  # pour le cancel de la fenetre choix code
+            return  # pour permettre une sortie propre
         EficasAppli.definitCode(self, self.code, ssCode)
 
 
@@ -309,7 +306,7 @@ class QtEficasAppli(EficasAppli, Ui_Eficas, QMainWindow):
     #------------------------------------
         if hasattr(self, "rechercherDejaLa"): return
         self.rechercherDejaLa = True
-        self.actionRechercherDsCatalogue.triggered.connect( self.rechercherDejaLaechercherMotClefDsCatalogue)
+        self.actionRechercherDsCatalogue.triggered.connect( self.rechercherMotClefDsCatalogue)
 
     #-----------------------------
     def ajoutSortieComplete(self):
diff --git a/InterfaceGUI/Web/.web_eficas.py.swp b/InterfaceGUI/Web/.web_eficas.py.swp
new file mode 100644 (file)
index 0000000..5fe9d4a
Binary files /dev/null and b/InterfaceGUI/Web/.web_eficas.py.swp differ
index 74c0b3c53ba87de8bb120932952ca002902aa85b..56f2694301c27ac8ac2f819dea9e68c36353f0c6 100644 (file)
@@ -48,17 +48,16 @@ class WebEditorManager(EditorManager):
 
 
     # ------------------------------------------------------
-    def getEditor(self, fichier=None, jdc=None, session = 1 ):
+    def getEditor(self, sId=None, cata=None, fichier=None
     # ------------------------------------------------------
         """
           Retourne un nouvel editeur ou le meme si doublon
           gere la liste des connexions pour propager les infos
-          a affiner : le nom du fichier n est pas determinant
           il faut aussi la machine dont il provient
         """
         for indexEditor in self.dictEditors:
             editor = self.dictEditors[indexEditor]
-            if self.samePath(fichier, editor.getFileName()):
+            if self.samePath(cata, editor.getCataName()) and self.samePath(fichier, editor.getFileName()):
                 double = editor
                 break
         else:
index b63e97f8958c9c5cd84637e74bbc88c473222d46..c79b6c1f459cd8a02b6d3aff487ce1ea26cbfb80 100755 (executable)
@@ -51,14 +51,14 @@ class WebEficasAppli(EficasAppli):
 
 
     #-----------------------------------------
-    def toWebApp(self, fction,*args, **kwargs):
+    def toWebApp(self,fction, sid, eid *args, **kwargs):
     #-----------------------------------------
         #if fction =='propageValide' :
         debug=0
-        if debug  : print ('PNPNPN : WebEficasAppli.toWebApp',  fction, *args, **kwargs)
+        if debug  : print ('PNPNPN : WebEficasAppli.toWebApp',  fction, sid, eid, *args, **kwargs)
         if self.appWeb == None  : return
         #if fction =='propageValide' : print ('self.appWeb.toWebApp propageValide', self.monEditeur.getNodeById(args[0]).nom)
-        self.appWeb.fromConnecteur(fction, *args, **kwargs)
+        self.appWeb.fromConnecteur(fction, sid, eid, *args, **kwargs)
 
     #-----------------------
     def createEditor(self):