Salome HOME
IMP: Verima / New Plugin: Added a plugin for meshers quality testing (work done at...
[modules/smesh.git] / src / Tools / Verima / CreeDocuments / jobHtml.py
diff --git a/src/Tools/Verima/CreeDocuments/jobHtml.py b/src/Tools/Verima/CreeDocuments/jobHtml.py
new file mode 100755 (executable)
index 0000000..6a0d830
--- /dev/null
@@ -0,0 +1,119 @@
+#!/usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+
+import string
+import os
+
+dir=os.path.dirname(os.path.abspath(__file__))
+FichierEntete=os.path.join(dir,'templatesHtml/entete.html')
+FichierMailleur=os.path.join(dir,'templatesHtml/mailleur.html')
+FichierJob=os.path.join(dir,'templatesHtml/job.html')
+#FichierJob=os.path.join(dir,'templatesHtml/jobIncomplet.html')
+FichierTableau=os.path.join(dir,'templatesHtml/tableau.html')
+FichierLigne=os.path.join(dir,'templatesHtml/ligne.html')
+FichierFinTableau=os.path.join(dir,'templatesHtml/tableauFin.html')
+FichierSansGroupe=os.path.join(dir,'templatesHtml/sansGroupe.html')
+
+
+def compte_all(texte, subString):
+    start = 0
+    compte=0
+    while True:
+        trouve = texte.find(subString, start)
+        if trouve == -1: return compte
+        compte+=1
+        start = trouve + len(subString)
+
+def FormateTexte(texte,dico):
+    for clef in dico.keys():
+        texteARemplacer="%"+str(clef)+"%"
+        remplacement=dico[clef]
+        if texte.find(texteARemplacer) < 0 :
+           print "impossible de remplacer ",texteARemplacer, "Pas d'occurence"
+           print remplacement
+           continue
+        if compte_all(texte,texteARemplacer) != 1 :
+           print "impossible de remplacer ",texteARemplacer, "trop d'occurences"
+           continue
+        remplacement=str(remplacement)
+        texte=texte.replace(texteARemplacer,remplacement)
+    return texte
+
+def FormateLigne(texte,nb):
+    texteARemplacer="2%"
+    remplacement=str(nb)+"%"
+    texte=texte.replace(texteARemplacer,remplacement)
+    return texte
+
+def CreeEntete(dico):
+    texteIni=open(FichierEntete).read()
+    texteRetour=FormateTexte(texteIni,dico)
+    return texteRetour
+
+def CreeMailleur(dico):
+    texteIni=open(FichierMailleur).read()
+    texteRetour=FormateTexte(texteIni,dico)
+    return texteRetour
+
+def CreeJob(dico):
+    texte=open(FichierJob).read()
+    texteRetour=FormateTexte(texte,dico)
+    return texteRetour
+
+def CreeMailleOuGroupe(dico,nb):
+    texteIni=open(FichierTableau).read()
+
+    texteLigneIni=open(FichierLigne).read()
+    for i in range (2,nb+1) :
+        texteLigne=FormateLigne(texteLigneIni,i)
+        texteIni=texteIni+texteLigne
+
+    texteRetour=FormateTexte(texteIni,dico)
+
+    finTexte=open(FichierFinTableau).read()
+    texteFinal=texteRetour+finTexte
+
+    return texteFinal
+
+
+def EcritFichier(texte,filename):
+    fp=open(filename,'w')
+    fp.write(texte)
+    fp.close()
+    
+
+class Document:
+
+    def __init__(self):
+      self.monTexte=""
+      self.dicoEntete={}
+
+    def creeDocument(self,monFichier):
+      EcritFichier(self.monTexte,monFichier)
+
+    def initEntete(self,version, versionRef,machine):
+      self.dicoEntete["VERSIONTEST"]=version
+      self.dicoEntete["VERSIONREF"]=versionRef
+      self.dicoEntete["MACHINE"]=machine
+      self.monTexte=CreeEntete(self.dicoEntete)
+
+    def initMailleur(self,mailleurName):
+      dicoMailleur={}
+      dicoMailleur["MAILLEUR"]=mailleurName
+      texteMailleur=CreeMailleur(dicoMailleur)
+      self.monTexte+=texteMailleur
+
+    def initJob(self,dicoJob):
+      texteMailleur=CreeJob(dicoJob)
+      self.monTexte+=texteMailleur
+
+    def initMaille(self,dicoMaille,nbEntity):
+      texteMaille=CreeMailleOuGroupe(dicoMaille,nbEntity)
+      self.monTexte+=texteMaille
+
+    def addNoGroup(self):
+      texteNoGroupe=open(FichierSansGroupe).read()
+      self.monTexte+=texteNoGroupe
+
+
+#