Projet

Général

Profil

Bug #28411

Le code de suivi semble varier entre première et deuxième page dans certains cas

Ajouté par Benjamin Dauvergne il y a plus de 5 ans. Mis à jour il y a environ 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
27 novembre 2018
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Voir #28403.


Fichiers

Révisions associées

Révision 97c06464 (diff)
Ajouté par Benjamin Dauvergne il y a environ 5 ans

forms: do not overwrite magic formdata with cancelurl (fixes #28411)

Historique

#2

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

Après quelques tests ça n'arrive que si l'URL contient un champ cancelurl comme là:

https://departement06.test.entrouvert.org/accueil-social/ => https://demarches-departement06.test.entrouvert.org/premiere-demande-d-apa-a-domicile/?cancelurl=https://departement06.test.entrouvert.org/accueil-social (premier lien en vert en bas de page)

Par contre si on va directement sur la demande le code de suivi est bien le même en première est deuxième page :

https://demarches-departement06.test.entrouvert.org/premiere-demande-d-apa-a-domicile/

Ce n'est qu'une vague hypothèse mais il semblerait qu'entre:

# wcs/forms/root.py def q_index(...):

 591             self.feed_current_data(None)
 592             # first hit on first page, if tracking code are enabled and we
 593             # are not editing an existing formdata, generate a new tracking
 594             # code.
 595             if not self.edit_mode and self.formdef.enable_tracking_codes and not get_request().form.has_key('mt'):
 596                 tracking_code = get_publisher().tracking_code_class()
 597                 tracking_code.store()
 598                 token = randbytes(8)
 599                 get_request().form['magictoken'] = token
 600                 session.add_magictoken(token, {'future_tracking_code': tracking_code.id})

et

# wcs/forms/root.py def page(...):

 282         # include a data-has-draft attribute on the <form> element when a draft
 283         # already exists for the form; this will activate the autosave.
 284         magictoken = get_request().form.get('magictoken')
 285         if magictoken:
 286             form_data = session.get_by_magictoken(magictoken, {})
 287             if self.formdef.enable_tracking_codes and not self.edit_mode:
 288                 form.attrs['data-has-draft'] = 'yes'
 289         else:
 290             form_data = {}
 291 
 292         if page == self.pages[0] and not get_request().form.has_key('magictoken'):
 293             magictoken = randbytes(8)
 294         else:
 295             magictoken = get_request().form['magictoken']
 296         form.add_hidden('magictoken', magictoken)
 297         data = session.get_by_magictoken(magictoken, {})
 298 
 299         if page == self.pages[0] and get_request().form.has_key('cancelurl'):
 300             cancelurl = get_request().form['cancelurl']
 301             session.add_magictoken(magictoken, {'__cancelurl': cancelurl})

On perde le magictoken alloué au moment de la génération du code de suivi.

#3

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • Assigné à mis à Benjamin Dauvergne
#4

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

#5

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

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

Sans le (fixes) dans l'intitulé du commit.

#6

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 97c064642eb26edb964c56aa22d192ac7c5fbb3e
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Wed Feb 27 00:39:48 2019 +0100

    forms: do not overwrite magic formdata with cancelurl (fixes #28411)
#7

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • % réalisé changé de 0 à 100
#8

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

Sans le (fixes) dans l'intitulé du commit.

Et malgré tout ça a été poussé avec.

#9

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

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

Formats disponibles : Atom PDF