# Installation de Plan De Charge

## Prérequis

- python3

## 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 -r requirements.txt

### Configurer l'application

    cp resources/pdc_config.py .
    $(EDITOR) pdc_config.py

    cp resources/flaskenv .flaskenv


### 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 apache 

Les fichiers concernés:

- pdc_web.wsgi
- pdc_config.py

La procédure:

    mkdir /var/www/html/pdc-web

    cp ./resources/apache2-virtual-host.conf /etc/apache2/sites-available/pdc-web.conf
    $(EDITOR) /etc/apache2/sites-available/pdc-web.conf # éditer les paramètres
    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.
flask db update
db_config