Project

General

Profile

Development #30536

form_tracking_code en mode lazy lors de la saise d'une demande

Added by Frédéric Péters 7 months ago. Updated 7 months ago.

Status:
Solution déployée
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
11 Feb 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

get_static_substitution_variables fait :

        if self.tracking_code:
            d['form_tracking_code'] = self.tracking_code
        elif not self.status and self.data and 'future_tracking_code' in self.data:
            d['form_tracking_code'] = self.data['future_tracking_code']

mais en lazy on ne gère la situation de la seconde partie.

0001-formdata-handle-form_tracking_code-of-unsaved-data-i.patch View (2.04 KB) Frédéric Péters, 11 Feb 2019 05:07 PM

0001-formdata-handle-form_tracking_code-of-unsaved-data-i.patch View (3.28 KB) Frédéric Péters, 11 Feb 2019 10:16 PM

Associated revisions

Revision 4c256880 (diff)
Added by Frédéric Péters 7 months ago

formdata: handle form_tracking_code of unsaved data in lazy mode (#30536)

Revision 072dc100 (diff)
Added by Frédéric Péters 7 months ago

formdata: revert extended support for form_tracking_code in static mode (#30536)

History

#1 Updated by Frédéric Péters 7 months ago

#2 Updated by Thomas Noël 7 months ago

  • Status changed from Solution proposée to Solution validée

#3 Updated by Frédéric Péters 7 months ago

Il y a en fait une situation supplémentaire, gérée uniquement dans l'affichage de la zone du code de suivi,

            draft_formdata_id = data.get('draft_formdata_id')
            if draft_formdata_id:
                formdata = self.formdef.data_class().get(draft_formdata_id)
                tracking_code = formdata.tracking_code
            else:
                tracking_code = data.get('future_tracking_code')

Le patch attaché gère ça, y compris désormais dans le get_static_substitution_variables() mais à vrai dire j'éviterais bien cette partie du patch, pour éviter d'introduire un accès db supplémentaire là, pour une variable dont on a visiblement jamais eu besoin.

(elle apparait dans une utilisation chez moi où j'ai un template django contenant un appel à un objet webservice, contenant lui-même en paramètre un {{form_tracking_code}}).

Bref, patch proposé, et si ça va, j'en retire la partie touchant wcs/formdata.py.

#4 Updated by Thomas Noël 7 months ago

Si j'ai bien suivi, la partie wcs/formdata.py c'est au cas où on voudrait jouer avec form_tracking_code dans une condition ou une expression, dans le formulaire, ie sur un brouillon ?

#5 Updated by Frédéric Péters 7 months ago

Si j'ai bien suivi, la partie wcs/formdata.py c'est au cas où on voudrait jouer avec form_tracking_code dans une condition ou une expression, dans le formulaire, ie sur un brouillon ?

Je ne sais à vrai dire pas très bien quand on tombe pile sur ce moment. (à suivre le moment où je le produis, ça arriverait sur un template de widget modifié, qui appelle un webservice, qui ferait [form_tracking_code]).

#6 Updated by Thomas Noël 7 months ago

Ok, donc oui pour ne rien poser dans formdata.py, ça me parait vraiment un cas de mauvais usage qu'on n'a pas envie de faire fonctionner, non ? (Je demande cette précision pour comprendre, parce que tu dis l'utiliser... je suis un peu perdu)

#7 Updated by Frédéric Péters 7 months ago

Ok, donc oui pour ne rien poser dans formdata.py, ça me parait vraiment un cas de mauvais usage qu'on n'a pas envie de faire fonctionner, non ? (Je demande cette précision pour comprendre, parce que tu dis l'utiliser... je suis un peu perdu)

J'utilise la syntaxe django, et donc sans le patch à formdata.py ça marche.

#8 Updated by Thomas Noël 7 months ago

  • Status changed from Solution proposée to Solution validée

J'ai donc enfin tout compris et ack, sans la modif au formdata.py parce qu'il faut passer le plus possible en Django, oui.

#9 Updated by Frédéric Péters 7 months ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 9520fa5d0291f362af33bf98b71537ff848f45e6
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sun Feb 10 12:50:43 2019 +0100

    backoffice: remove doubled parenthesis around "deleted" on inspect page (#30505)

#10 Updated by Frédéric Péters 7 months ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF