Amelioration: ETQ instructeur/usager, tracking et revert des valeurs preremplies par referentiel#13231
Conversation
d1eae68 to
690f3d5
Compare
|
Tu veux que ça marche aussi en construction ? Il faut alors cloner le JSON des valeurs originales. Je ne suis pas sûr qu'on veuille ça, mais je pose ça là pour que tu vérifies le comportement que tu veux. La question se pose aussi pour le clone des dossiers remplis : embarquer ou pas ces valeurs originales ? |
864571e to
5afc0cd
Compare
5afc0cd to
6fe17a4
Compare
ddae0b4 to
6c24aa0
Compare
|
On est d’accord que cela ne concerne que le preremplissage par les référentiels. Je demande cela parce que nous exposons le flag |
| before_action :redirect_if_hidden_or_deleted_dossier, only: [:show] | ||
| before_action :ensure_ownership_or_invitation!, only: ACTIONS_ALLOWED_TO_OWNER_OR_INVITE | ||
| before_action :ensure_dossier_can_be_updated, only: [:update_identite, :update_siret, :brouillon, :submit_brouillon, :submit_en_construction, :modifier, :update, :champ] | ||
| before_action :ensure_dossier_can_be_updated, only: [:update_identite, :update_siret, :brouillon, :submit_brouillon, :submit_en_construction, :modifier, :update, :champ, :revert_prefill] |
There was a problem hiding this comment.
il faut aussi ajouter dans set_dossier_stream un test pour vérifier que ça fonctionne sur un dossier "en construction". Actuellement, je suppose que ça ne fonctionne pas
tchak
left a comment
There was a problem hiding this comment.
Il faut gérer clone_value_from et clone sur le Champ
|
Et on est d’accord, pour l’instant, la fonction n’est pas accessible lors de l’édition du dossier par l’instructeur ? Et les annotations privées, pas de reset non plus ? |
6c24aa0 to
d71829f
Compare
Je pense qu'il faudrait que ca supporte les deux systèmes. Dans un cas comme dans l'autre, du pre-remplissage a été présent, ETQ instructeur, on aimerait savoir quand ça a été modifié. ETQ usager, on aimerait pouvoir faire marche arriere. Qu'en penses-tu ? je suis d'avis d'avoir la demande/v2 [la c'etait pour accompagner api meublé si ils font des conditions d'inéligibilités] ? dans cette PR ? |
d71829f to
5ba6f1b
Compare
heuuuu, maintenant que j'ai corrigé le bug, nous sommes d'accord ;-) donc merci tchak :-) |
959b144 to
00a4859
Compare
Add jsonb nullable column to store the original prefilled value. This enables tracking whether the user modified a referentiel-prefilled champ. ADD COLUMN NULL is metadata-only on PostgreSQL — no table rewrite, instant on 1M+ rows. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…illed_original_value in ReferentielChamp + specs Add concern with three methods: - prefilled_value_modified? — detects if user changed a prefilled value - prefilled_value_matches_current? — compares current vs original - revert_to_prefilled_value! — restores original value - Store the original prefilled attributes (value or external_id) in - prefilled_original_value when update_prefillable_champ runs. - Re-prefill overwrites with the new value. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…e + controller revert_prefill + specs Add PATCH champs/:stable_id/revert_prefill route and controller action. Restores the prefilled original value via turbo_stream re-render. Guarded by ensure_ownership_or_invitation! and ensure_dossier_can_be_updated. Add revert button visible when user modifies a prefilled champ. Uses DSFR tertiary button style, triggers turbo_stream PATCH to revert_prefill action. Integrated in editable_champ_component after InputStatusMessage. End-to-end tests verifying: - Revert button appears when prefilled value is modified - Revert button does not appear when value is unchanged Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add badge visible by instructeur/expert on prefilled champs: - "Donnee verifiee du referentiel" (success) when unchanged - "Donnee du referentiel modifiee par l'usager" (warning) when modified Not shown to usagers or on old dossiers without prefilled_original_value. tests: system spec instructeur badge prefilled + fix badge placement Move ChampPrefilledBadgeComponent render outside RowShowComponent block. RowShowComponent only renders named slots (value, blank) — content in the block outside slots is silently ignored.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
00a4859 to
75a8865
Compare
Probleme
Quand un champ est prerempli via un referentiel, il n'y a aucun moyen de savoir si l'usager a modifie la valeur originale. L'instructeur ne peut pas distinguer une valeur verifiee d'une valeur alteree. L'usager ne peut pas revenir a la valeur du referentiel apres modification.
Solution
prefilled_data(jsonb) surchamps: stocke la valeur originale au moment du preremplissageChampPrefillTrackingConcern: detection de modification (prefilled_value_modified?) et revert (revert_to_prefilled_value!):updateexistante)clone_value_frometChamp#clonepreserventprefilledetprefilled_data— corrige la perte du tracking sur les buffer streams (en construction) et le clone de dossiersrevert_to_prefilled_value!resetvalue,value_json,data,external_idavant de reappliquerprefilled_data, evitant des donnees derivees incoherentes (ex: ancienexternal_id+datad'un fetch precedent)Screenshots (vue usager)
Etat initial / apres revert — champs preremplis, pas de modification
Apres modification — bouton "Remplir a nouveau automatiquement" visible
Vue Instructeur/Expert/Usager sur le dossier — affichage du badge non changé, affichage de l'info que ça a été changé
Generated with Claude Code