Project

General

Profile

Développement #74526

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

Added by Valentin Deniaud almost 2 years ago. Updated almost 2 years ago.

Status:
Fermé
Priority:
Normal
Target version:
-
Start date:
14 February 2023
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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 ?


Files

Associated revisions

Revision 45bac77a (diff)
Added by Valentin Deniaud almost 2 years ago

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

History

#1

Updated by Valentin Deniaud almost 2 years ago

  • Description updated (diff)
#2

Updated by Frédéric Péters almost 2 years ago

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

Updated by Valentin Deniaud almost 2 years ago

  • Assignee set to Valentin Deniaud
#4

Updated by Valentin Deniaud almost 2 years ago

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

Updated by Frédéric Péters almost 2 years ago

  • Status changed from Solution proposée to Solution validée

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

#6

Updated by Valentin Deniaud almost 2 years ago

  • Status changed from Solution validée to 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

Updated by Transition automatique almost 2 years ago

  • Status changed from Résolu (à déployer) to Solution déployée
#8

Updated by Transition automatique over 1 year ago

Automatic expiration

Also available in: Atom PDF