From d4072421b20b73f903b4ee8c6d790492846bae43 Mon Sep 17 00:00:00 2001
From: "pascale.noyret"
Date: Wed, 7 Nov 2018 17:51:49 +0100
Subject: [PATCH] 1ere version silvia
---
Efi2Xsd/MCAccasXsd.py | 90 +++---
Ihm/I_FICHIER.py | 2 +-
Ihm/I_JDC.py | 13 +-
Ihm/I_MCCOMPO.py | 40 ++-
Ihm/I_MCFACT.py | 6 +-
Ihm/I_MCLIST.py | 4 +-
InterfaceQT4/browser.py | 14 +-
InterfaceQT4/compocomm.py | 2 +-
InterfaceQT4/composimp.py | 55 ++--
InterfaceQT4/configuration.py | 2 +
InterfaceQT4/editor.py | 49 +---
InterfaceQT4/editorSsIhm.py | 145 +++++++---
InterfaceQT4/feuille.py | 3 +
InterfaceQT4/getVersion.py | 4 +-
InterfaceQT4/monWidgetCommande.py | 1 +
InterfaceQT4/monWidgetPlusieursBase.py | 7 +-
InterfaceQT4/qtEficas.py | 2 +-
InterfaceQT4/qtEficasSsIhm.py | 8 +-
InterfaceQT4/readercata.py | 2 +-
Noyau/N_MCCOMPO.py | 3 +-
Noyau/N_MCSIMP.py | 3 +-
Noyau/N_VALIDATOR.py | 7 +-
silvia/.cata_DPD.py.swp | Bin 0 -> 20480 bytes
silvia/DPD_en.qm | Bin 0 -> 3498 bytes
silvia/DPD_en.ts | 155 ++++++++++
silvia/Doc/CONTROL | 20 ++
silvia/Doc/CORREL | 47 ++++
silvia/Doc/FIELD | 9 +
silvia/Doc/INPUT_MD_DPD.txt | 214 ++++++++++++++
silvia/Doc/OUTPUT | 242 ++++++++++++++++
.../bad/4369B8C0.tmp:Zone.Identifier:$DATA | 2 +
.../bad/4C0D0143.tmp:Zone.Identifier:$DATA | 2 +
.../Doc/bad/60B1CB6.tmp:Zone.Identifier:$DATA | 2 +
.../bad/63D1CA77.tmp:Zone.Identifier:$DATA | 2 +
.../bad/A4CE94A5.tmp:Zone.Identifier:$DATA | 2 +
silvia/__init__.py | 0
silvia/cata_DPD.py | 123 ++++++++
silvia/cata_DPD_genere.xsd | 264 ++++++++++++++++++
silvia/cata_DPD_ref.py | 123 ++++++++
silvia/configuration_DPD.py | 43 +++
silvia/linguist | 3 +
silvia/prefs.py | 24 ++
silvia/prefs_DPD.py | 51 ++++
silvia/qtEficasDPD.py | 38 +++
44 files changed, 1628 insertions(+), 200 deletions(-)
create mode 100644 silvia/.cata_DPD.py.swp
create mode 100644 silvia/DPD_en.qm
create mode 100644 silvia/DPD_en.ts
create mode 100644 silvia/Doc/CONTROL
create mode 100644 silvia/Doc/CORREL
create mode 100644 silvia/Doc/FIELD
create mode 100644 silvia/Doc/INPUT_MD_DPD.txt
create mode 100644 silvia/Doc/OUTPUT
create mode 100644 silvia/Doc/bad/4369B8C0.tmp:Zone.Identifier:$DATA
create mode 100644 silvia/Doc/bad/4C0D0143.tmp:Zone.Identifier:$DATA
create mode 100644 silvia/Doc/bad/60B1CB6.tmp:Zone.Identifier:$DATA
create mode 100644 silvia/Doc/bad/63D1CA77.tmp:Zone.Identifier:$DATA
create mode 100644 silvia/Doc/bad/A4CE94A5.tmp:Zone.Identifier:$DATA
create mode 100644 silvia/__init__.py
create mode 100644 silvia/cata_DPD.py
create mode 100644 silvia/cata_DPD_genere.xsd
create mode 100644 silvia/cata_DPD_ref.py
create mode 100644 silvia/configuration_DPD.py
create mode 100644 silvia/linguist
create mode 100644 silvia/prefs.py
create mode 100644 silvia/prefs_DPD.py
create mode 100755 silvia/qtEficasDPD.py
diff --git a/Efi2Xsd/MCAccasXsd.py b/Efi2Xsd/MCAccasXsd.py
index 89fa46f6..8d5d111a 100755
--- a/Efi2Xsd/MCAccasXsd.py
+++ b/Efi2Xsd/MCAccasXsd.py
@@ -17,7 +17,8 @@ class X_OBJECT:
# -------------
def delObjPyxb(self):
- print ('----------- delObjPyxb', self.nom)
+ if not self.cata.modeleMetier : return
+ #print ('----------- delObjPyxb', self.nom)
trouve = False
listeArg=[]
for i in self.perePyxb.objPyxb.orderedContent():
@@ -27,21 +28,49 @@ class X_OBJECT:
grandPere=self.perePyxb.perePyxb
ancienObjPerePyxb=self.perePyxb.objPyxb
- print (listeArg)
+ #print (listeArg)
nvlObjPerePyxb=self.perePyxb.maClasseModeleMetier(*listeArg)
- print (nvlObjPerePyxb)
+ #print (nvlObjPerePyxb)
self.perePyxb.objPyxb=nvlObjPerePyxb
self.perePyxb.objPyxb.objAccas=ancienObjPerePyxb.objAccas
- print (self.nom, ' a pour gp ', grandPere)
+ #print (self.nom, ' a pour gp ', grandPere)
if grandPere : grandPere.reconstruitAvecNvlObj(ancienObjPerePyxb,nvlObjPerePyxb)
- print ('----------- fin delObjPyxb', self.nom)
+ #print ('----------- fin delObjPyxb', self.nom)
def addObjPyxb(self,indiceDansLeContenu):
- print ('addObjPyxb ds X_OBJECT')
+ if not self.cata.modeleMetier : return
+ print ('_____________ addObjPyxb ds X_OBJECT', self.nom, indiceDansLeContenu)
+ # adherence Accas sur le parent
+ parent=self.parent
+ while (parent.isBLOC()): parent=parent.parent
+ self.perePyxb=parent
+ grandPere=self.perePyxb.perePyxb
+ ancienObjPerePyxb=self.perePyxb.objPyxb
+ print ('dans le perePyxb', self.perePyxb.nom)
+ self.objPyxb.objAccas=self
+
+ listeArg=[]
+ indice=0
+ # a tester
+ # a affiner si on ajoute en fin
+ for i in self.perePyxb.objPyxb.orderedContent():
+ if indice==indiceDansLeContenu : listeArg.append(self.objPyxb)
+ else : listeArg.append(i._Content__value)
+ indice=indice+1
+ if indiceDansLeContenu > len(self.perePyxb.objPyxb.orderedContent()):
+ listeArg.append(self.objPyxb)
+
+ print ('avec', listeArg)
+ nvlObjPerePyxb=self.perePyxb.maClasseModeleMetier(*listeArg)
+ self.perePyxb.objPyxb=nvlObjPerePyxb
+ self.perePyxb.objPyxb.objAccas=ancienObjPerePyxb.objAccas
+ print (self.nom, ' a pour gp ', grandPere)
+ if grandPere : grandPere.reconstruitAvecNvlObj(ancienObjPerePyxb,nvlObjPerePyxb)
def reconstruitAvecNvlObj(self, ancienObj,nvlObj):
+ if not self.cata.modeleMetier : return
print ('reconstruitAvecNvlObj pour', self, self.nom, ancienObj,nvlObj)
listeArg=[]
for i in self.objPyxb.orderedContent():
@@ -62,7 +91,7 @@ class X_MCSIMP(X_OBJECT):
# self.valeur tient compte de la valeur par defaut
# utiliser getValeur ? expression numpy
if not self.cata.modeleMetier : return
- #print ('X_MCSIMP buildObjPyxb', self.nom, self,self.valeur)
+ print ('X_MCSIMP buildObjPyxb', self.nom, self,self.valeur)
#if self.nom == 'diameter' :
# traceback.print_stack()
# print ('****************************************************')
@@ -114,14 +143,14 @@ class X_MCSIMP(X_OBJECT):
def addObjPyxb(self, indiceDsLeContenu):
if not self.cata.modeleMetier : return
- print ('addObjPyxb : ajout de ', self.nom, 'en ', indiceDsLeContenu)
+ #print ('addObjPyxb : ajout de ', self.nom, 'en ', indiceDsLeContenu)
# adherence Accas sur le parent
parent=self.parent
while (parent.isBLOC() ): parent=parent.parent
self.perePyxb=parent
- print ('dans le perePyxb', self.perePyxb.nom)
- print (dir(self.perePyxb))
+ #print ('dans le perePyxb', self.perePyxb.nom)
+ #print (dir(self.perePyxb))
self.monNomClasseModeleMetier='T_'+self.nom
self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
@@ -169,10 +198,11 @@ class X_MCCOMPO(X_OBJECT) :
else :
self.objPyxb=self.maClasseModeleMetier(*self.listArg)
self.objPyxb.objAccas=self
- #print ('X_MCCOMPO', self.nom, self.objPyxb)
- #print ('_______________________________________')
+ print ('X_MCCOMPO', self, self.nom, self.objPyxb)
+ print ('_______________________________________')
def delObjPyxb(self):
+ if not self.cata.modeleMetier : return
print ('******************************************')
print ('je passe ds delObjPyxb pour ', self, self.nom)
print (self.perePyxb)
@@ -222,39 +252,9 @@ class X_MCLIST (X_MCCOMPO):
# --------------------------
def buildObjPyxb(self,mc_list):
+ print ('X_MCLIST buildObjPyxb ne fait rien', self.nom, self, mc_list)
pass
- #def build2ObjPyxb(self,mc_list):
- # print ('_______________________________________')
- # print ('X_MCLIST buildObjPyxb traite ds X_MCLIST', self.nom, self)
- # if not self.cata.modeleMetier : return
- # self.monNomClasseModeleMetier='T_'+self.nom
- # self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
- # listArg=[]
- # MCList est une liste
- # for nbDeSequence in self :
- # for objAccas in nbDeSequence.mcListe :
- #print (type (objAccas))
- #print (objAccas.nom, objAccas.objPyxb, type(objAccas.objPyxb))
- #print ( type (objAccas.objPyxb) == list )
- #if type (objAccas.objPyxb) == list :
- #print ('ds le if')
- # for fils in objAccas.objPyxb :
- # listArg.append(fils.objPyxb)
- # fils.perePyxb=self
- #print (fils.nom ,' a pour pere Pyxb', self, self.nom)
- # else :
- # listArg.append(objAccas.objPyxb)
- # objAccas.perePyxb=self
- #print (objAccas.nom ,' a pour pere Pyxb', self, self.nom)
- #listArg.append(objAccas.objPyxb)
- #objAccas.perePyxb=self
- #print ( objAccas.nom, ' a pour perepyxb ' , objAccas.perePyxb.nom)
-
- # print ('X_MCLIST', self.nom, self, listArg)
- # self.objPyxb=self.maClasseModeleMetier(*listArg)
- # print ('fin buildObjPyxb traite ds X_MCLIST', self.nom, self, self.objPyxb)
- # print ('_______________________________________')
class X_MCFACT (X_MCCOMPO):
# -------------------------
@@ -287,7 +287,7 @@ class X_JDC (X_MCCOMPO):
print ('enregistre ds ',self, etape.nom, 'indice = ', indice)
if not self.cata.modeleMetier : return
self.objPyxb.append(etape.objPyxb)
- print (self.objPyxb.orderedContent())
+ #print (self.objPyxb.orderedContent())
if indice != (len(self.objPyxb.orderedContent()) -1) :
tampon=self.objPyxb.orderedContent()[-1]
for i in reversed(range(len(self.objPyxb.orderedContent()))):
@@ -295,7 +295,7 @@ class X_JDC (X_MCCOMPO):
if i == indice + 1 : break
self.objPyxb.orderedContent()[indice]=tampon
- print (self.objPyxb.orderedContent())
+ #print (self.objPyxb.orderedContent())
etape.perePyxb = self
try:
self.objPyxb.validateBinding()
diff --git a/Ihm/I_FICHIER.py b/Ihm/I_FICHIER.py
index c53da319..31b12cae 100644
--- a/Ihm/I_FICHIER.py
+++ b/Ihm/I_FICHIER.py
@@ -30,7 +30,7 @@ class Fichier:
def __convert__(self,valeur):
# Attention ne verifie pas grand chose
# cela vaut-il la peine de refaire ce que Qt fait tres bien
- if type(valeur) != bytes :
+ if type(valeur) != bytes and type(valeur) != str:
return None
return valeur
diff --git a/Ihm/I_JDC.py b/Ihm/I_JDC.py
index 99589568..47fa2a7e 100644
--- a/Ihm/I_JDC.py
+++ b/Ihm/I_JDC.py
@@ -39,6 +39,11 @@ from Extensions import commentaire ,parametre ,parametre_eval
from . import CONNECTOR
import Validation
+try:
+ basestring
+except NameError:
+ basestring = str
+
class LASSD:
pass
@@ -71,7 +76,8 @@ class JDC(I_OBJECT.OBJECT):
l=[]
for k,v in d.items():
- if type(v) != types.InstanceType and not isinstance(v,object): continue
+ #if type(v) != types.InstanceType and not isinstance(v,object): continue
+ if not isinstance(v,object): continue
# On considere que seul assd indique un type quelconque pas CO
elif self.assd in types_permis :
if v.etape.sdnom != "sansnom" : l.append(k)
@@ -303,6 +309,7 @@ class JDC(I_OBJECT.OBJECT):
self.resetContext()
self.editmode=0
self.activeEtapes()
+ self.enregistreEtapePyxb(e,pos)
CONNECTOR.Emit(self,"add",e)
self.finModif()
return e
@@ -434,7 +441,7 @@ class JDC(I_OBJECT.OBJECT):
#if actif == 0 and etape.nom in ['DEBUT','POURSUITE']:actif=1
#if actif == 1:
etape.active()
- self.enregistreEtapePyxb(etape)
+ #self.enregistreEtapePyxb(etape)
#else:
# etape.inactive()
#if etape.nom == 'FIN':actif=-1
@@ -478,7 +485,7 @@ class JDC(I_OBJECT.OBJECT):
self.initModif()
index_etape=self.etapes.index(etape)
- etape.deletePyxbObject()
+ #etape.delObjPyxb()
self.etapes.remove(etape)
if etape.niveau is not self:
diff --git a/Ihm/I_MCCOMPO.py b/Ihm/I_MCCOMPO.py
index e8079a7c..b7e671d4 100644
--- a/Ihm/I_MCCOMPO.py
+++ b/Ihm/I_MCCOMPO.py
@@ -41,7 +41,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
Retourne le label de self
utilise pour l'affichage dans l'arbre
"""
- return self.nom
+ return tr(self.nom)
def getListeMcOrdonnee(self,liste,dico):
"""
@@ -163,15 +163,31 @@ class MCCOMPO(I_OBJECT.OBJECT):
index=index+1
return index
- def findRangObjetDsArbre(self,objet) :
+ def chercheIndiceDsLeContenu(self,objet) :
# uniquement pour Pyxb
- # parcourt les Blocs
+ # ajoute la taille des les Blocs
+ if objet.nature == 'MCList' : objet=objet[0]
+ #print ('je cherche ',objet)
leRang=0
- pos=self.mcListe.index(objet)
+ positionDsLaListe=0
+ positionDsLaListeDeFactSiFact=0
+ #print ('dans ',self.mcListe)
+ try :
+ positionDsListe=self.mcListe.index(objet)
+ except :
+ for mc in self.mcListe:
+ if mc.nature == 'MCList':
+ try :
+ positionDsLaListeDeFactSiFact=mc.index(objet)
+ break
+ except :
+ positionDsLaListe=positionDsLaListe+1
+ else : positionDsLaListe=positionDsLaListe+1
i=0
- while (i+1) < pos :
+ while (i+1) < positionDsLaListe :
leRang= leRang + self.mcListe[i].longueurDsArbre()
i=i+1
+ leRang=leRang+positionDsLaListeDeFactSiFact
return leRang
@@ -203,7 +219,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
return 0
self.initModif()
- objet.deletePyxbObject()
+ objet.delObjPyxb()
self.mcListe.remove(objet)
CONNECTOR.Emit(self,"supp",objet)
objet.deleteMcGlobal()
@@ -221,8 +237,9 @@ class MCCOMPO(I_OBJECT.OBJECT):
Ajoute le mot-cle name a la liste des mots-cles de
l'objet MCCOMPOSE
"""
+ print ('addEntite', name, pos)
self.initModif()
- if type(name)==bytes :
+ if type(name)==bytes or type(name) == str :
# on est en mode creation d'un motcle
if self.ispermis(name) == 0 : return 0
objet=self.definition.entites[name](val=None,nom=name,parent=self)
@@ -255,7 +272,8 @@ class MCCOMPO(I_OBJECT.OBJECT):
self.mcListe.insert(pos,objet)
# Il ne faut pas oublier de reaffecter le parent d'obj (si copie)
objet.reparent(self)
- objet.addPyxbObject(self.findRangObjetDsArbre(objet))
+ if self.cata.modeleMetier :
+ objet.addObjPyxb(self.chercheIndiceDsLeContenu(objet))
CONNECTOR.Emit(self,"add",objet)
objet.updateMcGlobal()
objet.updateConditionBloc()
@@ -271,7 +289,11 @@ class MCCOMPO(I_OBJECT.OBJECT):
return 0
else:
# une liste d'objets de meme type existe deja
+ print (objet)
+ print (old_obj)
old_obj.addEntite(objet)
+ if self.cata.modeleMetier :
+ objet[0].addObjPyxb(self.chercheIndiceDsLeContenu(objet))
self.finModif()
return old_obj
@@ -281,7 +303,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
est bien permis, cad peut bien etre un fils de self,
Retourne 0 sinon
"""
- if type(fils) == bytes :
+ if type(fils) == bytes or type(fils) == str :
# on veut juste savoir si self peut avoir un fils de nom 'fils'
if fils in self.definition.entites:
return 1
diff --git a/Ihm/I_MCFACT.py b/Ihm/I_MCFACT.py
index 6e30cc1e..b0d49fe9 100644
--- a/Ihm/I_MCFACT.py
+++ b/Ihm/I_MCFACT.py
@@ -55,7 +55,7 @@ class MCFACT(I_MCCOMPO.MCCOMPO):
isole ou d'un MCFACT appartenant a une MCList :
utilisee pour l'affichage dans l'arbre
"""
- objet = self.parent.getChild(self.nom)
+ objet = self.parent.getChild(self.nom, restreint='oui')
# objet peut-etre self ou une MCList qui contient self ...
if objet is None or objet is self:
return tr("Erreur - mclist inexistante : %s", self.nom)
@@ -63,9 +63,9 @@ class MCFACT(I_MCCOMPO.MCCOMPO):
try:
if len(objet) > 1 :
index = objet.getIndex(self)+1 # + 1 a cause de la numerotation qui commence a 0
- return self.nom +'_'+repr(index)+':'
+ return tr(self.nom) +'_'+repr(index)+':'
else:
- return self.nom
+ return tr(self.nom)
except:
return tr("Erreur - mot cle facteur de nom : %s", self.nom)
diff --git a/Ihm/I_MCLIST.py b/Ihm/I_MCLIST.py
index 15e80c99..834b4c3e 100644
--- a/Ihm/I_MCLIST.py
+++ b/Ihm/I_MCLIST.py
@@ -80,7 +80,7 @@ class MCList:
self.remove(obj)
CONNECTOR.Emit(self,"supp",obj)
self.updateConditionBloc()
- obj.deletePyxbObject()
+ obj.delObjPyxb()
obj.supprime()
self.etape.modified()
self.finModif()
@@ -91,7 +91,7 @@ class MCList:
Ajoute le mot cle facteur obj a la MCLIST a la position pos
Retourne None si l'ajout est impossible
"""
- if type(obj)==bytes :
+ if type(obj)==bytes or type(obj) == str :
# on est en mode creation d'un motcle
raise EficasException(tr("traitement non-prevu"))
diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py
index a49edc41..0718e9b9 100644
--- a/InterfaceQT4/browser.py
+++ b/InterfaceQT4/browser.py
@@ -30,8 +30,6 @@ import types,sys,os
import traceback
from . import typeNode
-import six
-from six.moves import range
from PyQt5.QtWidgets import QTreeWidget , QTreeWidgetItem, QApplication, QMessageBox
from PyQt5.QtGui import QIcon
@@ -192,7 +190,7 @@ class JDCTree( QTreeWidget,GereRegles ):
else : txt=fr
if self.editor:
- self.editor.afficheCommentaire(six.text_type(txt))
+ self.editor.afficheCommentaire(str(txt))
except:
pass
item.select()
@@ -570,10 +568,12 @@ class JDCNode(QTreeWidgetItem,GereRegles):
elif type(pos) == int :
# position fixee
index = pos
- elif type(pos) == types.InstanceType:
+ elif type(pos) == object:
+ #elif type(pos) == types.InstanceType:
# pos est un item. Il faut inserer name apres pos
index = self.item.getIndex(pos) +1
- elif type(name) == types.InstanceType:
+ #elif type(name) == types.InstanceType:
+ elif type(name) == object:
index = self.item.getIndexChild(name.nom)
else:
index = self.item.getIndexChild(name)
@@ -733,7 +733,8 @@ class JDCNode(QTreeWidgetItem,GereRegles):
#print "NODE updateNodeLabel", self.item.getLabelText()
labeltext,fonte,couleur = self.item.getLabelText()
# PNPN a reflechir
- self.setText(0, labeltext)
+ if self.item.nom != tr(self.item.nom) : labeltext = str(tr(self.item.nom)+" :")
+ self.setText(0, tr(labeltext))
def updateNodeLabelInBlack(self):
if hasattr(self.appliEficas,'noeudColore'):
@@ -744,6 +745,7 @@ class JDCNode(QTreeWidgetItem,GereRegles):
if hasattr(self.appliEficas,'noeudColore'): self.appliEficas.noeudColore.setForeground(0,Qt.black)
self.setForeground(0,Qt.blue)
labeltext,fonte,couleur = self.item.getLabelText()
+ if self.item.nom != tr(self.item.nom) : labeltext = str(tr(self.item.nom)+" :")
self.setText(0, labeltext)
self.appliEficas.noeudColore=self
diff --git a/InterfaceQT4/compocomm.py b/InterfaceQT4/compocomm.py
index cedfadce..8a83ce8f 100644
--- a/InterfaceQT4/compocomm.py
+++ b/InterfaceQT4/compocomm.py
@@ -53,7 +53,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
"""
"""
debComm=self.item.getText()
- self.setText(1,debComm)
+ self.setText(1,tr(debComm))
diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py
index c9a3ef1d..9566ef2a 100644
--- a/InterfaceQT4/composimp.py
+++ b/InterfaceQT4/composimp.py
@@ -525,7 +525,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def setValeurCo(self,nom_co):
"""
- Affecte au MCS pointé par self l'objet de type CO et de nom nom_co
+ Affecte au MCS pointe par self l'objet de type CO et de nom nom_co
"""
ret = self.object.setValeurCo(nom_co)
#print "setValeurCo",ret
@@ -533,8 +533,8 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def getSdAvantDuBonType(self):
"""
- Retourne la liste des noms des SD présentes avant l'étape qui contient
- le MCS pointé par self et du type requis par ce MCS
+ Retourne la liste des noms des SD presentes avant l'etape qui contient
+ le MCS pointe par self et du type requis par ce MCS
"""
a=self.object.etape.parent.getSdAvantDuBonType(self.object.etape,self.object.definition.type)
return a
@@ -569,7 +569,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def waitCo(self):
"""
- Méthode booléenne qui retourne 1 si l'objet pointé par self
+ Methode booleenne qui retourne 1 si l'objet pointe par self
attend un objet de type ASSD qui n'existe pas encore (type CO()),
0 sinon
"""
@@ -585,7 +585,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def waitGeom(self):
"""
- Méthode booléenne qui retourne 1 si l'objet pointé par self
+ Methode booleenne qui retourne 1 si l'objet pointe par self
attend un objet GEOM, 0 sinon
"""
return self.object.waitGeom()
@@ -595,7 +595,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def waitComplex(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
+ """ Methode booleenne qui retourne 1 si l'objet pointe par self
attend un complexe, 0 sinon """
if 'C' in self.object.definition.type:
return 1
@@ -603,8 +603,8 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
return 0
def waitReel(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un réel, 0 sinon """
+ """ Methode booleenne qui retourne 1 si l'objet pointe par self
+ attend un reel, 0 sinon """
if 'R' in self.object.definition.type:
return 1
else:
@@ -614,16 +614,16 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
return self.object.waitTuple()
def waitDate(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un réel, 0 sinon """
+ """ Methode booleenne qui retourne 1 si l'objet pointe par self
+ attend un reel, 0 sinon """
if 'DateHHMMAAAA' in self.object.definition.type:
return 1
else:
return 0
def waitHeure(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un réel, 0 sinon """
+ """ Methode booleenne qui retourne 1 si l'objet pointe par self
+ attend un reel, 0 sinon """
if 'HeureHHMMSS' in self.object.definition.type:
return 1
else:
@@ -632,7 +632,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def waitTuple(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
+ """ Methode booleenne qui retourne 1 si l'objet pointe par self
attend un Tuple, 0 sinon """
for ss_type in self.object.definition.type:
if repr(ss_type).find('Tuple') != -1 :
@@ -640,7 +640,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
return 0
def waitMatrice(self):
- """ Méthode booléenne qui retourne 1 si l'objet pointé par self
+ """ Methode booleenne qui retourne 1 si l'objet pointe par self
attend un Tuple, 0 sinon """
for ss_type in self.object.definition.type:
if repr(ss_type).find('Matrice') != -1 :
@@ -648,8 +648,8 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
return 0
def waitAssd(self):
- """Méthode booléenne qui retourne 1 si l'objet pointé par self
- attend un objet de type ASSD ou dérivé, 0 sinon """
+ """Methode booleenne qui retourne 1 si l'objet pointe par self
+ attend un objet de type ASSD ou derive, 0 sinon """
return self.object.waitAssd()
def waitAssdOrTypeBase(self) :
@@ -673,7 +673,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def getType(self):
"""
- Retourne le type de valeur attendu par l'objet représenté par l'item.
+ Retourne le type de valeur attendu par l'objet represente par l'item.
"""
return self.object.getType()
@@ -697,7 +697,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def evalValeurItem(self,valeur):
- """ Lance l'interprétation de 'valeur' qui doit ne pas etre un tuple
+ """ Lance l'interpretation de 'valeur' qui doit ne pas etre un tuple
- va retourner la valeur de retour et la validite
selon le type de l objet attendu
- traite les reels et les parametres
@@ -719,7 +719,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
#print "evalValeurItem",valeurretour,validite
if validite == 0:
- if type(valeur) == bytes and self.object.waitTxm():
+ if (type(valeur) == bytes or type(valeur) == str )and self.object.waitTxm():
essai_valeur="'" + valeur + "'"
valeurretour,validite= self.object.evalValeur(essai_valeur)
@@ -736,7 +736,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
#except:
#valeurretour=None
#validite=0
- # on est dans le cas ou on a évalué et ou on n'aurait pas du
+ # on est dans le cas ou on a evalue et ou on n'aurait pas du
if self.object.waitTxm() :
if type(valeurretour) != bytes:
valeurretour=str(valeur)
@@ -746,18 +746,19 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def isCO(self,valeur=None):
"""
Indique si valeur est un concept produit de la macro
- Cette méthode n'a de sens que pour un MCSIMP d'une MACRO
+ Cette methode n'a de sens que pour un MCSIMP d'une MACRO
Si valeur vaut None on teste la valeur du mot cle
"""
# Pour savoir si un concept est un nouveau concept de macro
- # on regarde s'il est présent dans l'attribut sdprods de l'étape
+ # on regarde s'il est present dans l'attribut sdprods de l'etape
# ou si son nom de classe est CO.
# Il faut faire les 2 tests car une macro non valide peut etre
# dans un etat pas tres catholique avec des CO pas encore types
# et donc pas dans sdprods (resultat d'une exception dans typeSDProd)
if not valeur:valeur=self.object.valeur
if valeur in self.object.etape.sdprods:return 1
- if type(valeur) is not types.InstanceType:return 0
+ #if type(valeur) is not types.InstanceType:return 0
+ if type(valeur) is not object:return 0
if valeur.__class__.__name__ == 'CO':return 1
return 0
@@ -769,8 +770,8 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
def traiteReel(self,valeur):
"""
- Cette fonction a pour but de rajouter le '.' en fin de chaine pour un réel
- ou de détecter si on fait référence a un concept produit par DEFI_VALEUR
+ Cette fonction a pour but de rajouter le '.' en fin de chaine pour un reel
+ ou de detecter si on fait reference a un concept produit par DEFI_VALEUR
ou un EVAL ...
"""
valeur = valeur.strip()
@@ -779,10 +780,10 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
return valeur
if len(valeur) >= 3 :
if valeur[0:4] == 'EVAL' :
- # on a trouvé un EVAL --> on retourne directement la valeur
+ # on a trouve un EVAL --> on retourne directement la valeur
return valeur
if valeur.find('.') == -1 :
- # aucun '.' n'a été trouvé dans valeur --> on en rajoute un a la fin
+ # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin
if (self.isParam(valeur)):
return valeur
else:
diff --git a/InterfaceQT4/configuration.py b/InterfaceQT4/configuration.py
index 0c094e4f..9871a752 100644
--- a/InterfaceQT4/configuration.py
+++ b/InterfaceQT4/configuration.py
@@ -234,3 +234,5 @@ class configBase(object):
#
+def makeConfig(appli,rep):
+ return configBase(appli,rep)
diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py
index a95c1c62..5805019a 100755
--- a/InterfaceQT4/editor.py
+++ b/InterfaceQT4/editor.py
@@ -112,7 +112,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
if self.code in ['Adao','ADAO','MAP'] : self.afficheApresInsert=True
if self.code in ['TELEMAC',] : self.enteteQTree='premier'
else : self.enteteQTree='complet'
- if self.code in ['Adao','ADAO','TELEMAC'] : self.affichePlie=True
+ if self.code in ['Adao','ADAO','TELEMAC','VP'] : self.affichePlie=True
else : self.affichePlie=False
self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
@@ -420,7 +420,6 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
# si possible on renomme l objet comme le noeud couper
if (self.QWParent.edit == "couper"):
- #print ('je pass la')
if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
@@ -521,9 +520,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
nodeOuAjouter=self.node_selected[0]
if nodeOuAjouter != self.tree.racine :
while nodeOuAjouter.treeParent != self.tree.racine:
- #print (nodeOuAjouter)
nodeOuAjouter=nodeOuAjouter.treeParent
- #print (nodeOuAjouter.parent == self.tree.racine)
nouveau=nodeOuAjouter.appendBrother(nomEtape)
try :
self.node_selected[0].setSelected(False)
@@ -848,7 +845,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
self.tree.racine.updateNodeLabel()
#print ('sortie du XML')
- #self.jdc.toXml()
+ self.jdc.toXml()
if self.jdc.isValid() != 0 and hasattr(self.generator, "writeDefault"):
#if hasattr(self.generator, "writeDefault"):
@@ -993,47 +990,6 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
# dans le JDC
self.jdc.suppEntite(etape)
- #-------------------------------------#
- def deleteMC(self,etape,MCFils,listeAvant=()):
- #-------------------------------------#
- # dans le JDC
- ouChercher=etape
- for mot in listeAvant :
- ouChercher=ouChercher.getChild(mot,restreint="oui")
- monMC=ouChercher.getChild(MCFils,restreint="oui")
- if monMC != None : ouChercher.suppEntite(monMC)
- ouChercher.state='changed'
- ouChercher.isValid()
-
- #-------------------------------------#
- def ajoutMC(self,etape,MCFils,valeurs,listeAvant=()):
- #-------------------------------------#
- # dans le JDC
- ouChercher=etape
- for mot in listeAvant :
- ouChercher=ouChercher.getChild(mot,restreint="oui")
- monMC=etape.getChild(ouChercher,restreint="oui")
- if monMC== None : monMC= ouChercher.addEntite(MCFils)
- monMC.valeur=valeurs
- monMC.val=valeurs
- monMC.state='changed'
- monMC.isValid()
-
- #----------------------------------------------#
- def ajoutMCFact(self,etape,MCFils,listeAvant=()):
- #----------------------------------------------#
- # dans le JDC
- #print ('ajoutMCFact')
- ouChercher=etape
- #print (ouChercher)
- for mot in listeAvant :
- ouChercher=ouChercher.getChild(mot,restreint="oui")
- #print (mot)
- #print (ouChercher)
- monMC=etape.getChild(ouChercher,restreint="oui")
- if monMC== None : monMC= ouChercher.addEntite(MCFils)
- monMC.isValid()
-
#-----------------------------------------
def initSplitterSizes(self, nbWidget=3):
@@ -1115,7 +1071,6 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
#-----------------------
def getEtapeCourante(self) :
#-----------------------
- #print (self.tree.selectedItems())
if len(self.tree.selectedItems()) != 1 : return None
etape=self.tree.selectedItems()[0].item.object.getEtape()
return etape
diff --git a/InterfaceQT4/editorSsIhm.py b/InterfaceQT4/editorSsIhm.py
index 0e3cb69d..58c1ecd0 100755
--- a/InterfaceQT4/editorSsIhm.py
+++ b/InterfaceQT4/editorSsIhm.py
@@ -28,8 +28,6 @@ import types,sys,os, re
import subprocess
import traceback
-import six
-from six.moves import range
import traceback
@@ -169,7 +167,6 @@ class JDCEditorSsIhm :
self.jdc.aReafficher=False
txt_exception = None
if not jdc:
-# si on est en XMML ne faut-il pas passer en Accas ?
self.jdc.analyse()
txt_exception = self.jdc.cr.getMessException()
if txt_exception :
@@ -190,7 +187,7 @@ class JDCEditorSsIhm :
# charge un JDC
# paticularisee avec Ihm
- fn = six.text_type(fn)
+ fn = str(fn)
jdcName=os.path.basename(fn)
# Il faut convertir le contenu du fichier en fonction du format
@@ -223,7 +220,7 @@ class JDCEditorSsIhm :
CONTEXT.unsetCurrentStep()
- #if elf.appliEficas.maConfiguration
+ #jdc=self.readercata.cata[0].JdC(procedure=text,
jdc=self.readercata.cata.JdC(procedure=text,
appli=self,
cata=self.readercata.cata,
@@ -369,7 +366,7 @@ class JDCEditorSsIhm :
def viewJdcRapport(self):
#-----------------------#
# on ajoute les regles
- strRapport = six.text_type( self.jdc.report() )
+ strRapport = str( self.jdc.report() )
self._viewText(strRapport, "JDC_RAPPORT")
#-----------------------#
@@ -383,7 +380,7 @@ class JDCEditorSsIhm :
def getJdcRapport(self):
#-----------------------#
# on ajoute les regles
- strRapport = six.text_type( self.jdc.report() )
+ strRapport = str( self.jdc.report() )
return strRapport
#---------------------#
@@ -411,7 +408,7 @@ class JDCEditorSsIhm :
@return flag indicating success
"""
- fn = six.text_type(fn)
+ fn = str(fn)
if txt == None :
txt = self.getTextJDC(self.format,formatLigne=formatLigne)
@@ -439,7 +436,6 @@ class JDCEditorSsIhm :
def getTextJDC(self,format,pourRun=0,formatLigne="beautifie"):
#-----------------------------------------------------------#
if self.code == "MAP" and not(format in generator.plugins): format = "MAP"
-
if format in generator.plugins:
# Le generateur existe on l'utilise
@@ -647,60 +643,115 @@ class JDCEditorSsIhm :
# dans le JDC
ouChercher=etape
for mot in listeAvant :
- ouChercher=ouChercher.get_child(mot,restreint="oui")
- monMC=ouChercher.get_child(MCFils,restreint="oui")
+ ouChercher=ouChercher.getChild(mot,restreint="oui")
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
if monMC != None : ouChercher.suppentite(monMC)
ouChercher.state='changed'
ouChercher.isvalid()
- #-------------------------------------#
+ #--------------------------------------------------------#
def ajoutMC(self,etape,MCFils,valeurs,listeAvant=()):
- #-------------------------------------#
+ #--------------------------------------------------------#
# dans le JDC
+ debug=False
+ if debug : print ('ajoutMC', etape,MCFils,valeurs,listeAvant)
ouChercher=etape
+ if debug : print (ouChercher)
for mot in listeAvant :
- ouChercher=ouChercher.get_child(mot,restreint="oui")
- monMC=etape.get_child(ouChercher,restreint="oui")
- if monMC== None : monMC= ouChercher.addentite(MCFils)
+ ouChercher=ouChercher.getChild(mot,restreint="oui", debug=1)
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
+ if monMC == None : monMC = ouChercher.addEntite(MCFils)
monMC.valeur=valeurs
monMC.val=valeurs
monMC.state='changed'
monMC.isvalid()
+ return 1
+
+ #--------------------------------------------------------#
+ def ajoutMCinMCFactUnique(self,etape,MCFils,valeurs,listeAvant=()):
+ # Attention si +sieursMCFACT
+ #--------------------------------------------------------#
+ # dans le JDC
+ debug=False
+ if debug : print ('ajoutMC', etape,MCFils,valeurs,listeAvant)
+ ouChercher=etape
+ if debug : print (ouChercher)
+ for mot in listeAvant :
+ ouChercher=ouChercher.getChild(mot,restreint="oui", debug=1)
+ # Attention si +sieursMCFACT
+ ouChercher=ouChercher[0]
+ if debug : print (ouChercher)
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
+ if monMC == None : monMC = ouChercher.addEntite(MCFils)
+ monMC.valeur=valeurs
+ monMC.val=valeurs
+ monMC.state='changed'
+ monMC.isValid()
+ return 1
#----------------------------------------------#
def ajoutMCFact(self,etape,MCFils,listeAvant=()):
#----------------------------------------------#
# dans le JDC
- print ('ajoutMCFact')
ouChercher=etape
- print (ouChercher)
for mot in listeAvant :
- ouChercher=ouChercher.get_child(mot,restreint="oui")
- print (mot)
- print (ouChercher)
- monMC=etape.get_child(ouChercher,restreint="oui")
- if monMC== None : monMC= ouChercher.addentite(MCFils)
+ ouChercher=ouChercher.getChild(mot,restreint="oui")
+ monMC=etape.getChild(ouChercher,restreint="oui")
+ if monMC== None : monMC= ouChercher.addEntite(MCFils)
monMC.isvalid()
+ #-----------------------------------------------------------------#
+ def setValeurMCSimpInEtape(self,etape,listeAvant,valeur):
+ #-----------------------------------------------------------------#
+ # pour VP
+ monObj=etape
+ for mot in listeAvant :
+ monObj=monObj.getChild(mot,restreint="oui")
+ if monObj==None : return False
+ if monObj == None : return False
+ if monObj.valeur != valeur :
+ # PNPN le setValeur fait des bugs --> pourquoi
+ #monObj.setValeur(valeur)
+ monObj.valeur=valeur
+ monObj.isValid()
+ return True
+
#-------------------------------------------------#
def getValeur(self,nomEtape,MCFils,listeAvant=()):
#-------------------------------------------------#
# dans le JDC
+ debug=0
ouChercher=None
for e in self.jdc.etapes:
if e.nom == nomEtape : ouChercher=e; break
if debug : print ('etape trouvee', ouChercher)
if ouChercher==None : return None
for mot in listeAvant :
- ouChercher=ouChercher.get_child(mot,restreint="oui")
+ ouChercher=ouChercher.getChild(mot,restreint="oui")
if debug : print (mot, ouChercher)
if ouChercher==None : return None
- monMC=ouChercher.get_child(MCFils,restreint="oui")
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
if debug : print ('monMC', monMC)
if monMC== None : return None
return monMC.valeur
+ #-------------------------------------------------#
+ def getMCDsEtape(self,etape,MCFils,listeAvant=()):
+ #-------------------------------------------------#
+ # dans le JDC
+
+ if etape==None : return None
+ ouChercher=etape
+ debug=0
+ for mot in listeAvant :
+ ouChercher=ouChercher.getChild(mot,restreint="oui")
+ if debug : print (mot, ouChercher)
+ if ouChercher==None : return None
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
+ if debug : print ('monMC', monMC)
+ return monMC
+
#-----------------------------------------------------------#
def setValeur(self,nomEtape,MCFils,valeur,listeAvant=()):
#--------------------------------------------------------#
@@ -711,10 +762,10 @@ class JDCEditorSsIhm :
if e.nom == nomEtape : ouChercher=e; break
if ouChercher==None : return None
for mot in listeAvant :
- ouChercher=ouChercher.get_child(mot,restreint="oui")
+ ouChercher=ouChercher.getChild(mot,restreint="oui")
#print (mot, ouChercher)
if ouChercher==None : return None
- monMC=ouChercher.get_child(MCFils,restreint="oui")
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
monMC.set_valeur(valeur)
monMC.isvalid()
@@ -730,10 +781,10 @@ class JDCEditorSsIhm :
if ouChercher==None : return
for mot in listeAvant :
- ouChercher=ouChercher.get_child(mot,restreint="oui")
+ ouChercher=ouChercher.getChild(mot,restreint="oui")
if ouChercher==None : return
- monMC=ouChercher.get_child(MCFils,restreint="oui")
- if monMC== None : monMC= ouChercher.addentite(MCFils)
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
+ if monMC== None : monMC= ouChercher.addEntite(MCFils)
monMC.definition.into=valeurs
from Noyau.N_VALIDATOR import IntoProtocol
@@ -750,11 +801,11 @@ class JDCEditorSsIhm :
for mot in listeAvant :
try :
- ouChercher=ouChercher.get_child(mot,restreint="oui")
+ ouChercher=ouChercher.getChild(mot,restreint="oui")
# Le mot clef n est pas la
except : return 0
try :
- monMC=ouChercher.get_child(MCFils,restreint="oui")
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
# Le mot clef n est pas la
except : return 0
if monMC == None : return 0
@@ -791,23 +842,29 @@ class JDCEditorSsIhm :
return 1
#------------------------------------------------#
- def changeIntoDefMC(self,nomEtape,listeMC,valeurs):
+ def changeIntoDefMC(self,etape,listeMC,valeurs):
#------------------------------------------------#
# dans le MDD
#definitionEtape=getattr(self.jdc.cata[0],nomEtape)
- definitionEtape=getattr(self.jdc.cata,nomEtape)
- ouChercher=definitionEtape
+ #definitionEtape=getattr(self.jdc.cata,nomEtape)
+ print ( 'changeIntoDefMC ',etape,listeMC,valeurs)
+ ouChercher=getattr(self.jdc.cata,etape.nom)
- if len(listeMC) > 1 :
- for mc in listeMC[0:-1]:
- mcfact=ouChercher.entites[mc]
- ouChercher=mcfact
- mcAccas=ouChercher.entites[listeMC[-1]]
+ #if len(listeMC) > 1 :
+ # for mc in listeMC[0:-1]:
+ # mcfact=ouChercher.entites[mc]
+ # ouChercher=mcfact
+ #mcAccas=ouChercher.entites[listeMC[-1]]
+
+ for mc in listeMC :
+ mcAccas=ouChercher.entites[mc]
+ ouChercher=mcAccas
+ if ouChercher == None : return 0
if hasattr(mcAccas,'into') : oldValeurs=mcAccas.into
else : oldValeurs=None
- if oldValeurs==valeurs : return 0
+ if oldValeurs==valeurs : return 1
mcAccas.into=valeurs
from Noyau.N_VALIDATOR import IntoProtocol
mcAccas.intoProto = IntoProtocol("into", into=valeurs, val_min=mcAccas.val_min, val_max=mcAccas.val_max)
@@ -902,11 +959,11 @@ class JDCEditorSsIhm :
ouChercher = etape
for mot in listeMC[:-1] :
- ouChercher=ouChercher.get_child(mot,restreint="oui")
+ ouChercher=ouChercher.getChild(mot,restreint="oui")
if ouChercher==None : return
MCFils=listeMC[-1]
- monMC=ouChercher.get_child(MCFils,restreint="oui")
- if monMC== None : monMC= etape.addentite(MCFils)
+ monMC=ouChercher.getChild(MCFils,restreint="oui")
+ if monMC== None : monMC= etape.addEntite(MCFils)
monMC.definition.into=into
monMC.valeur=valeurs
diff --git a/InterfaceQT4/feuille.py b/InterfaceQT4/feuille.py
index d3800d89..41dc13fa 100644
--- a/InterfaceQT4/feuille.py
+++ b/InterfaceQT4/feuille.py
@@ -175,6 +175,9 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
c=str('