Bug #8272
double appel au datasource utilisé dans une condition d'affichage d'une page
0%
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)
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 8 ans
Tu peux écrire un test dans wcs produisant la situation ?
Mis à jour par Frédéric Péters il y a plus de 8 ans
- Assigné à mis à 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.
Mis à jour par Frédéric Péters il y a plus de 8 ans
- Fichier 0001-fields-feed-live-formdata-as-variables-when-evaluati.patch 0001-fields-feed-live-formdata-as-variables-when-evaluati.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a plus de 8 ans
tu as fait sauter ça, volontairement ?
# add them as var_xxx for compatibility data.update(dict_with_varnames)
Mis à jour par Frédéric Péters il y a plus de 8 ans
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().
Mis à jour par Frédéric Péters il y a plus de 8 ans
- Statut changé de En cours à 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)
Mis à jour par Frédéric Péters il y a plus de 8 ans
- Statut changé de Résolu (à déployer) à Fermé
fields: feed "live" formdata as variables when evaluating conditions (#8272)