# Installation de Plan De Charge ## Prérequis - python3 - sqlite ( pour le développement et les tests unitaires ) - chrome-driver et chromium ( pour les tests unitaires) - postgresql ou mariadb (pour la production) ## Obtenir un répertoire fonctionnel git clone https://gitlab.irap.omp.eu/PDC-IRAP/pdc-web.git cd pdc-web ### Installer l'environment python python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txt ### Configurer l'application # D'abord les accés base de donnée cp resources/pdc_config.py . $(EDITOR) pdc_config.py cp resources/db_config.py . $(EDITOR) db_config.py # Ensuite l'appli elle même (ce fichier est utilisable tel quel) cp resources/flaskenv .flaskenv $(EDITOR) .flaskenv ### Créer la base de données Utiliser l'outil de ligne de commande fourni avec l'application. flask pdc_db --help # créer la structure de la base flask pdc_db create_db # renseigner des agent depuis une base type lesia flask pdc_db feed_from_lesia # entrer des périodes flask pdc_db feed_periods # entrer des charges aléatoires (une centaine) flask pdc_db feed_random_charges ### Jouer les tests et exécuter un serveur local pip install -r requirements-tests.txt PYTHONPATH=. pytest # éventuellement voir le taux de couverture PYTHONPATH=. pytest --cov=app --cov-report=xml:"coverage.xml" --cov-report=term --junitxml "tests-report.xml" # ouvrir un serveur sur localhost:5000 flask run ## Configurer l'appli web avec apache Les fichiers concernés: - pdc_web.wsgi - pdc_config.py - db_config.py La procédure: # créer le répertoire pour le web export WEB_DIR=/var/www/html/pdc-web mkdir $WEB_DIR # le peupler avec le code export GIT_DIR=/path/to/pdc_web/.git export GIT_BRANCH=master git --work-tree=$WEB_DIR --git-dir=$GIT_DIR checkout -f $GIT_BRANCH # le configurer : cf plus haut "Obtenir un répertoire fonctionnel" cd $WEB_DIR python -m venv venv source venv/bin/activate pip install -r requirements.txt $(EDITOR) pdc_config.py db_config.py .flaskenv # configurer le serveur web cp ./resources/apache2-virtual-host.conf /etc/apache2/sites-available/pdc-web.conf $(EDITOR) /etc/apache2/sites-available/pdc-web.conf a2ensite pdc-web apachectl restart ### Mise à jour ## git autodeploy Les fichiers concernés: - scripts/post-deploy.sh - resources/post-receive.git-hook La procédure: git --work-tree=/var/www/html/pdc-web --git-dir=/path/to/the/repo.git checkout -f master # make bare repo git clone --bare /path/to/the/repo.git # put on hook cp /path/to/working-directory/resources/post-receive.git-hook repo.git/hooks/post-receive $(EDITOR) repo.git/hooks/post-receive git push to repo Intégration Pycharm ------------------- Ce projet utilisant le pattern "factory", il faut procéder à quelques configuration afin de le faire tourner avec pycharm. Pour une procédure détaillée, voir la page: https://flask.palletsprojects.com/en/1.1.x/cli/#pycharm-integration But basically, you just have to Edit the Run Configurations, and set the fields: Dans le menu 'Edit Configurations', changer les champs: - 'module name' positionné à 'flask' - et dans le champs 'Parameters' choisir 'run' Normalement, 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 testez.