Projet

Général

Profil

Development #45264

préremplissage sur les champs des blocs de champs

Ajouté par Frédéric Péters il y a presque 4 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
20 juillet 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Le préremplissage effectif des champs se fait dans wcs/forms/root.py, dans une boucle qui assume une correspondance directe champs/widgets,

            for field in displayed_fields:
                k = field.id
                (...)
                    form.get_widget('f%s' % k).set_value(v)

ce qui ne marche pas pour les champs dans les blocs de champs.


Fichiers

Révisions associées

Révision 3a785828 (diff)
Ajouté par Frédéric Péters il y a plus de 3 ans

general: add support for prefilling blocks (#45264)

Historique

#2

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

(vient après #28117).

Patch assez gros, mais globalement :

Quand il y avait itération sur les champs for field in displayed_fields:, c'est remplacé par une itération via une nouvelle méthode iter_with_block_fields qui va retourner également les champs des blocs.

La partie qui applique le préremplissage sur les champs est déplacée dans sa propre méthode (apply_field_prefills), pour pouvoir être exploitée depuis l'action de workflow d'affichage de formulaire (qui avait un FIXME comme quoi ça dupliquait le code depuis 2015)

#3

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

« we only ever prefill the first item » je n'arrive pas trop à voir si c'est une limitation liée à la structure du code ou si c'est une décision ...?

#4

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

Un peu des deux sans doute; c'est une décision parce que dans ce que j'imagine d'utilité ici ce sera très majoritairement sur des blocs pas répétés (exemple dans le ticket lié). Aussi, même en configuration où les blocs seraient répétés, ça me semble avoir peu de sens à répéter des blocs avec les mêmes données. (et derrière viendrait la demande que la deuxième occurence soit préremplie différemment, j'imagine, etc.)

(mais oui je peux imaginer le bloc répété enfant où on veut préremplir le nom avec le nom de l'usager, et je décide d'ignorer).

#5

Mis à jour par Stéphane Laget il y a plus de 3 ans

Un des cas d'usage serait en formulaire de workflow, où on souhaiterait pré-remplir le formulaire de Workflow avec les informations issues du formulaire (et donc issues d'un bloc de champs dans le formulaire) pour qu'un agent valide / modifie les données (avant l'envoi dans un connecteur par exemple).
J'ai ce cas d'usage à Chambéry, je peux développer l'explication si cela intéresse quelqu'un.

#6

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

Ce ticket concerne le préremplissage individuel des champs; pas d'un bloc complet. (option qui n'est actuellement pas présentée, et qui demandera d'abord de pouvoir fournir de l'info complexe via du gabarit django).

#7

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

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

we only ever prefill the first item : ok avec ça, de toute façon j'imagine bien mal les formules à indiquer dans le gabarit.

Et donc allons-y avec cette (première?) version.

#8

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 3a78582845430ed40b65bf16179d6e5065cbfd02
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Oct 6 19:53:07 2020 +0200

    general: add support for prefilling blocks (#45264)
#9

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

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

Formats disponibles : Atom PDF