78534000a087f58aec2704d21ecbccc45322f356
Barre d'outils repensée au-dessus du tableau : - boutons compacts (size=sm) sur une seule rangée + ligne d'infos discrète en dessous (2 lignes au total sur desktop) - libellés explicites (Sauvegarder la vue, Partager la vue, Télécharger (Excel)), espacement homogène, couleurs conformes à la charte (neutre=secondary, Réinitialiser=danger outline) - Mode d'emploi rejeté en fin de barre via CSS order (DOM/callbacks intacts) - .table-menu (3 autres pages) laissée intacte Téléchargement bloqué (>65 000 lignes) : la raison s'affiche en clair dans la ligne d'infos (fiable cross-browser) plutôt que dans une infobulle sur bouton désactivé. Override scopé au tableau via update_table ; acheteur/ titulaire non touchés. Mode d'emploi : légende en tête listant chaque bouton reproduit (inerte) en face de sa fonction. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
decp.info
Outil d'exploration et de téléchargement des données essentielles de la commande publique.
=> decp.info
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, decp.info) : déploiement manuel via un déclenchement de la Github Action Déploiement - Test (branche
dev, test.decp.info) : 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 decpinfo
python -m src.backup restore backups/users-YYYYMMDDTHHMMSSZ.sqlite.gz.enc
systemctl start decpinfo
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%