Salome HOME
Merge remote branch 'origin/V7_dev' into V8_0_0_BR
[modules/smesh.git] / src / Tools / Verima / Base / tableMaillages.py
1 from qtsalome import QSqlQuery
2 from tableDeBase import TableDeBase
3
4 class TableMaillages (TableDeBase):
5         def __init__(self):
6             TableDeBase.__init__(self,"Maillages")
7             self.setField(("id","nomMaillage","Script","fichier","idMailleur","Dimension","Seuil CPU","Seuil Ratio","Seuil Taille","Seuil Nb Maille","Commentaire"))
8             self.cols="(nomMaillage,nomScript,medResultat,idMailleur,dimension,seuilCPU,seuilRatio,seuilTaille,seuilNbMaille,commentaire)"
9             self.setTypeField(('int','str','str','str','int','int','int','int','int','int','str'),('id'))
10
11         def createSqlTable(self):
12             query=QSqlQuery()
13             texteQuery ="create table Maillages(id integer primary key autoincrement, nomMaillage varchar(10), "
14             texteQuery+="nomScript varchar(40), medResultat varchar(15), idMailleur int, dimension int,"
15             texteQuery+="seuilCPU int, seuilRatio int, seuilTaille int, seuilNbMaille int, commentaire varchar(60), "
16             texteQuery+="foreign key (idMailleur) references Mailleur(id));"
17             print "creation de TableMaillages : " , query.exec_(texteQuery)
18
19         def getVal(self,idMaillage, nomChamp):
20             query=QSqlQuery()
21             valeur=None
22             texteQuery ='select '+ nomChamp + ' from Maillages  where id=' + str(idMaillage) + ";"
23             query.exec_(texteQuery)
24             while (query.next()) :
25               valeur=query.value(0).toInt()[0]
26             while (query.next()) :
27               print "plusieurs enregistrements dans Maillages pour ",str(idMaillage)
28               exit()
29             return valeur
30
31         def dejaRemplie(self):
32             texteQuery="select * from  Maillages where medResultat='/tmp/tetra.med';"
33             maQuery=QSqlQuery()
34             maQuery.exec_(texteQuery)
35             nb=0
36             while(maQuery.next()): nb=nb+1
37             return nb
38
39         def remplit(self):
40             if self.dejaRemplie():
41                print "table Maillage deja initialisee"
42                return
43 #            self.insereLigneAutoId(('Fiche_7566_TUNNEL', '/home/H77945/CAS_TEST/MAILLEUR/FICHE_7566_TUNNEL/Fiche_7566_TUNNEL.py', '/tmp/Fiche_7566_TUNNEL.med', 3,3,10,10,10,10, 'Maillage d un tunnel'))
44 #            self.insereLigneAutoId(('Fiche_7957_AILETTE', '/home/H77945/CAS_TEST/MAILLEUR/FICHE_7957_AILETTE/Fiche_7957_AILETTE.py', '/tmp/Fiche_7957_AILETTE.med', 1,2,10,10,10,10, 'Maillage d une attache d aillette'))
45         
46         def construitListeMaillages(self):
47             maQuery=QSqlQuery()
48             texteQuery="select id, nomScript,medResultat from Maillages;"
49             maQuery.exec_(texteQuery)
50             listeMaillages=[]
51             while(maQuery.next()):
52                 listeMaillages.append((maQuery.value(0).toInt()[0], maQuery.value(1).toString(), maQuery.value(2).toString()))
53             return listeMaillages
54            
55         def verifieListeMaillages(self,listeMaillage):
56             newListeMaillages=[]
57             maQuery=QSqlQuery()
58             for idM in listeMaillage:
59                 texteQuery="select id, nomScript,medResultat from Maillages where id = " + str(idM) +';'
60                 maQuery.exec_(texteQuery)
61                 maSize=0
62                 while(maQuery.next()):
63                     maSize+=1
64                     newListeMaillages.append((maQuery.value(0).toInt()[0], maQuery.value(1).toString(), maQuery.value(2).toString()))
65                 if maSize != 1 :
66                    print "impossible de traiter le maillage : ", idM
67             return  newListeMaillages
68
69         def getSeuilsPourMaillage(self,idMaillage):
70             texteQuery="select id,nomMaillage,seuilCPU,seuilRatio,seuilTaille,seuilNbMaille from  Maillages where id = "+ str(idMaillage) +"  ;"
71             maQuery=QSqlQuery()
72             maQuery.exec_(texteQuery)
73             while(maQuery.next()): 
74                  l1 = maQuery.value(0).toInt()[0]
75                  l2 = maQuery.value(1).toString()
76                  l3 = maQuery.value(2).toInt()[0]
77                  l4 = maQuery.value(3).toInt()[0]
78                  l5 = maQuery.value(4).toInt()[0]
79                  l6 = maQuery.value(5).toInt()[0]
80             return l1,l2,l3,l4,l5,l6
81
82         def getTous(self):
83             maillagesIdListe=[]; maillagesNomListe=[]
84             texteQuery="select id,nomMaillage from  Maillages order by id;"
85             maQuery=QSqlQuery()
86             maQuery.exec_(texteQuery)
87             while(maQuery.next()):
88                  maillagesIdListe.append( maQuery.value(0).toInt()[0])
89                  maillagesNomListe.append( maQuery.value(1).toString())
90             return maillagesIdListe, maillagesNomListe
91
92         def getMailleurId(self,idMaillage):
93             texteQuery="select idMailleur from  Maillages where id = "+ str(idMaillage) +"  ;"
94             maQuery=QSqlQuery()
95             print texteQuery
96             print maQuery.exec_(texteQuery)
97             maQuery.exec_(texteQuery)
98             while(maQuery.next()): 
99                  idMailleur = maQuery.value(0).toInt()[0]
100             return idMailleur