Salome HOME
022491: EDF 2249 SMESH: Integration of a small python library for quadrangle meshing
[modules/smesh.git] / src / Tools / Verima / Doc / presentation_base.rst
1 la base
2 ========
3
4 Schéma de la base
5 -----------------
6
7 .. image:: images/bd.png
8    :align: center
9
10
11 Organisation des sources
12 ------------------------
13
14   Les sources sont organisées ainsi :
15
16   * La directory MaquetteMailleur contient les pythons nécessaires au passage des tests : 
17
18       - createDatabase.py    
19       - ajoutEnreg.py  
20       - changeVersion.py  
21       - passeJobs.py.
22       - compareVersions.py  
23       - lance.py  
24   
25    a priori, seuls les scripts passeJobs.py et compareVersions ne devront être passés à chaque version
26
27   * Elle contient aussi la base de données (lorsque celle-ci a été créée)
28
29   * Sous MaquetteMailleur, la directory Doc contient les fichiers nécessaires à l'élaboration de la doc. 
30   * Sous MaquetteMailleur, la directory Scripts contient les fichiers nécessaires à l'éléboration des maillages et référencés dans la database.
31   * Sous MaquetteMailleur, la directory Gui contient les fichiers nécessaires à la partie graphique, y compris les .ui à partir desquels il faut générer les .py
32   * Sous MaquetteMailleur, la directory CreeDocuments contient les fichiers nécessaires à la création du rapport html. les patrons sont contenus dans TemplatesHtm 
33
34
35 La directory Base plus en détail 
36 --------------------------------
37
38   * dataBase.py : definition de la class Base
39     La méthode Structure (jamais appelée) rappelle la commande sqlite3 pour voir de façon interactive la structure de la base (sqlite3 madabase.db)
40
41   * les tables
42     - une classe générique contenue dans tableDeBase
43     - un fichier .py par table : tableGroupesRef.py, tableMaillages.py, tableMailleurs.py, tableRatios.py, tableVersions.py, tableGroupes.py, tableMachines.py, tableMailles.py, tablePerfs.py, tableTailles.py.  toutes les tables heritent de tableDeBase
44     - la methode "remplit" remplit le jeu de test et doit être modifiée (en particulier pour la définition de la version de reference)
45
46
47   * création éventuelle d'une nouvelle table il faut :
48         - creer un fichier tableNouvelle.py
49         - dans l'init appeler l init de TableDeBase avec le nom de la table en parametre
50           et initialiser le nom des colonnes avec la methode setFields
51         - creer une methode createSqlTable pour creer la table
52
53      .. code-block:: python
54
55         class TableMachines (TableDeBase):
56            def __init__(self):
57                TableDeBase.__init__(self,"Machines")
58                self.setField(("id","nomMachine","Os"))
59
60            def createSqlTable(self):
61                query=QtSql.QSqlQuery()
62                print "creation de TableMachine"
63                print query.exec_("create table Machines(id int primary key, nomMachine varchar(10), os varchar(10));")
64
65
66  
67     - pour pouvoir éditer la nouvelle table il faut :
68         - ajouter un bouton par designer dans desFenetreChoix.ui
69         - creer un signal dans maFenetreChoix.py qui appelle une methode qui
70           ressemble a :
71
72      .. code-block:: python
73
74       def Push(self):
75            editor=TableEditor(self.db.maTable,self)
76            editor.exec_()
77
78