Projet

Général

Profil

Bug #68173

accès aux données de la demande depuis gabarit de widget wcs

Ajouté par Frédéric Péters il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
16 août 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

On n'a désormais plus de génération statique des variables pour le rendu des widgets (#42676) et de là, un form_var_carte_lat qui retournait auparavant une latitude ne retourné désormais plus rien. (par exemple).

Deux possibilités, 1/ y accéder via global_context, ex: global_context.form_var_carte_lat, 2/ y accéder en notation pointée, form.var.carte.lat.

De ce qui existe actuellement dans publik-base-theme l'option penche plutôt pour le global_context, ex:

templates/variants/metz-metropole-2019/wcs/base.html:      {% if global_context.form_option_service_propose_par %}
templates/variants/metz-metropole-2019/wcs/base.html:        <span class="commune">{{ global_context.form_option_service_propose_par }}</span>

Fichiers

Révisions associées

Révision 2b04722c (diff)
Ajouté par Frédéric Péters il y a plus d'un an

templates: use global_context to get to form options & variables (#68173)

Historique

#1

Mis à jour par Frédéric Péters il y a plus d'un an

Principalement ça casse les "signalements à proximité", ce qui me donnerait envie de passer ça en hotfix.

#2

Mis à jour par Thomas Noël il y a plus d'un an

J'avoue que c'est mystérieux pour moi, d'un côté on a #42676 qui fait :

-        context = get_publisher().substitutions.get_context_variables()
+        context = get_publisher().substitutions.get_context_variables(mode='lazy')

et puisque ça semble faire disparaître des variables, on préfère passer par "global_context" qui est le résultat de (extrait de wcs/context_processors.py) :

         ...
         return pub.substitutions.get_context_variables(mode='lazy')

Autrement dit exactement la même chose...?

(C'est tellement gros que je dois rater quelque chose d'évident)

#3

Mis à jour par Frédéric Péters il y a plus d'un an

-        context = get_publisher().substitutions.get_context_variables()
+        context = get_publisher().substitutions.get_context_variables(mode='lazy')

pour ne plus générer tout.

         ...
         return pub.substitutions.get_context_variables(mode='lazy')

Autrement dit exactement la même chose...?

En effet, d'un côté comme de l'autre on ne génère pas l'ensemble des variables.

La différence c'est que derrière global_context on a notre CompatibilityNamesDict qui assure les formes avec les underscores alors que de l'autre ça se trouve à un moment passé comme un simple dictionnaire (je peux chercher pour pointer l'endroit où ça arrive mais ça me va bien d'éviter ça), ce qui imposerait l'usage de la notation pointée, form.var.carte.lat.

#4

Mis à jour par Frédéric Péters il y a plus d'un an

C'est en fait un bug que j'aurais bien aimé voir corrigé pour cette release. (je parlais même d'hotfix mais oublions)

#5

Mis à jour par Corentin Séchet il y a plus d'un an

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

Mis à jour par Frédéric Péters il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit 2b04722c1896452972c91a99344a92a76de45006
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Aug 16 10:25:25 2022 +0200

    templates: use global_context to get to form options & variables (#68173)
#7

Mis à jour par Transition automatique il y a plus d'un an

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

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF