Commit Graph

885 Commits

Author SHA1 Message Date
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 b6a95e5464 Premier jet des CGU #93 2026-06-26 18:25:12 +02:00
Colin Maudry 401bf5e204 Ajoute spec et plan d'implémentation TOUS_ABONNES
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 18:23:42 +02:00
Colin Maudry 8faeaa5804 Bandeau TOUS_ABONNES et boutons S'abonner désactivés
Affiche un bandeau d'info sur /compte/abonnement et grise les boutons
S'abonner quand l'accès gratuit pour tous est activé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 18:12:58 +02:00
Colin Maudry 2bdcfdeb1a Ajoute le drapeau TOUS_ABONNES pour l'accès gratuit
Ouvre les fonctionnalités d'abonné à tout utilisateur connecté tant que
Frisbii n'a pas validé la réception de paiements.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 18:06:27 +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 b25150faa3 orjson pour sérialiser les sorties API 2026-06-26 12:24:47 +02:00
Colin Maudry 8926c5b02c Layout fluide (pleine largeur) pour /a-propos 2026-06-26 12:24:15 +02:00
Colin Maudry b4f7e94800 Redesign de a-propos 2026-06-26 12:24:07 +02:00
Colin Maudry e229caf320 Fix affichage jours d'essai 2026-06-25 22:41:48 +02:00
Colin Maudry 5bd7029066 Wrap les erreurs httpx du client Frisbii en FrisbiiError 2026-06-25 22:34:29 +02:00
Colin Maudry 1bd15f627f Mise un place d'un système DIY de migrations DB 2026-06-25 22:15:31 +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 89bcd9f161 Merge branch 'feature/90_subscriptions' into dev 2026-06-25 21:14:47 +02:00
Colin Maudry e932c66af0 Corrections des bugs de la connexion à Frisbii #90 2026-06-25 21:14:35 +02:00
Colin Maudry 5f500a1aa8 fix(abonnement): garde active→pending, datetime parse, resolve_handle vide (#90)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 19:26:15 +02:00
Colin Maudry d3025e323b feat(abonnement): page /compte/abonnement + accès premium réel (#90)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 19:08:22 +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 4b1d8bf5c3 feat(abonnement): signature + mapping des webhooks Frisbii (#90) 2026-06-25 18:56:26 +02:00
Colin Maudry 4f90184ddd feat(abonnement): catalogue de plans + durée d'essai dynamique (#90) 2026-06-25 18:53:41 +02:00
Colin Maudry b7a79d8d86 feat(abonnement): table subscriptions + état (#90) 2026-06-25 18:50:50 +02:00
Colin Maudry 007cb28b21 feat(abonnement): client HTTP Frisbii (#90)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 18:47:21 +02:00
Colin Maudry b0543c0c03 docs(abonnement): mention explicite 'sans période d'essai' si essai déjà utilisé (#90)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 18:43:51 +02:00
Colin Maudry a18d43dae4 docs(abonnement): anti-abus essai (trial_used + no_trial) (#90)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 18:41:31 +02:00
Colin Maudry 421750957f docs(abonnement): plan d'implémentation Frisbii (#90)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 18:36:25 +02:00
Colin Maudry 78aea4a69a docs(abonnement): durée d'essai lue depuis le plan Frisbii (non codée en dur) (#90)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 18:29:22 +02:00
Colin Maudry 3f12e6e210 docs(abonnement): essai gratuit de 2 jours (config plan Frisbii) (#90)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 18:06:37 +02:00
Colin Maudry 3528924857 docs(abonnement): spec Frisbii (souscription, résiliation, webhooks) (#90)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DRGb8NAMwaTZxUszSbaj4N
2026-06-25 18:03:33 +02:00
Colin Maudry 6d07dcb0bb orjson pour sérialiser les sorties API 2026-06-25 13:04:24 +02:00
Colin Maudry 06fad7ec2d Changelog 2.8.1 v2.8.1 2026-06-25 09:54:45 +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 2701eb0422 Layout fluide (pleine largeur) pour /compte et /a-propos 2026-06-25 09:37:06 +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 82999ef056 Redesign de a-propos 2026-06-25 01:19:36 +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 5a702ac77e fix(auth): null password_hash pour utilisateurs OAuth (#88)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 23:27:15 +02:00
Colin Maudry aac3753226 feat(auth): bouton Connexion avec LinkedIn sur connexion/inscription (#88)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 23:18:41 +02:00
Colin Maudry 9f10f1c4de feat(auth): routes /auth/linkedin et callback OIDC (#88)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 23:14:29 +02:00
Colin Maudry d79e990c04 feat(auth): init Authlib + provider LinkedIn (config env) (#88)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 23:11:26 +02:00
Colin Maudry d72cad90ec feat(auth): resolve_oauth_user (liaison/création de compte OIDC) (#88)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 23:07:46 +02:00
Colin Maudry 44031efcd5 feat(auth): oauth_identities table + password_hash nullable (#88)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-24 23:04:18 +02:00
Colin Maudry 8037f2733e docs(auth): plan d'implémentation connexion LinkedIn
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 22:58:28 +02:00
Colin Maudry 6038b44fa8 docs(auth): spec connexion LinkedIn (OIDC)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 22:51:56 +02:00
Colin Maudry ccdf476c4f fix(compte): styles nav sidebar, zone danger et bouton déconnexion (#73)
- Nav sidebar : indicateur bordure gauche rouge au lieu du pill rouge plein
- Zone danger : couleur rouge directe (#d9230f) au lieu de Bootstrap danger (violet en Simplex)
- Bouton Déconnexion : outline pour le rendre clairement stylisé

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 22:38:28 +02:00
Colin Maudry ff7aaa54cd fix(auth): vérification promote_pending_email, purge tokens change-email, fallback login (#73)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 22:25:34 +02:00
Colin Maudry dba8669f4b test(compte): redirections d'accès de l'espace compte (#73)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 22:16:02 +02:00
Colin Maudry e2124024e1 fix: move _toggle_offcanvas callback to _compte_shell.py
The callback was defined in compte_admin.py but controlled components
(compte-offcanvas and compte-offcanvas-open) rendered by account_shell()
in _compte_shell.py. Moving the callback to where the components live
improves code organization and reduces coupling.

Closes #73

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 22:10: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 cce4d9873a feat(compte): coquille de la section Abonnement (#73) 2026-06-24 22:06:42 +02:00
Colin Maudry 6144e3c18d feat(auth): route delete-account avec confirmation par mot de passe (#73) 2026-06-24 18:49:52 +02:00