Project

General

Profile

Bug #8272

double appel au datasource utilisé dans une condition d'affichage d'une page

Added by Serghei Mihai over 7 years ago. Updated over 7 years ago.

Status:
Fermé
Priority:
Normal
Target version:
Start date:
16 September 2015
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:

Description

Un data source, ayant comme source de données [passerelle_url]csvdatasource/exceptions-castelnau/data?q=[form_var_voie], utilisée dans une condition d'affichage d'une page:

var_commune == "CASTELNAU LE LEZ" and len(data_source.exceptions_castelnau) > 0

est appelé 2 fois lors de l'affichage de la page conditionnelle:

176.31.146.86 - - [16/Sep/2015:11:01:23 +0200] "GET /csvdatasource/exceptions-castelnau/data?q= HTTP/1.1" 200 1356 "-" "Python-urllib/2.7" 
176.31.146.86 - - [16/Sep/2015:11:01:23 +0200] "GET /csvdatasource/exceptions-castelnau/data?q=CHAUSSEE+DU+PETIT+POUCET HTTP/1.1" 200 33 "-" "Python-urllib/2.7" 

et le resultat de la premiere requete semble être pris en compte dans la condition len(data_source.exceptions_castelnau)


Files

Associated revisions

Revision 893c923e (diff)
Added by Frédéric Péters over 7 years ago

fields: feed "live" formdata as variables when evaluating conditions (#8272)

History

#1

Updated by Frédéric Péters over 7 years ago

Tu peux écrire un test dans wcs produisant la situation ?

#2

Updated by Frédéric Péters over 7 years ago

  • Assignee set to Frédéric Péters

Je vais dire que ce serait passer beaucoup de temps de lire et relire un test là-dessus, et que ce n'est pas le moment.

#3

Updated by Frédéric Péters over 7 years ago

#4

Updated by Thomas Noël over 7 years ago

tu as fait sauter ça, volontairement ?

        # add them as var_xxx for compatibility
        data.update(dict_with_varnames)

#5

Updated by Frédéric Péters over 7 years ago

Yep, avant on passait par un dictionnaire séparé pour ensuite y mettre les variantes form_var_ puis l'insérer dans le dictionnaire général des variables de susbstitution. (

data = get_publisher().substitutions.get_context_variables()
dict_with_varnames = get_dict_with_varnames(formdef.fields, dict)
data.update(dict_with_varnames)
for k, v in dict_with_varnames.items(): ...

Mais maintenant on alimente les variables de substitution avec les nouvelles données (.feed() avec le dictionnaire live_data), et c'est ensuite qu'on récupère l'ensemble des variables d'une coup par le get_context_variables().

#6

Updated by Thomas Noël over 7 years ago

Pigé (désolé, j'avais lu trop vite).

Ack.

#7

Updated by Frédéric Péters over 7 years ago

  • Status changed from En cours to Résolu (à déployer)
commit 893c923ecb78c10f19c0d75bf3021493fb33ceec
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Thu Sep 17 11:11:14 2015 +0200

    fields: feed "live" formdata as variables when evaluating conditions (#8272)
#9

Updated by Thomas Noël over 7 years ago

  • Target version set to v1.14
#10

Updated by Frédéric Péters over 7 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF