Commit 474465ee54b48546b083ee2dfadd67fee77dc029

Authored by hitier
1 parent fa772e4b

More install doc

Showing 2 changed files with 46 additions and 21 deletions   Show diff stats
INSTALL.md
... ... @@ -12,7 +12,7 @@
12 12 export GIT_SSL_NO_VERIFY=1
13 13 git clone https://gitlab.irap.omp.eu/PDC-IRAP/pdc-web.git
14 14 cd pdc-web
15   - git checkout dev # éventuellement travailler avec la branche la plus à jour
  15 + git checkout dev # pour éventuellement travailler avec la branche la plus à jour
16 16  
17 17 ### Installer l'environment python
18 18  
... ... @@ -24,57 +24,66 @@
24 24 ### Configurer l'application
25 25  
26 26 Les fichiers de configuration fournis dans le répertoire ./resources sont à copier à la racine du projet,
27   -mais peuvent être laissés tels quels pour un premier test aprés installation.
  27 +mais peuvent être laissés tels quels pour un premier test après installation.
28 28  
29   -Il est bon d'y jeter un oeil, les commentaires sont là pour aider.
  29 +Il est bon d'y jeter un oeil, les commentaires sont là pour vous aider.
  30 +(mais en anglais comme tout le code source du projet)
30 31  
31 32 # D'abord les accès base de donnée
32 33 #
33   - cp resources/db_config.py .
  34 + cp ./resources/db_config.py ./
34 35 $(EDITOR) db_config.py
35 36  
36 37 # Puis le fichier pour l'application elle même
37 38 #
38   - cp resources/pdc_config.py .
  39 + cp ./resources/pdc_config.py ./
39 40 $(EDITOR) pdc_config.py
40 41  
41   - # Enfin le contrôle de la commande flask
42   - # également chargé par l'application grace à l'instruction:
  42 + # Enfin le contrôle de la commande flask est assuré par son propre fichier de configuration
  43 + # Celui ci est également chargé par l'application grace à l'instruction:
43 44 # app/__init__.py: load_dotenv(env_file, verbose=True)
44 45 #
45   - cp resources/flaskenv .flaskenv # ! noter le '.' devant le fichier destination
  46 + cp ./resources/flaskenv ./.flaskenv # ! noter le '.' devant le fichier destination
46 47 $(EDITOR) .flaskenv
47 48  
48 49 ### Créer la base de données
49 50  
50   -Dans un premier temps pour tester l'installation, on peut s'appuyer sur une base déjà disponible.
  51 +Dans un premier temps, pour tester l'installation, on peut s'appuyer sur une base déjà disponible.
51 52  
52 53 Il s'agit de l'import d'une base de type Lesia dont les noms d'agents, de projets, de métiers et de services ont été
53   -réécrit avec des chantiers du batiment. Cela afin de ne pas diffuser des données réelles du Lesia et permettre la
54   -diffusion de ces données de test avec le projet plan-de-charge.
  54 +réécrit avec des chantiers du batiment. Cela fut fait afin de ne pas diffuser des données réelles du Lesia et permettre
  55 +la diffusion de ces données de test avec le projet plan-de-charge.
55 56  
56 57 cp resources/lesia-btp.sqlite ./pdc-dev.db
57 58  
58   -Vérifier que ce chemin correspond avec celui configuré dans le fichier `db_config.py`
  59 +Vérifier que ce chemin correspond avec celui configuré dans le fichier `db_config.py` pour la
  60 +variable `sqlalchemy_devdb_uri`.
  61 +C'est le cas dans le fichier initial pour une variable `FLASK_ENV` positionnée à 'development'.
  62 +
  63 +Pour un usage plus avancé, voyez l'outil en ligne de commande fourni avec l'application.
  64 +(sinon, passez directement à la section suivante )
59 65  
60   -Pour un usage plus avancé, il y a l'outil de ligne de commande fourni avec l'application.
61 66  
62 67 # Créer la structure de la base
63 68 #
64 69 flask pdc_db create_db
65 70  
66   - # Il est aussi possible d'importer une base de type Lesia
  71 + # Il est possible d'importer une base de type Lesia
67 72 # cela suppose de disposer d'une telle base, et de l'avoir configurée dans db_config.py
68 73 #
69 74 flask pdc_db feed_from_lesia
70 75  
71 76 # Voire de l'anonymiser en changeant
72   - # - les noms de projet
73   - # - les noms de service
  77 + # - les noms de projets
  78 + # - les noms de services
74 79 # - les noms de fonctions
75 80 #
76 81 flask pdc_db fake_lesia_names
77 82  
  83 + # D'autre commandes d'importation sont disponibles:
  84 + #
  85 + flask pdc_db feed_from_irap --csv-file 2021_03_30_PDC_v0-1.csv
  86 +
78 87 # Plus d'info sur les outils en ligne de commande:
79 88 #
80 89 flask --help
... ... @@ -84,7 +93,7 @@ Pour un usage plus avancé, il y a l'outil de ligne de commande fourni avec l'ap
84 93 ## Jouer les tests et exécuter un serveur local
85 94  
86 95 pip install -r requirements-tests.txt
87   - cp resources/lesia-btp.sqlite ./pdc-test.db # ou le chemin configuré dans `db_config.py`
  96 + cp resources/lesia-btp.sqlite ./pdc-test.db # ou le chemin configuré dans `db_config.py` pour sqlalchemy_testdb_uri
88 97 PYTHONPATH=. pytest
89 98  
90 99 # éventuellement voir le taux de couverture
... ... @@ -131,6 +140,8 @@ Enfin, ouvrir un serveur sur localhost:5000 et y accéder avec son navigateur.
131 140  
132 141 ## Mise à jour
133 142  
  143 +### git pull
  144 +
134 145 ### git autodeploy
135 146  
136 147 Les fichiers concernés:
... ... @@ -150,7 +161,16 @@ La procédure:
150 161  
151 162 git push to repo
152 163  
  164 +## Gestion des utilisateurs
153 165  
  166 +La table `users` stocke les utilisateur qui se connectent à l'applicationa avec leur rôle et les droits associés.
  167 +Un ensemble de commandes permet de les gérer:
  168 +
  169 + flask pdc_db user_show_all # liste existante
  170 + flask pdc_db user_add # ajouter un nouveau login
  171 + flask pdc_db user_update # modifier un login existant
  172 + flask pdc_db user_delete # effacer un login existant
  173 + flask pdc_db show_roles # lister les rôles disponibles
154 174  
155 175 ## Intégration Pycharm
156 176  
... ... @@ -168,10 +188,15 @@ Dans le menu 'Edit Configurations', changer les champs:
168 188 - et dans le champs 'Parameters' choisir 'run'
169 189  
170 190  
171   -Normalement, cette configuration permet de lire les variables positionées dans le fichier .flaskenv
  191 +Cette configuration permet de lire les variables positionées dans le fichier .flaskenv
172 192  
173 193 FLASK_ENV=development
174 194 FLASK_APP=pdc_web
175 195  
176 196  
177 197 Ainsi fait, exécutez votre projet depuis pycharm et essayez sur un navigateur à l'adresse localhost:5000.
  198 +
  199 +## Troubleshooting
  200 +
  201 +* Q: parfois le module Flask-Migrate n'est pas correctement chargé aprés son installation.
  202 +* R: simplement recharger l'environnement virtuel avec `source venv/bin/activate`
... ...
resources/flaskenv
... ... @@ -4,12 +4,12 @@
4 4 # and https://flask.palletsprojects.com/en/1.1.x/config/
5 5 #
6 6  
7   -# Default set to 'production',
  7 +# Default environment set to 'production',
8 8 # but 'development' value adds debuging facities.
9 9 #
10 10 FLASK_ENV=development
11 11  
12   -# Is set to the python application wrapper
13   -# you shouldnt edit.
  12 +# Default app name is set to the python application wrapper.
  13 +# You shouldnt edit unless you know what you're doing.
14 14 #
15 15 FLASK_APP=pdc_web
... ...