Projet

Général

Profil

Development #45250

ne pas enregistrer les données des pages pas affichées

Ajouté par Frédéric Péters il y a presque 4 ans. Mis à jour il y a plus d'un an.

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

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

À la validation finale, conserver uniquement les données des pages affichées.

(pas avant, on veut pouvoir faire "précédent" et retrouver ce qui avait été tapé).

A priori :

--- a/wcs/forms/root.py
+++ b/wcs/forms/root.py
@@ -1187,6 +1187,7 @@ class FormPage(Directory, FormTemplateMixin):
             filled.just_created()

         filled.data = self.formdef.get_data(form)
+
+        # remove data from conditioned-out pages
+        (écrire du code ici)
+
         session = get_session()
         if session and session.user and not str(session.user).startswith('anonymous-'):
             filled.user_id = get_request().user.id

Historique

#1

Mis à jour par Frédéric Péters il y a plus d'un an

  • Statut changé de Nouveau à Fermé

Ça pourrait être quelque chose comme :

        skip_page = False
        displayed_page_ids = [x.id for x in self.pages if x]
        for field in self.formdef.fields:
            if field.key == 'page':
                skip_page = bool(field.id not in displayed_page_ids)
            elif skip_page:
                for attr in (f'{field.id}', f'{field.id}_display', f'{field.id}_structured'):
                    if attr in filled.data:
                        del filled.data[attr]

mais de tests que je fais maintenant, dépôt d'une demande, avec page de confirmation ou pas, et édition d'une demande, dans les trois cas les données des pages conditionnelles sont bien absentes.

Comme le ticket n'a pas de lien vers une situation précise avec le problème, je me dis que c'était peut-être un problème théorique que j'avais imaginé.

Ou ça s'est corrigé depuis via une autre modification.

Formats disponibles : Atom PDF