Bug #24048
conditions d'affichage des pages appliquées à l'affichage dans le résumé de la demande
0%
Description
Si un formulaire contient deux pages conditionnelles:
- une qui s'affiche uniquement en backoffice, condition
is_in_backoffice
- une qui s'affiche uniquement en frontoffice, condition
not is_in_backoffice
Si le formulaire est rempli en frontoffice, le résumé de la demande ne contient pas les champs remplis dans la page affichée uniquement en front.
En révanche si le formulaire est saisi en backoffice les champs de la page sont bien affichés dans le résumé.
Fichiers
Révisions associées
Historique
Mis à jour par Serghei Mihai il y a presque 6 ans
Si je retire la condition sur la page à afficher dans le frontoffice, ses données apparaissent dans le résume de la demande.
Mis à jour par Thomas Noël il y a presque 6 ans
C'est ainsi :
if f.type == 'page': on_disabled_page = False if not f.is_visible(self.filled.data, self.formdef): on_disabled_page = True
Et donc, je ne vois pas de solution pour le cas d'une page avec condition « not is_in_backoffice » : elle ne s'affichera jamais en backoffice.
Mis à jour par Thomas Noël il y a presque 6 ans
En contournement :
not is_in_backoffice or vars().get('form_var_truc')
où form_var_truc
est une donnée obligatoire de la page. Ainsi la page s'affichera toujours une fois reçue (frontoffice comme backoffice).
Mis à jour par Frédéric Péters il y a presque 6 ans
Peut-être ce qu'il faudrait (pas réfléchi des masses) conserver les pages visitées lors du remplissage du formulaire et exploiter ça. (ça servirait aussi à "vider" les champs de pages par lesquelles l'usager est juste passé avant de faire précédent, etc.)
Mis à jour par Thomas Noël il y a presque 6 ans
Frédéric Péters a écrit :
Peut-être ce qu'il faudrait (pas réfléchi des masses) conserver les pages visitées lors du remplissage du formulaire et exploiter ça. (ça servirait aussi à "vider" les champs de pages par lesquelles l'usager est juste passé avant de faire précédent, etc.)
Oui, ça éviterait d'appeler "is_visible" sur les pages (qui lance des calculs qui peuvent ne pas avoir de sens sur l'affichage du résumé, comme ici.. mais j'imagine aussi d'autres endroits où on appelle des webservices... ça peut vite être la cata).
Mis à jour par Frédéric Péters il y a presque 6 ans
Vu #19521, j'aurais une nouvelle position ici, pas besoin d'enregistrer quoique ce soit de neuf, simplement, à l'affichage d'une demande, reprendre uniquement les pages sur lesquelles il y a des données, sans prêter attention aux conditions.
Mis à jour par Thomas Noël il y a presque 6 ans
Frédéric Péters a écrit :
Vu #19521, j'aurais une nouvelle position ici, pas besoin d'enregistrer quoique ce soit de neuf, simplement, à l'affichage d'une demande, reprendre uniquement les pages sur lesquelles il y a des données, sans prêter attention aux conditions.
Ok pour cette proposition. Pour l'anecdote, ça m'a évoqué que je l'avais déjà joué ainsi dans le connecteur Maarch http://git.entrouvert.org/passerelle.git/tree/passerelle/contrib/maarch/views.py#n97
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-forms-only-include-pages-with-actual-data-in-summary.patch 0001-forms-only-include-pages-with-actual-data-in-summary.patch ajouté
- Statut changé de Nouveau à En cours
- Assigné à mis à Frédéric Péters
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a presque 6 ans
- Statut changé de En cours à Résolu (à déployer)
commit eed3861a3d947c77fd52dfc71813b3c5bd3f2ad3 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu Jun 7 15:19:43 2018 +0200 forms: only include pages with actual data in summary (#24048)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
forms: only include pages with actual data in summary (#24048)