Gestion mutualisée de tous les événements sanitaires
git clone git@github.com:betagouv/seves.git
Assurez vous d'avoir Python 3 d'installé.
python3 -m venv venv
source venv/bin/activate
pip install pip-tools
pip-sync
Créez la base de données via un client PosgreSQL ou la ligne de commande psql
(exemple: seves
).
Copiez le fichier d'exemple fourni (.env.dist
) et définissez les variables d'environnement :
cp .env.dist .env
./manage.py migrate
./manage.py createsuperuser
./manage.py runserver
Se rendre sur http://localhost:8000/
Les dépendances sont gérées via pip-tools.
Pour ajouter une nouvelle dépendance au projet :
pip-compile
(pour mettre à à jour le fichier requirements.txt
)pip-sync
(installation de la nouvelle dépendance)Suivre la documentation de minio sur le hub docker, en résumé pour avoir le stockage persistent:
sudo mkdir /mnt/data
sudo chown votre_user:votre_groupe /mnt/data/
podman run -v /mnt/data:/data -p 9000:9000 -p 9001:9001 quay.io/minio/minio server /data --console-address ":9001"
Une fois dans la console Web de minio vous pouvez vous créer une clé d'accès ainsi qu'un bucket en local.
Configurez ensuite votre fichier .env avec STORAGE_ENGINE="storages.backends.s3.S3Storage"
et les tokens d'authentification (cf exemple dans .env.dist).
Le backend d'authentification Agricoll nécessite l'utilisation du protocole HTTPS ainsi que d'URL spécifique (impossible de se connecter depuis localhost par exemple).
Pour faciliter le dévellopement au quotidien il est possible d'utiliser un autre backend OIDC en changeant les variables d'environnement.
Un exemple est donné dans le fichier .env.dist
, les informations sur les logins et mots de passe, ainsi que les endpoints pour le backend sont disponibles dans la documentation.
Les tests E2E sont réalisés avec la bibliothèque Playwright (installé précédemment).
Avant de pouvoir lancer les tests E2E, il faut installer les navigateurs (source) :
playwright install
Lancez les tests :
python -m pytest
git push scalingo main
Création d'un super user (commande CLI scalingo à éxecuter en local) : scalingo --app my-app run python manage.py createsuperuser
Sur Scalingo, des crons sont configurés via Scalingo Scheduler (cf. fichier cron.json à la racine du projet). Ils sont monitorés via Sentry Cron Monitors.
scalingo --app APP_NAME run --file FILE_PATH python manage.py import_contacts /tmp/uploads/FILE_NAME.csv