Colin Maudry
b4f7e94800
Redesign de a-propos
2026-06-26 12:24:07 +02:00
Colin Maudry
3eec248dab
Fix tokens_cli est maintenant autonome pour récupérer l'env
2026-06-25 09:50:19 +02:00
Colin Maudry
e591c5500f
Petites améliorations du rendu #81
2026-06-22 22:47:37 +02:00
Colin Maudry
074716bc16
feat(observatoire): restructurer tuile en 3 barres
...
- Barre 1 (grise) : % marchés avec champs considérations renseignés
- Barre 2 (rose) : % positifs parmi les marchés renseignés — sociales
- Barre 3 (verte) : % positifs parmi les marchés renseignés — env
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 22:21:37 +02:00
Colin Maudry
ae8292d68d
fix(observatoire): filtre renseignées sur != 'Sans objet' plutôt que regex
...
Seule 'Sans objet' est considérée négative parmi les marchés renseignés,
cohérent avec le reste des traitements.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 22:02:37 +02:00
Colin Maudry
26455a7616
fix(observatoire): barre renseignée = positifs parmi les marchés renseignés
...
Dénominateur = marchés non-null ; numérateur = marchés positifs (regex).
Label affiché : "parmi les N marchés renseignés".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 21:18:00 +02:00
Colin Maudry
19e181734c
feat(observatoire): ajouter barres 'valeur renseignée' dans tuile considérations
...
Affiche 4 barres groupées par type (sociales/env) : une pour les marchés
avec au moins une considération, une pour ceux qui ont une valeur renseignée
(non nulle, y compris 'Sans objet').
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 18:55:38 +02:00
Colin Maudry
8efd9b45eb
fix(observatoire): texte % blanc sur les barres de considérations
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 18:46:37 +02:00
Colin Maudry
eab06eedae
fix(observatoire): couleurs barres considérations palette Plotly Safe
...
Utilise les codes hex #CC6677 (sociales) et #117733 (env) via le prop
color de dbc.Progress, qui accepte les valeurs hex.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 18:45:33 +02:00
Colin Maudry
5586db23aa
feat(observatoire): afficher la tuile considérations après Type d'achat
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 18:17:27 +02:00
Colin Maudry
a85baca408
feat(observatoire): calcul et rendu tuile considérations sociales/env
...
Ajoute compute_considerations_stats (dédoublonnage par uid, regex
Clause|Critère|Marché réservé, colonne absente → 0%) et
get_considerations_card_content (deux dbc.Progress colorés Safe).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 18:16:34 +02:00
Colin Maudry
e44af8add8
Dans les résultats de recherche, le contenu de la colonne Département wrappe le texte #77
2026-06-22 17:55:53 +02:00
Colin Maudry
992f6d4f93
Recherche dans les tableaux insensible aux accents #79
2026-06-22 17:46:31 +02:00
Colin Maudry
c264c36684
fix(api): next=null sur dernière page en mode agrégation ( #78 )
...
Si la page retournée est partielle (len < page_size), on sait qu'on est
sur la dernière page → next=null, parité data.gouv.fr.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 14:23:09 +02:00
Colin Maudry
70ee819a51
feat(api): sort supporté sur colonnes groupby en mode agrégation ( #78 )
...
Testé contre tabular-api data.gouv.fr : sort sur une colonne groupby
est honoré (200), sort sur un alias d'agrégat retourne 400 (colonne
inconnue). aggregate_marches reçoit order_by ; doc Swagger mise à jour.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 14:20:02 +02:00
Colin Maudry
b87eb4328c
docs(api): documente les opérateurs (filtres + agrégation) dans Swagger ( #78 )
...
Remplace la description du paramètre <colonne>__<opérateur> par une
documentation complète listant tous les opérateurs de filtre (exact, differs,
contains, notcontains, in, notin, less, greater, strictly_less,
strictly_greater, isnull, isnotnull, sort) et les agrégations (groupby, count,
sum, avg, min, max).
Met à jour le docstring de data() pour documenter le mode agrégation et les
paramètres réservés.
Ajoute test_openapi_doc.py qui valide la présence des mots-clés clés dans
l'OpenAPI généré.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 14:09:34 +02:00
Colin Maudry
7c9a95355b
feat(api): mode agrégation sur /data (groupby + agrégats) ( #78 )
2026-06-22 14:06:44 +02:00
Colin Maudry
28709a162a
feat(db): aggregate_marches pour les requêtes GROUP BY ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 14:04:08 +02:00
Colin Maudry
9324a734d4
feat(api): parsing des opérateurs d'agrégation (groupby/count/sum/avg/min/max) ( #78 )
2026-06-22 13:59:50 +02:00
Colin Maudry
2a8e82ccd6
feat(api): ajoute l'opérateur de filtre differs (IS DISTINCT FROM) ( #78 )
...
Implémente l'opérateur de filtre `differs` qui génère un fragment SQL
`IS DISTINCT FROM` pour exclure des valeurs en tenant compte des NULL.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 13:55:18 +02:00
Colin Maudry
f5db674e22
feat(api): renomme le param réservé count en count_results ( #78 )
...
- Renomme RESERVED_PARAMS dans src/api/filters.py
- Fait passer le paramètre de 'count' à 'count_results' dans src/api/routes.py
- Met à jour la documentation swagger pour le nouveau nom
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-22 13:50:12 +02:00
Colin Maudry
ffaf200c07
api/v1/schema n'est plus auth, schema renvoie table schema, adaptation des tests #78
2026-06-16 17:03:14 +02:00
Colin Maudry
fede22f314
Plus d'options dans swagger UI pour Try it out #78
2026-06-16 11:06:46 +02:00
Colin Maudry
b8d73c7f7b
fix: omettre temporalCoverage si date inconnue + TimeoutException explicite ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 17:58:23 +02:00
Colin Maudry
cb93dbe05a
feat: chargements de pages best-effort au boot (tableau, sources) ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 13:58:50 +02:00
Colin Maudry
fa2709b38c
fix: re-vérifier db_path.exists() dans le handler et assertion return value ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 13:50:57 +02:00
Colin Maudry
bba53d81e1
feat: réutiliser le DuckDB existant si le bootstrap échoue ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 13:48:32 +02:00
Colin Maudry
5a6aa31c86
fix: robustesse schéma — TransportError, validation name, ValueError cache ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 13:28:36 +02:00
Colin Maudry
42ba73cd36
feat: schéma résilient URL→cache + suppression DATA_SCHEMA_LOCAL ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 13:26:03 +02:00
Colin Maudry
1aea71be7f
Merge branch 'main' into feature/78_api
2026-06-12 09:33:59 +02:00
Colin Maudry
ed32b0f66b
Réduction des petites erreurs qui polluent les logs
2026-06-07 18:56:16 +02:00
Colin Maudry
4d3e8ac344
feat(etapes): fiches cliquables sur les barres et vue mobile
2026-06-04 22:15:10 +02:00
Colin Maudry
ab74717679
feat(etapes): suppression légende, JAL à la place de Journaux d'annonces légales
2026-06-04 22:04:31 +02:00
Colin Maudry
c9a97fe9d2
feat(etapes): référencement de /etapes dans le sitemap
2026-06-04 21:51:30 +02:00
Colin Maudry
b8db0cddf8
feat(etapes): styles du graphique étapes/seuils
2026-06-04 21:48:28 +02:00
Colin Maudry
4c60fed0c2
feat(etapes): vue mobile liste par étape
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 21:45:25 +02:00
Colin Maudry
070a91fed1
feat(etapes): graphique données par étape et par seuil
2026-06-04 21:42:33 +02:00
Colin Maudry
e638ce45be
feat(etapes): squelette de la page /etapes
2026-06-04 21:38:50 +02:00
Colin Maudry
e55f3447db
Possibilité de charger les données depuis une URL, memoisation de last_modified
2026-06-04 21:34:36 +02:00
Colin Maudry
7d4df0e6ad
Récupération de schéma plus robuste et changelog
2026-05-18 12:16:03 +02:00
Colin Maudry
8dc5287918
Ajouts à flask #78
2026-05-18 11:47:05 +02:00
Colin Maudry
63f51d7b98
API: mention sur la page À propos ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:47:03 +02:00
Colin Maudry
2f0cbada34
API: corriger flush() et isolation test compteur ( #78 )
2026-05-13 14:45:26 +02:00
Colin Maudry
c683034e2b
API: documentation OpenAPI et CHANGELOG ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:37:21 +02:00
Colin Maudry
985af0fdc7
API: envoi Matomo fire-and-forget en async ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:34:52 +02:00
Colin Maudry
912507b1d9
API: compteur de consommation SQLite asynchrone ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:31:22 +02:00
Colin Maudry
6c591aeb08
API: endpoint /data avec pagination et filtres ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:15:19 +02:00
Colin Maudry
6f4e7f1853
API: endpoint /schema ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:10:20 +02:00
Colin Maudry
686218c639
API: branchement init_api dans l'app Dash ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:07:47 +02:00
Colin Maudry
f24d0ba168
API: blueprint flask-smorest + endpoint /health ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:52:06 +02:00