87d59c2ce0545b3aa570e0b9c553940b87c841d1
test_002_filter_persistence et test_015_org_pages_filter_date ciblaient encore le DataTable historique (.marches_table th[data-dash-column] input) sur /acheteurs et /titulaires ; ces deux pages rendent désormais une grille AG Grid (src/utils/entity_grid.py). Adapte les deux tests au filtre flottant AG Grid (col-id + .ag-floating-filter-input), sur la colonne texte "objet" (le filtre de date AG Grid utilise un <input type="date"> natif peu fiable à piloter via Selenium). test_002 vérifie en plus que la persistance du filtre est bien scopée par fiche (entity_id/year) en rechargeant la même URL. test_marches_table_hscroll_bar_present (tests/test_tableau_hscroll.py) ciblait aussi /acheteurs/123 pour couvrir .marches_table + table_hscroll.js : ce comportement n'est plus exercé par aucune page migrée. Le seul repli restant (observatoire.py, hors périmètre #41/Lot 2b) a un bug préexistant sans rapport qui empêche son rendu en Selenium sur ce jeu de données ; le test est donc marqué skip avec la justification détaillée, en attendant soit la correction de ce bug séparé, soit le retrait de cette couverture. test_003_tableau_download n'a pas nécessité de changement (callbacks "toutes les données" inchangés). 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%