Affiche un message utilisateur au lieu d'une exception SQL quand
l'email existe déjà. Déplace l'envoi du mail après le flush.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Turbo Drive was intercepting file upload form submissions, causing videos
and photos to not be uploaded. Adding data-turbo="false" ensures the
browser handles these multipart forms natively.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add Cache-Control: no-store headers to Keycloak OAuth start routes so the
HTTP kernel cache never caches the redirect-with-state response, which
caused "Invalid state parameter" errors on subsequent logins.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fusionne le flow en deux étapes (redirect intermédiaire via ?idDevis) en
une seule requête POST : génération PDF, soumission DocuSeal et envoi du
mail de signature se font maintenant directement lors de la création du devis.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Les formulaires de réinitialisation de mot de passe et d'inscription utilisaient Turbo par défaut, ce qui pouvait interférer avec le processus de soumission standard et la redirection après action. L'ajout de l'attribut `data-turbo="false"` sur chaque formulaire concerné garantit que les requêtes POST sont traitées de manière conventionnelle, évitant ainsi des comportements inattendus ou des échecs de soumission.
Les formulaires de réinitialisation de mot de passe et d'inscription utilisaient Turbo par défaut, ce qui pouvait interférer avec le processus de soumission standard et la redirection après action. L'ajout de l'attribut `data-turbo="false"` sur chaque formulaire concerné garantit que les requêtes POST sont traitées de manière conventionnelle, évitant ainsi des comportements inattendus ou des échecs de soumission.