2a1b43a6facd45bb716dec84076f92191452bbcf
Le bundle dash-ag-grid (async-community.js) fuit un helper esbuild sous le nom global `L`, écrasant le window.L de Leaflet. Nos fonctions clientside pointToLayer/clusterToLayer lisaient ce global → `L.point`/`L.circleMarker is not a function` → l'exception cassait tout le calque GeoJSON → carte vide. Course entre le chunk AG Grid et le rendu : d'où le pattern « surtout avec beaucoup de marchés ». Une IIFE capture en privé le vrai Leaflet (celui exposant circleMarker) en écoutant les affectations de window.L, sans changer ce que window.L renvoie (AG Grid garde son helper). pointToLayer/clusterToLayer utilisent window.leafletReal(). Nettoie aussi des console.log oubliés et un `color` inutilisé dans clusterToLayer. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
colibre
Note: Ce projet a été rebaptisé de decp.info à colibre en 2026.
Outil d'exploration et de téléchargement des données essentielles de la commande publique.
=> colibre.fr
Installation et lancement
# Copie et personnalisation du .env
cp template.env .env
nano .env
# Pour la production
uv run gunicorn app:server
# Pour avoir le debuggage et le hot reload
uv run run.py
Déploiement
- Production (branche
main, colibre.fr) : déploiement manuel via un déclenchement de la Github Action Déploiement - Test (branche
dev, test.colibre.fr) : déploiement automatique à chaque push sur la branchedev, via la même Github Action.
Ne pas oublier de mettre à jour les fichier .env.
Sauvegarde de la base utilisateurs
users.sqlite est sauvegardée toutes les heures sur S3 via un timer systemd. Pour lister les sauvegardes disponibles :
python -m src.backup list
Pour restaurer une sauvegarde, arrêtez le service, restaurez la base, puis redémarrez :
systemctl stop colibre
python -m src.backup restore backups/users-YYYYMMDDTHHMMSSZ.sqlite.gz.enc
systemctl start colibre
Migrations de base de données
Les migrations SQLite s'appliquent automatiquement au démarrage de l'app — aucune action manuelle requise. Il suffit de redémarrer le service après un déploiement.
Pour vérifier quelles migrations ont été appliquées :
sqlite3 users.sqlite "SELECT id, applied_at FROM schema_migrations ORDER BY applied_at;"
Pour ajouter une migration, voir les instructions dans src/migrations.py.
Liens connexes
- decp-processing (traitement et publication des données)
- colin.maudry.com (blog)
Notes de version
Voir CHANGELOG.
Description
Outil d'exploration et de téléchargement des données essentielles de la commande publique
Releases
33
Languages
Python
95.2%
CSS
3.6%
JavaScript
1.2%