Projet

Général

Profil

Bug #8272

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

Ajouté par Serghei Mihai il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
16 septembre 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
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)


Fichiers

Révisions associées

Révision 893c923e (diff)
Ajouté par Frédéric Péters il y a plus de 8 ans

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

Historique

#1

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 ?

#2

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.

#3

Mis à jour par Frédéric Péters il y a plus de 8 ans

#4

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)

#5

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().

#6

Mis à jour par Thomas Noël il y a plus de 8 ans

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

Ack.

#7

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)
#9

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Version cible mis à v1.14
#10

Mis à jour par Frédéric Péters il y a plus de 8 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF