From 474465ee54b48546b083ee2dfadd67fee77dc029 Mon Sep 17 00:00:00 2001 From: Richard Hitier Date: Fri, 16 Apr 2021 11:06:45 +0200 Subject: [PATCH] More install doc --- INSTALL.md | 61 +++++++++++++++++++++++++++++++++++++++++++------------------ resources/flaskenv | 6 +++--- 2 files changed, 46 insertions(+), 21 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index fef3066..6cc6e19 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -12,7 +12,7 @@ export GIT_SSL_NO_VERIFY=1 git clone https://gitlab.irap.omp.eu/PDC-IRAP/pdc-web.git cd pdc-web - git checkout dev # éventuellement travailler avec la branche la plus à jour + git checkout dev # pour éventuellement travailler avec la branche la plus à jour ### Installer l'environment python @@ -24,57 +24,66 @@ ### Configurer l'application Les fichiers de configuration fournis dans le répertoire ./resources sont à copier à la racine du projet, -mais peuvent être laissés tels quels pour un premier test aprés installation. +mais peuvent être laissés tels quels pour un premier test après installation. -Il est bon d'y jeter un oeil, les commentaires sont là pour aider. +Il est bon d'y jeter un oeil, les commentaires sont là pour vous aider. +(mais en anglais comme tout le code source du projet) # D'abord les accès base de donnée # - cp resources/db_config.py . + cp ./resources/db_config.py ./ $(EDITOR) db_config.py # Puis le fichier pour l'application elle même # - cp resources/pdc_config.py . + cp ./resources/pdc_config.py ./ $(EDITOR) pdc_config.py - # Enfin le contrôle de la commande flask - # également chargé par l'application grace à l'instruction: + # Enfin le contrôle de la commande flask est assuré par son propre fichier de configuration + # Celui ci est également chargé par l'application grace à l'instruction: # app/__init__.py: load_dotenv(env_file, verbose=True) # - cp resources/flaskenv .flaskenv # ! noter le '.' devant le fichier destination + cp ./resources/flaskenv ./.flaskenv # ! noter le '.' devant le fichier destination $(EDITOR) .flaskenv ### Créer la base de données -Dans un premier temps pour tester l'installation, on peut s'appuyer sur une base déjà disponible. +Dans un premier temps, pour tester l'installation, on peut s'appuyer sur une base déjà disponible. 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é -réécrit avec des chantiers du batiment. Cela afin de ne pas diffuser des données réelles du Lesia et permettre la -diffusion de ces données de test avec le projet plan-de-charge. +réécrit avec des chantiers du batiment. Cela fut fait afin de ne pas diffuser des données réelles du Lesia et permettre +la diffusion de ces données de test avec le projet plan-de-charge. cp resources/lesia-btp.sqlite ./pdc-dev.db -Vérifier que ce chemin correspond avec celui configuré dans le fichier `db_config.py` +Vérifier que ce chemin correspond avec celui configuré dans le fichier `db_config.py` pour la +variable `sqlalchemy_devdb_uri`. +C'est le cas dans le fichier initial pour une variable `FLASK_ENV` positionnée à 'development'. + +Pour un usage plus avancé, voyez l'outil en ligne de commande fourni avec l'application. +(sinon, passez directement à la section suivante ) -Pour un usage plus avancé, il y a l'outil de ligne de commande fourni avec l'application. # Créer la structure de la base # flask pdc_db create_db - # Il est aussi possible d'importer une base de type Lesia + # Il est possible d'importer une base de type Lesia # cela suppose de disposer d'une telle base, et de l'avoir configurée dans db_config.py # flask pdc_db feed_from_lesia # Voire de l'anonymiser en changeant - # - les noms de projet - # - les noms de service + # - les noms de projets + # - les noms de services # - les noms de fonctions # flask pdc_db fake_lesia_names + # D'autre commandes d'importation sont disponibles: + # + flask pdc_db feed_from_irap --csv-file 2021_03_30_PDC_v0-1.csv + # Plus d'info sur les outils en ligne de commande: # flask --help @@ -84,7 +93,7 @@ Pour un usage plus avancé, il y a l'outil de ligne de commande fourni avec l'ap ## Jouer les tests et exécuter un serveur local pip install -r requirements-tests.txt - cp resources/lesia-btp.sqlite ./pdc-test.db # ou le chemin configuré dans `db_config.py` + cp resources/lesia-btp.sqlite ./pdc-test.db # ou le chemin configuré dans `db_config.py` pour sqlalchemy_testdb_uri PYTHONPATH=. pytest # éventuellement voir le taux de couverture @@ -131,6 +140,8 @@ Enfin, ouvrir un serveur sur localhost:5000 et y accéder avec son navigateur. ## Mise à jour +### git pull + ### git autodeploy Les fichiers concernés: @@ -150,7 +161,16 @@ La procédure: git push to repo +## Gestion des utilisateurs +La table `users` stocke les utilisateur qui se connectent à l'applicationa avec leur rôle et les droits associés. +Un ensemble de commandes permet de les gérer: + + flask pdc_db user_show_all # liste existante + flask pdc_db user_add # ajouter un nouveau login + flask pdc_db user_update # modifier un login existant + flask pdc_db user_delete # effacer un login existant + flask pdc_db show_roles # lister les rôles disponibles ## Intégration Pycharm @@ -168,10 +188,15 @@ Dans le menu 'Edit Configurations', changer les champs: - et dans le champs 'Parameters' choisir 'run' -Normalement, cette configuration permet de lire les variables positionées dans le fichier .flaskenv +Cette configuration permet de lire les variables positionées dans le fichier .flaskenv FLASK_ENV=development FLASK_APP=pdc_web Ainsi fait, exécutez votre projet depuis pycharm et essayez sur un navigateur à l'adresse localhost:5000. + +## Troubleshooting + +* Q: parfois le module Flask-Migrate n'est pas correctement chargé aprés son installation. +* R: simplement recharger l'environnement virtuel avec `source venv/bin/activate` diff --git a/resources/flaskenv b/resources/flaskenv index 17e2341..a566cf5 100644 --- a/resources/flaskenv +++ b/resources/flaskenv @@ -4,12 +4,12 @@ # and https://flask.palletsprojects.com/en/1.1.x/config/ # -# Default set to 'production', +# Default environment set to 'production', # but 'development' value adds debuging facities. # FLASK_ENV=development -# Is set to the python application wrapper -# you shouldnt edit. +# Default app name is set to the python application wrapper. +# You shouldnt edit unless you know what you're doing. # FLASK_APP=pdc_web -- libgit2 0.21.2