Development #58475
URL de bienvenue/première connexion : avoir un sélecteur de page
0%
Description
Plutôt qu'avoir à entrer une URL avoir un <select> listant les pages du site. + une option "autre" qui permet alors la saisie libre.
Fichiers
Révisions associées
misc: reorder migration (#58475)
Historique
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Fichier 0001-public-add-page-selector-in-site-settings-58475.patch 0001-public-add-page-selector-in-site-settings-58475.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Fichier 1636559685.png 1636559685.png ajouté
Frédéric Péters a écrit :
<select> listant les pages du site. + une option "autre" qui permet alors la saisie libre.
J'ai souvenir que c'est galère de tordre ModelChoiceField pour faire ça, si un tel truc est fait autre part je veux bien un pointeur et je ferais du copier coller avec joie (sinon je peux aussi inventer mais c'est moins garanti).
Pour l'instant j'ai opté pour remplacer le label « ------ » par cette option « autre », et du coup le code est simple. Par contre ça donne un fonctionnement un peu particulier, puisque c'est l'option sélectionnée par défaut.
(il faudra aussi penser à virer le « (chemin ou URL complète) » présent que dans les trads)
Mis à jour par Frédéric Péters il y a plus de 2 ans
et je ferais du copier coller avec joie (sinon je peux aussi inventer mais c'est moins garanti).
Je n'ai rien d'existant en tête mais il me semble que ça se gérerait assez facilement via le widget, plutôt que le field, un widget dans lequel il y aurait juste comme modif le changement du template, pour en avoir un qui serait select.html + une ligne "autre".
<select name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>{% for group_name, group_choices, group_index in widget.optgroups %}{% if group_name %} <optgroup label="{{ group_name }}">{% endif %}{% for option in group_choices %} {% include option.template_name with widget=option %}{% endfor %}{% if group_name %} </optgroup>{% endif %}{% endfor %} <!-- option supplémentaire : --> <option value="" data-other="true">{% trans "Other:" %}</option> </select>
Limite même pas besoin de classe particulière, l'attribut template_name doit pouvoir être changé dans l'init du form.
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Statut changé de Solution proposée à En cours
Mis à jour par Valentin Deniaud il y a plus de 2 ans
- Fichier 0001-public-add-page-selector-in-site-settings-58475.patch 0001-public-add-page-selector-in-site-settings-58475.patch ajouté
- Fichier 1637663418.png 1637663418.png ajouté
- Statut changé de En cours à Solution proposée
Frédéric Péters a écrit :
<option value="" data-other="true">{% trans "Other:" %}</option>
La difficulté c'est de savoir quand avoir sélectionné le choix « ---- » et le choix « Other: » vu qu'ils ont tous les deux value="". Pas le choix que de remettre une couche de javascript.
Mis à jour par Frédéric Péters il y a environ 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Valentin Deniaud il y a environ 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 850e99ac9b7543805b93cb7f088e496b51fe5224 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Tue Nov 23 11:30:50 2021 +0100 update translation commit 17400f7110c84bf3b8a4671a0587c2c04eeefd14 Author: Valentin Deniaud <vdeniaud@entrouvert.com> Date: Wed Nov 10 15:21:57 2021 +0100 public: add page selector in site settings (#58475)
Mis à jour par Frédéric Péters il y a environ 2 ans
(build cassé, je m'occupe de renommer la migration)
Mis à jour par Frédéric Péters il y a environ 2 ans
commit 287421122ff3d837046a2f179fbf32ea78c1b329 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Mon Jan 31 12:45:19 2022 +0100 misc: reorder migration (#58475)
Mis à jour par Frédéric Péters il y a environ 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
public: add page selector in site settings (#58475)