Skip to content

Conserve les CGU cochées sur l'habilitation bac à sable quand le demandeur commence un demande production. - #1760

Merged
Isalafont merged 1 commit into
developfrom
fix/dpp-98-ano-dgfip-cases-utilisation-reinitialisees
Sep 21, 2026
Merged

Isalafont merged 1 commit into
developfrom
fix/dpp-98-ano-dgfip-cases-utilisation-reinitialisees

Conversation

@Isalafont

@Isalafont Isalafont commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Problème

Sur une habilitation DGFiP bac à sable validée, les cases CGU et DPO
s’affichaient décochées dès que le demandeur démarrait sa demande de production.

Le passage au palier suivant remet ces deux attributs à false sur la request,
partagée entre les deux paliers — c’est volontaire, les CGU de production sont
un document distinct. Mais ce sont les deux seuls champs du formulaire stockés
en colonne SQL et non dans le snapshot data : l’habilitation déjà délivrée n’en
garde aucune copie.

Correctif

Authorization#request_as_validated restitue les deux consentements à true
quand la définition est multi-paliers (36 définitions, toutes DGFiP). Une
Authorization n’existe que si la demande a été validée, et la soumission est
bloquée par all_terms_accepted : si l’habilitation existe, les consentements
ont été donnés.

Rien ne change en base, ni dans les payloads de webhook (ces champs n’y ont
jamais figuré).

Enregistrement.de.l.ecran.2026-09-15.a.17.14.55.mov

Comment tester

Se connecter en demandeur : /local-sign-in?email=user@yopmail.com
(review app : ajouter &token=<token>).

  1. Créer une demande via /demandes/api_impot_particulier_sandbox/nouveau,
    la remplir, cocher les trois cases et la soumettre.
  2. La valider en tant qu’instructeur.
  3. Revenir en demandeur : « Démarrer ma demande d’habilitation en production »,
    puis « Débuter ma demande ». Ne pas la soumettre.
  4. Retourner sur l’habilitation bac à sable validée (badge « Bac à sable »,
    bouton « Consulter »).

Attendu : les deux cases sont cochées et grisées. Avant le correctif, elles étaient décochées.

À vérifier aussi

  • Formulaire de production en cours : les deux cases restent décochées, le
    consentement production doit toujours être demandé.
  • Habilitation hors DGFiP (API Entreprise) : aucun changement.
  • Production soumise puis refusée : le bac à sable reste coché.
  • Demande de production annulée : le bac à sable reste coché.
  • Réouverture du bac à sable puis annulation de la réouverture : l’habilitation
    validée reste cochée.

Tests automatisés

  • features/habilitation_en_plusieurs_paliers.feature — scénario « pendant une
    demande de production », vérifié en échec sans le correctif.
  • spec/models/authorization_spec.rb — restitution après
    StartNextAuthorizationRequestStage, non-interférence sans palier.

Démarrer une demande de production remet les deux consentements à
false sur la request, partagée entre les deux paliers. L’habilitation
bac à sable déjà délivrée les affichait donc décochés, alors qu’ils
ont bien été donnés au moment de sa validation.

Ce sont les deux seuls champs de formulaire stockés en colonne et non
dans le snapshot data, d’où leur perte à la reconstitution.
@linear

linear Bot commented Sep 15, 2026

Copy link
Copy Markdown

DPP-98

@Isalafont Isalafont self-assigned this Sep 15, 2026
@Isalafont Isalafont added the bug Something isn't working label Sep 15, 2026
@Isalafont Isalafont changed the title Conserve les CGU cochées sur le bac à sable pendant la production Conserve les CGU cochées sur l'habilitation bac à sable quand le demandeur commence un demande production. Sep 15, 2026

@jbfeldis jbfeldis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Très bien, c'est ptet un des rares cas qui aurait mérité une ligne de commentaire dans affect_accepted_terms histoire de dire que c'est de la dette.
Mais ça me semble être une bonne rustine 👌

@Isalafont

Copy link
Copy Markdown
Contributor Author

Très bien, c'est ptet un des rares cas qui aurait mérité une ligne de commentaire dans affect_accepted_terms histoire de dire que c'est de la dette. Mais ça me semble être une bonne rustine 👌

J'ai mis une explication dans le commentaire du commit. Après ça a vocation a disparaitre avec le décomissionement des BaS

@Isalafont
Isalafont merged commit ff7a58b into develop Sep 21, 2026
54 of 57 checks passed
@Isalafont
Isalafont deleted the fix/dpp-98-ano-dgfip-cases-utilisation-reinitialisees branch September 21, 2026 08:11

This branch was successfully deployed

1 active deployment
sandbox c4e265c6 Deployed Sep 16, 2026 by jbfeldis via deployment (watchdoge4) #219
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants