Projet

Général

Profil

Development #51330

préremplissage dynamique d'un champ sur la même page

Ajouté par Frédéric Péters il y a environ 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
22 février 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Maintenant que le préremplissage est rejoué sur les champs s'ils n'ont pas été modifiés, on peut étendre ça pour fonctionner sur la même page.

champ 1
 [....]
champ 2
 [....], prérempli form_var_champ1

et ce qui est écrit dans le champ 1 serait reproduit dans le champ 2, tant que celui-ci n'a pas été manuellement mis à une valeur différente.

Faire attention au cas où le préremplissage se fait sur une valeur du profil de l'usager, ce qui peut désormais être modifié en cours de route lors de la saisie backoffice.

(dev mutualisé https://publik.tracim.fr/ui/workspaces/1/contents/html-document/894)


Fichiers


Demandes liées

Lié à w.c.s. - Bug #51686: préremplissage dynamique en saisie backoffice avec juste du préremplissage usagerFermé05 mars 2021

Actions
Lié à w.c.s. - Development #51688: préremplissage dynamique vers des champs de blocsFermé05 mars 2021

Actions

Révisions associées

Révision b091599f (diff)
Ajouté par Frédéric Péters il y a environ 3 ans

forms: recompute prefills on live changes (#51330)

Historique

#1

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Description mis à jour (diff)
#2

Mis à jour par Frédéric Péters il y a environ 3 ans

En fait un patch fait de quantité de petites choses :

  • on inclut désormais la classe widget-prefilled de manière systématique pour les champs configurés avec du préremplissage; avant on ne le faisait pas quand le préremplissage donnait une chaine vide; on fait ça parce que c'est sur base de la classe widget-prefilled qu'on va mettre à jour le champ ou pas.
  • ça fait que côté js quand un champ est modifié on retire la classe widget-prefilled.
  • et dans l'appel à l'url /live pour obtenir les résultats, on passe la liste des champs préremplis (ex: ?prefilled_1=on&prefilled_4=on&...)
  • il y a une valeur particulière quand l'usager associé à une demande est modifié (ce qui arrive quand on est en saisie backoffice et qu'on choisit un usager en barre latérale); on passe dans ce cas ?modified_field_id=user
  • il y a la situation particulière de blocs de champs où on clique sur le bouton pour ajouter une ligne, dans la suite il y a court-circuitage du préremplissage et donc les champs qui étaient déjà là n'ont plus la classe widget-prefilled; ça m'ennuyait vraiment d'avoir à tout recalculer après un clic sur "ajouter" (après avoir déjà fait #51314 pour recalculer l'aspect "champ verrouillé"); c'est pour contourner cette partie du problème que j'ai fait #51369 pour que la partie "ajouter" soit gérée ajax et sans incidence sur les autres champs.
#3

Mis à jour par Thomas Noël il y a environ 3 ans

Sur ce moment :

        elif get_request().form.get('modified_field_id') == 'user':
            # user selection in sidebar
            formdata.user_id = get_request().form.get('user_id')

J'ai l'impression que ça pourrait permettre, en bidouillant le user_id envoyé au live, de voir les infos pré-remplies de n'importe quel user dans le résultat du live...? Il faudrait peut-être vérifier qu'on est bien en backoffice ?

#4

Mis à jour par Frédéric Péters il y a environ 3 ans

Yes, je vais faire ça.

#6

Mis à jour par Thomas Noël il y a environ 3 ans

  • Statut changé de Solution proposée à Solution validée
#7

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit b091599f369fc57367df9776cd48ad4dee2867c1
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Mon Feb 22 15:50:20 2021 +0100

    forms: recompute prefills on live changes (#51330)
#8

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#9

Mis à jour par Pierre Cros il y a environ 3 ans

Je m'attendais à c e que ça fonctionne ici et c'est pas le cas :
https://demarches-montoulouse.cutm-publik-preprod.nfrance.com/backoffice/submission/allo-toulouse-signalements/ (EDIT : URL modifiée)

Peut-être parce que c'est un bloc de champ qui est employé :
https://demarches-montoulouse.cutm-publik-preprod.nfrance.com/backoffice/forms/blocks/3/

#10

Mis à jour par Frédéric Péters il y a environ 3 ans

Tu pointes deux fois l'URL vers la définition du bloc, je pense que tu voulais pointer l'endroit où constater l'affaire en premier.

#11

Mis à jour par Frédéric Péters il y a environ 3 ans

ça fonctionne ici

Étant donc une situation de saisie backoffice où l'usager est choisi en barre latérale et du préremplissage à partir de champs du profil configuré sur des champs d'un bloc de la démache.

(mais là en local, même sans l'affaire de bloc j'ai l'impression qu'un bug tardif s'est introduit).

#12

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Lié à Bug #51686: préremplissage dynamique en saisie backoffice avec juste du préremplissage usager ajouté
#13

Mis à jour par Frédéric Péters il y a environ 3 ans

#14

Mis à jour par Pierre Cros il y a environ 3 ans

J'ai rétabli la bonne URL dans mon commentaire initial.

#15

Mis à jour par Brice Mallet il y a environ 3 ans

J'avais fait un formulaire de test : https://demarches-mkuntz.test.entrouvert.org/brice/test-pre-remplissage-puis-reinitialisation/ (BO : https://demarches-mkuntz.test.entrouvert.org/backoffice/forms/163/), je m'attendais à ce que le pré-remplissage fonctionne dans tous les cas sur la même page (sur la page 1) or ce n'est pas le cas, est-ce un problème de configuration, de ce que devait faire le développement ou un bug ?

#16

Mis à jour par Frédéric Péters il y a environ 3 ans

Tu peux dire ce que tu attendais plus précisément que "dans tous les cas" ?

#17

Mis à jour par Brice Mallet il y a environ 3 ans

Tu peux dire ce que tu attendais plus précisément que "dans tous les cas" ?

Désolé, j'avais loupé ta réponse.
"dans tous les cas" : que ce qui fonctionne en pré-remplissage sur une page suivante, fonctionne maintenant en pré-remplissage sur la même page.

Dans la cas de ce formulaire de test :
#18

Mis à jour par Frédéric Péters il y a environ 3 ans

de la liste

C'était hors scope précisé dans tracim, "Pré-remplissage dynamique des champs Texte (court et long)", mais je vais faire un ticket.

et du sous-titre

Il n'y a pas de notion de préremplissage sur les sous-titres.

#19

Mis à jour par Renaud Boitouzet il y a environ 3 ans

Bonjour, je m'immisce dans vos échanges, pardon si ce n'est pas approprié !

Je ne sais pas si c'est pertinent/possible de changer ça, mais en reprenant l'exemple du formulaire de test https://demarches-mkuntz.test.entrouvert.org/brice/test-pre-remplissage-puis-reinitialisation/ si on passe en page 2 sans avoir modifié manuellement le champ texte prérempli dynamiquement, puis qu'on revient en page 1, le pré-remplissage dynamique ne fonctionne plus.

Le comportement n'est donc pas le même selon que l'usager arrive sur la page pour la première fois ou qu'il y revienne.

J'ai trouvé plusieurs tickets connexes mais qui datent d'avant la mise en place du préremplissage dynamique : #43369, # 45348.

#20

Mis à jour par Brice Mallet il y a environ 3 ans

C'était hors scope précisé dans tracim, "Pré-remplissage dynamique des champs Texte (court et long)", mais je vais faire un ticket.

La demande initiale émanait de Toulouse qui demandait explicitement uniquement pour les champs textes ; mais comme ce développement est la suite de "Pré-remplissage de champs Texte et Liste : réinitialisation après changement de condition", j'ai sur-interprété que cela s'appliquerait aussi sur les listes.
Nota : le ticket de Fred = #51897

Il n'y a pas de notion de préremplissage sur les sous-titres.

En effet pas "pré-remplissage", "mise à jour automatique" serait plus juste ; il n'empêche que comme de plus en plus de champs de saisie et de champs de mise en forme (commentaire, titre, sous-titre) sont mis à jour depuis un déclencheur, je trouve qu'il serait bien que le comportement soit identiques pour tous les champs (i.e. mise à jour en direct même si le déclencheur est sur la page même page), je vais faire un courriel à ce sujet

Formats disponibles : Atom PDF