Commit Graph

78 Commits

Author SHA1 Message Date
Colin Maudry fb45c8e7d5 feat: registre des votes feature_votes #94
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 13:55:28 +02:00
Colin Maudry dc30d889c4 Merge vues sauvegardées #95 2026-06-29 16:54:11 +02:00
Colin Maudry 03023a6b8c feat: table saved_views et CRUD #95 2026-06-29 16:14:00 +02:00
Colin Maudry 8cd5bfe821 fix(csrf): supprimer prevent_initial_call=True sur _fill_csrf_inputs
Avec prevent_initial_call=True, le callback ne s'exécutait pas lors de
la chaîne initiale (_generate_csrf_token → csrf-token), laissant le champ
csrf_token vide au premier chargement direct de /connexion → erreur 400.

Ajoute des tests comportementaux avec CSRF activé (comme en production) et
un test architectural qui vérifie que le callback reste appelable initialement.
Corrige aussi les assertions de redirection post-login (/compte/abonnement).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 15:46:30 +02:00
Colin Maudry 0eb2807630 Merge branch 'dev2' into dev
# Conflicts:
#	CHANGELOG.md
#	pyproject.toml
#	src/assets/css/style.css
#	src/pages/_apropos_shell.py
#	uv.lock
2026-06-26 18:27:24 +02:00
Colin Maudry 57dd4d22eb Lien a propos direct, ordre section, mini erreur dans marche.py 2026-06-26 15:46:10 +02:00
Colin Maudry 6e0722e2d7 S'assure que src/ n'est pas dans le path au démarrage 2026-06-25 21:56:10 +02:00
Colin Maudry 3d1cb69463 feat(abonnement): routes subscribe/cancel/webhook + câblage app (#90) 2026-06-25 19:00:53 +02:00
Colin Maudry b93aca9005 feat(ux): refonte barre latérale /compte et fix CLI tokens
- Déconnexion déplacée dans la sidebar (lien discret) et retirée du dropdown navbar
- Email utilisateur connecté = lien simple vers /compte/admin (sans dropdown)
- Hover orange pâle sur les nav-links des sidebars
- fix(cli): load_dotenv() dans tokens_cli pour charger .env hors contexte app

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 02:11:28 +02:00
Colin Maudry 590b927e31 fix(auth): corrections runtime LinkedIn OAuth (#88)
- Workaround nonce OIDC LinkedIn (non-conformité) : capture MissingClaimError après échange de code réussi et fetch userinfo séparément
- Ajout token_endpoint_auth_method: client_secret_post (requis par LinkedIn)
- suppress_callback_exceptions=True pour corriger les erreurs Dash multi-pages
- Suppression bouton déconnexion redondant sur /compte/admin et style hover incorrect sur la navbar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 00:38:01 +02:00
Colin Maudry 95f7d80b45 feat(compte): page /compte/admin (email, mot de passe, suppression) (#73) 2026-06-24 22:07:05 +02:00
Colin Maudry c99f4d970e fix(csrf): centraliser l'injection des tokens CSRF via un dcc.Store et un callback pattern-matching
Remplace les 7 callbacks CSRF individuels (un par formulaire, avec IDs string
page-spécifiques) par un seul dcc.Store(id="csrf-token") dans le layout principal
et un callback pattern-matching Output({"type": "csrf-input", "index": ALL}).
Évite les erreurs Dash "id non trouvé dans le layout" sans recourir à
suppress_callback_exceptions=True.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 05:26:07 +02:00
Colin Maudry cbce646fd8 Merge branch 'dev' into feature/73_compte_utilisateur 2026-06-24 03:01:43 +02:00
Colin Maudry 1aea71be7f Merge branch 'main' into feature/78_api 2026-06-12 09:33:59 +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 e55f3447db Possibilité de charger les données depuis une URL, memoisation de last_modified 2026-06-04 21:34:36 +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 0c9666204b Autorisation du HTML dans les annonces 2026-05-11 10:34:06 +02:00
Colin Maudry 3e89dacff9 Correction de setup_table_columns et autres 2026-04-22 21:16:51 +02:00
Colin Maudry d4844140b4 src/auth : exempter les routes Dash internes de la protection CSRF (#73)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 23:11:17 +02:00
Colin Maudry 20e7eed424 src/app.py : navbar avec lien Connexion / dropdown utilisateur (#73)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 22:56:13 +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
Colin Maudry da5a99b3af Merge branch 'main' into dev 2026-04-20 10:49:31 +02:00
Colin Maudry 285ed37d79 Correction de l'import d'utils.cache 2026-04-20 00:06:44 +02:00
Colin Maudry 7aef7acd34 Petits ajustements (cache => utils, noms de variables) 2026-04-19 23:49:02 +02:00
Colin Maudry 4d0baebb75 Vérification de l'existence de cache_dir 2026-04-19 15:54:36 +02:00
Colin Maudry 26169abc2f Suppression du cache à chaque redémarrage 2026-04-19 15:29:34 +02:00
Colin Maudry a7516d65e3 Utilisation du logger global dans app et db 2026-04-18 19:28:34 +02:00
Colin Maudry e352624c02 Capitalisation des constantes 2026-04-18 18:09:42 +02:00
Colin Maudry 9a19e5cba7 Mise en place d'un cache pour l'observatoire 2026-04-15 12:11:44 +02:00
Colin Maudry 24e0cee2b1 Améliorations de typage 2026-03-30 14:58:18 +02:00
Colin Maudry d50ec5b01e Statistiques => Observatoire #65 2026-03-17 22:59:01 +01:00
Colin Maudry 5c43bfea78 AMélioration de la génération de liens canoniques (pas de doublons) 2026-02-15 16:50:09 +01:00
Colin Maudry 61dbf237cf Premier test UI 2026-02-04 23:33:59 +01:00
Colin Maudry 8c11a018a0 Alignement du logo et du numéro de version 2026-01-29 02:38:10 +01:00
Colin Maudry 274e06cde4 Hébergement de bootstrap pour supprimer google fonts 2026-01-29 01:37:56 +01:00
Colin Maudry f9aadede8b robots.txt généré par le code #66 2026-01-29 01:37:08 +01:00
Colin Maudry fb5c37b34b Merge branch 'feature/66_seo' into dev 2026-01-28 14:06:03 +01:00
Colin Maudry 1eecc45e29 Meta keywords (même si a priori ça aide pas pour le SEO) #66 2026-01-28 13:49:19 +01:00
Colin Maudry 9a1e5bee63 Départements sous forme de liste, ajout des titulaires par département #66 2026-01-28 11:57:41 +01:00
Colin Maudry 965f24ab92 Meta tag noindex sur test.decp.info 2026-01-26 07:02:03 +01:00
Colin Maudry d499906bbe Génération d'une sitemap #50 2026-01-21 17:40:53 +01:00
Colin Maudry 2fc501efbb Container de l'app toujours fluid, fix noms props #63 2026-01-21 16:32:20 +01:00
Colin Maudry 945f7974c8 Configuration du point de rupture de la navbar à 992px #63 2026-01-21 15:13:59 +01:00
Colin Maudry 1044379425 Meilleur affichage sur petit écran #63 2026-01-21 14:22:52 +01:00
Colin Maudry 421eaa0772 Premier jet navbar #63 2026-01-20 17:31:42 +01:00
Colin Maudry c3e801a15a Utilisation des dbc pour /marche #63 2026-01-19 11:34:20 +01:00
Colin Maudry 032ca5554e Déplacement des notes de version vers CHANGELOG.md 2025-12-24 09:31:33 +01:00
Colin Maudry 24ef21761f Gestion des annonces dans .env 2025-12-18 01:37:58 +01:00
Colin Maudry 19d7735306 Message informant du problème avec les données MINEF 2025-12-04 16:34:56 +01:00