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
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
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
21c65c34fb
test: réparer le baseline test_db cassé par le merge ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-12 11:37:54 +02:00
Colin Maudry
2f0cbada34
API: corriger flush() et isolation test compteur ( #78 )
2026-05-13 14:45:26 +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
04c8bb8b6d
API: tests d'intégration filtres/tri/columns ( #78 )
2026-05-13 14:28:18 +02:00
Colin Maudry
6d2a95d775
API: retirer benchmark non demandé ( #78 )
2026-05-13 14:16:27 +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
7571b9a984
API: script de benchmark tests/benchmark_api.py ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 14:12:27 +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
a05c869b0d
API: renforcer test intégration /health ( #78 )
2026-05-13 14:08:30 +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
Colin Maudry
f12ada2fac
API: décorateur @require_token ( #78 )
2026-05-13 13:49:01 +02:00
Colin Maudry
a3cfad3d8f
API: parser de filtres et génération SQL paramétré ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:45:55 +02:00
Colin Maudry
4b67cde147
API: CLI tokens_cli (create/list/revoke) ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:34:05 +02:00
Colin Maudry
ca44b99016
API: tokens_db SQLite CRUD ( #78 )
2026-05-13 13:19:50 +02:00
Colin Maudry
bc3b09e2a9
API: dépendances et squelette de package ( #78 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 13:04:09 +02:00
Colin Maudry
755b8c13ab
Bug nom colonne, amélioration test #76
2026-05-05 14:56:59 +02:00
Colin Maudry
f4b57dbe5c
Gestion des filtres de dates comme du texte #76
2026-05-05 14:08:50 +02:00
Colin Maudry
10f24dec30
Petites corrections
2026-04-24 12:08:48 +02:00
Colin Maudry
fc4d965b20
Spinner de chargemetn sur la préviusalisation des données
2026-04-23 12:33:30 +02:00
Colin Maudry
a715140af0
test(observatoire): intégration DuckDB pour prepare_dashboard_data ( #72 )
2026-04-23 00:07:24 +02:00
Colin Maudry
0777153c82
refactor(observatoire): prepare_dashboard_data utilise DuckDB ( #72 )
2026-04-22 23:55:45 +02:00
Colin Maudry
6e670c97c9
feat(observatoire): filtres montant min/max ( #72 )
2026-04-22 23:53:43 +02:00
Colin Maudry
522c467702
feat(observatoire): filtres liste via list_has_any ( #72 )
2026-04-22 23:49:32 +02:00
Colin Maudry
74ae1fb008
feat(observatoire): IN départements et skip conditionnel par ID ( #72 )
2026-04-22 23:43:55 +02:00
Colin Maudry
e3a0fba4df
feat(observatoire): filtres LIKE/ILIKE dans dashboard_filters_to_sql ( #72 )
2026-04-22 23:42:43 +02:00
Colin Maudry
a382370767
feat(observatoire): filtres d'égalité simples dans dashboard_filters_to_sql ( #72 )
2026-04-22 23:39:13 +02:00
Colin Maudry
653999693c
feat(observatoire): squelette de dashboard_filters_to_sql ( #72 )
2026-04-22 23:36:59 +02:00
Colin Maudry
3532a9c381
Path de duckdb configurable, correction des tests #72
2026-04-22 20:43:38 +02:00
Colin Maudry
b4956c34d1
Utilisation d'une seule fonction postprocess #72
2026-04-22 18:30:36 +02:00
Colin Maudry
1e67d329d0
perf(tableau): pousser filtre/tri/pagination/comptage dans DuckDB
...
Remplace le chemin lent de prepare_table_data (chargement de toutes les
lignes depuis DuckDB puis filtrage/post-traitement Polars avant slice)
par _fetch_page_sql qui pousse filtre, tri, pagination et comptage dans
DuckDB via filter_query_to_sql / sort_by_to_sql, puis post-traite
uniquement la page de 20 lignes.
Supprime _load_filter_sort_postprocess (plus utilisé). Met à jour les
tests test_table.py en supprimant les tests associés et en ajoutant
des tests dédiés pour _fetch_page_sql. Corrige le fixture flask_app
pour utiliser src.utils.cache (même instance que le module) afin que
@cache.memoize() fonctionne.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 23:53:45 +02:00
Colin Maudry
4e25ff5c85
feat(table): ajouter postprocess_page pour post-traiter une page seule
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 23:42:52 +02:00
Colin Maudry
cdb6a70f7a
feat(db): ajouter count_marches, count_unique_marches et paramètre offset à query_marches
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 23:39:51 +02:00
Colin Maudry
95c90e319e
feat: ajouter traducteurs filter_query→SQL et sort_by→SQL
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-21 23:33:49 +02:00
Colin Maudry
a906a40b7b
Fix import src.utils.cache
2026-04-21 17:21:32 +02:00
Colin Maudry
5151b32f3e
tests/auth/test_csrf.py : vérifie que CSRF est actif ( #73 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 22:56:58 +02:00
Colin Maudry
49bd1b3036
src/auth/routes.py : route /auth/change-password ( #73 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 22:51:40 +02:00
Colin Maudry
6b78abb7fd
src/auth/routes.py : routes de réinitialisation du mot de passe ( #73 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 22:50:20 +02:00
Colin Maudry
ff9b3a6092
src/auth/routes.py : routes /auth/login et /auth/logout ( #73 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 17:39:59 +02:00
Colin Maudry
4d9a300e0c
src/auth/routes.py : route /auth/verify-email ( #73 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 17:38:13 +02:00
Colin Maudry
e275f10dbd
src/auth/routes.py : route /auth/signup ( #73 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 17:37:15 +02:00
Colin Maudry
1c0fb0a960
src/auth/routes.py : blueprint auth et fixtures de test ( #73 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 17:35:06 +02:00
Colin Maudry
8896726e09
src/app.py : initialisation de l'authentification au démarrage ( #73 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 17:34:12 +02:00