Projet

Général

Profil

Development #74526

Filtre |with_template, unicité de l'id du libellé d'un champ

Ajouté par Valentin Deniaud il y a environ un an. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
14 février 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Dans templates/gadjo/widget.html,

    <div class="title" id="{{ field.name }}">

Si on utilise ce filtre pour afficher le formulaire d'une cellule combo ça donne id="id_du_champ", et si on ajoute une cellule identique alors on a la même div avec le même id dans le formulaire de la nouvelle cellule.

Les cellules combo sont conscientes de ça et ajoutent un préfixe aux champs du formulaire. Dans le rendu django, ça utilise field.id_for_label qui donne nom_cellule-42_id_du_champ, pas de problème.

Est-ce que ça paraît OK de remplacer {{ field.name }} dans la ligne sus-citée par genre {{ field.id_for_label }}_title ?


Fichiers

Révisions associées

Révision 45bac77a (diff)
Ajouté par Valentin Deniaud il y a environ un an

templates: use field.id_for_label in field title id attribute (#74526)

Historique

#1

Mis à jour par Valentin Deniaud il y a environ un an

  • Description mis à jour (diff)
#2

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

Il y aura sans doute à vérifier css/js, que nulle part les id actuels sont référencés, et si c'est le cas les mettre à jour en même temps, mais sur le fond sûr ok pour ce changement.

#3

Mis à jour par Valentin Deniaud il y a environ un an

  • Assigné à mis à Valentin Deniaud
#4

Mis à jour par Valentin Deniaud il y a environ un an

J'ai fait ce tour :
  • Niveau CSS/JS générique (pbt) ont est quasi sûrs de ne pas avoir de problème, on parle d'un id qui est généré à partir du nom d'un champ donc le code qui pourrait le cibler est forcément à proximité d'un formulaire, dans une brique.
  • Pour afficher/masquer un champ les sélecteurs vont se baser sur la div parente et pas sur la div du titre, par ex templates/authentic2/authenticators/authenticator_add_form.html, donc normalement pas de problème.

Sauf dans un cas où le div parente n'a pas d'id... Ce qui est un bug que je traite à part dans #74541.

Et donc de ce cas découle un unique usage où du JS dépend de l'id du titre, que je corrige indépendamment de ce patch (#74539).

#5

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

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

C'est ok (tape le patch en PR si tu veux).

#6

Mis à jour par Valentin Deniaud il y a environ un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit 45bac77a2652a78df41519133287939d65eb22df
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Feb 15 12:14:21 2023 +0100

    templates: use field.id_for_label in field title id attribute (#74526)
#7

Mis à jour par Transition automatique il y a environ un an

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

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF