Bug #68173
accès aux données de la demande depuis gabarit de widget wcs
0%
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
Historique
Mis à jour par Frédéric Péters il y a plus d'un an
- Fichier 0001-templates-use-global_context-to-get-to-form-options-.patch 0001-templates-use-global_context-to-get-to-form-options-.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Principalement ça casse les "signalements à proximité", ce qui me donnerait envie de passer ça en hotfix.
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)
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.
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)
Mis à jour par Corentin Séchet il y a plus d'un an
- Statut changé de Solution proposée à Solution validée
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)
Mis à jour par Transition automatique il y a plus d'un an
- Statut changé de Résolu (à déployer) à Solution déployée
templates: use global_context to get to form options & variables (#68173)