GeoNature
GeoNature copied to clipboard
feat/config
BUT
Ce travail a pour but de rendre plus indépendant le frontend de geonature et de simplifier sa conguration. Cela peut aussi contribuer à faciliter la dockerisation du frontend.
Le but est de rendre possible la configuration du frontend après un build et de la limiter à une action:
- créer un fichier
assets/config.json
(dans les repertoires frontend/dist/assets etfrontend/src/assets
qui contient les information suivantes:
{
"API_ENDPOINT": "localhost:8000"
}
Dans le cadre d'une installation par docker, on aurait juste à récupérer le docker avec le frontend déjà buildé et à créé un volume pour le fichier assets/config.json
L'accès à la configuration passe désormais par le service ConfigService
A son initialisation, ce service
- récupère le fichier
config.json
et de la valeur deAPI_ENDPOINT
par un appelhttp
- il peut alors faire une requête pour obtenir la configuration (on fait aussi l'initialisation des modules dans la foulée)
- gére et signale les erreurs
Ce service est initinialisé dans app.modules (APP_INITIALIZER
)
Au niveau du backend on souhaite que l'appli puisse être relancée en cas de changement de config pour cela on ajoute
- une option
extra-files
à la commandegeonature dev_back
:geonature dev_back --extra-files="config/geonature_config.toml
- les options
--reload
et--reload-extra-file=<chemin vers geonature_config.toml>
à la commande gunicorn qui sera appelée par le servicegeonature
Une route est crée pour récupéré la configuration (idéalement il faudrait une route unique pour récupérer la config ET les modules et dont le contenu dépend du fait que l'on est loggé ou non, à voir plus tard)
Le commit 53b172d présente ces changements avec une application sur le centrage de la carte (paramètres [CENTER]
de [[MAP_CONFIG]]
dans le fichier geonature_config.toml
(pour avoir un exemple visuel pour valider le concept)
Lorsque l'on fait un changement de ce paramètre, il n'y a qu'à
- sauvegarder le fichier, l'application backend détecte un changement et se relance
- recharger la page du navigateur
Les étapes suivantes:
- [ ] passer des composant custom (introduction, footer) à du texte html stocké en configuration
- [x] mettre les images personalisables, logo, accueil dans le dossier static
- [ ] gérer les modules et les routes de la manière la plus automatique possible
- gros morceau
- [x] voir comment on peut se passer des commandes geonature qui gère le frontend
- [x]
generate_frontend_modules_route
- [x]
generate_frontend_tsconfig
- [x]
generate_frontend_tsconfig_app
- etc..
- [x]
- [ ] appliquer l'utilisation de config service partout (GN et modules)
Codecov Report
Merging #1720 (de12399) into develop (0600c0e) will increase coverage by
0.02%
. The diff coverage is61.11%
.
@@ Coverage Diff @@
## develop #1720 +/- ##
===========================================
+ Coverage 53.38% 53.41% +0.02%
===========================================
Files 77 77
Lines 7378 7388 +10
===========================================
+ Hits 3939 3946 +7
- Misses 3439 3442 +3
Flag | Coverage Δ | |
---|---|---|
pytest | 53.41% <61.11%> (+0.02%) |
:arrow_up: |
Flags with carried forward coverage won't be shown. Click here to find out more.
Impacted Files | Coverage Δ | |
---|---|---|
backend/geonature/core/command/main.py | 0.00% <0.00%> (ø) |
|
backend/geonature/utils/command.py | 0.00% <ø> (ø) |
|
backend/geonature/core/gn_commons/routes.py | 66.66% <84.61%> (+0.60%) |
:arrow_up: |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 0600c0e...de12399. Read the comment docs.
Le travail de configuration dynamique a été repris est terminé dans la PR #2259. @joelclems Est-ce qu’il y a des choses à récupérer dans cette PR draft ou elle peut être fermé ?
Elle peut être fermée