Anomalie #1383
ferméle champ de recherche du Contributeur par nom ne trouve plus les adhérents via leur pseudo
100%
Description
Bonjour,
sur galette 0.9.3 , lorsque je veux ajouter un don ou une cotisation,
le champ de recherche du Contributeur par nom ne trouve plus les
adhérents via leur pseudo.
Réponses de Johan :
Salut,
En fait, la recherche fonctionne... C'est encore un foutu pbm JavaScript. Ouvre un ticket stp.
Aussi, la doc à perdu cette info à la traduction, à préciser dans le ticket.
Mis à jour par Johan Cwiklinski il y a presque 5 ans
- Catégorie mis à Core
- Assigné à mis à Johan Cwiklinski
- Version cible mis à 0.9.3.1
La recherche d'adhérents depuis la liste déroulante est basée sur le filtre "Rechercher dans 'nom'". Si l'on observe le résultat de la requête ajax, on constate qu'on a bien les adhérents dont le pseudo correspond.
Lors de l'affichage initial, et à priori en fonction de la vitesse de retour des résultats, ces résultats apparaissent bien dans la liste déroulante et peuvent être sélectionnés. Le problème, c'est que dans la majorité des cas la liste va se "recharger" elle même, et relancer la recherche cette fois dans le contenu des résultats qui a été reçu ; contenu qui ne présente pas les pseudos !
Deux solutions à priori :- récupérer, et afficher le pseudo en plus des nom prénom et identifiant ;
- récupérer, et stocker le pseudo et faire en sorte que la liste utilise aussi cette valeur à la recherche.
La première solution me semble la meilleure ; mais ça viendra un peu "polluer" l'affichage (ça va se voir surtout sur les adhérents avec des nom et/ou prénom et/ou pseudo relativement conséquents).
Mis à jour par Johan Cwiklinski il y a presque 5 ans
Malheureusement... Ce n'est pas si simple :/
J'ai essayé la modification suivante :
diff --git a/galette/includes/routes/ajax.routes.php b/galette/includes/routes/ajax.routes.php
index 59a9a912..238d6e53 100644
--- a/galette/includes/routes/ajax.routes.php
+++ b/galette/includes/routes/ajax.routes.php
@@ -294,7 +294,8 @@ $app->group('/ajax', function () use ($authenticate) {
$required_fields = array(
'id_adh',
'nom_adh',
- 'prenom_adh'
+ 'prenom_adh',
+ 'pseudo_adh'
);
$list_members = $m->getList(false, $required_fields);
@@ -304,7 +305,7 @@ $app->group('/ajax', function () use ($authenticate) {
$pk = Adherent::PK;
$sname = mb_strtoupper($member->nom_adh, 'UTF-8') .
' ' . ucwords(mb_strtolower($member->prenom_adh, 'UTF-8')) .
- ' (' . $member->id_adh . ')';
+ ' (' . $member->pseudo_adh . ', ' . $member->id_adh . ')';
$members[] = [
'value' => $member->$pk,
'text' => $sname
Ce changement n'impacte que les résultats de recherche, pas l'affichage initial (ce qui pose un souci, certains plugins doivent être modifiés à cause de ça, mais soit).
Le problème est pire que je ne le pensais... Dans ma base, j'ai deux pseudos qui correspondent à une recherche sur le temre "yl": yleconte et sylvie84. Avec la version courante de Galette, je n'ai aucun résultat. Avec le correctif proposé ci-dessus, j'en ai un seul (sylvie84)...
J'ai beau retourner le problème dans tous les sens, je ne parviens pas à comprendre ce qui cloche :(
Je pourrai aussi essayer de modifier localement Selectize pour au moins contourner le problème ; mais je ne suis pas vraiment sûr d'y arriver.
Sachant que ce n'est pas la première fois que je rencontre des problèmes étranges avec Selectize, et que la bibliothèque n'a pas bougé depuis 2018, je crains qu'il ne faille envisager de switcher de nouveau (probablement pour select2, que je souhaitais éviter) :'(
Et là, ça demande pas mal de changements, à la fois dans Galette (bon, il faut ce qu'il faut), mais aussi dans les plugins qui utilisent la recherche des adhérents ; et pour juste ajouter la recherche dans les pseudos, ça me semble beaucoup.
Mis à jour par Johan Cwiklinski il y a presque 5 ans
Je pense avoir trouvé :
https://github.com/galette/galette/pull/44/commits/0c921c2d14b180ea2b0dfc34aa3034a699352a75
Il y avait plusieurs petits problèmes, j'ai factorisé le code pour éviter tout ça.
Mis à jour par Johan Cwiklinski il y a presque 5 ans
- Statut changé de Nouveau à In Progress
Mis à jour par Johan Cwiklinski il y a presque 5 ans
- Statut changé de In Progress à Résolu
- % réalisé changé de 0 à 100
Appliqué par commit 0c921c2d14b180ea2b0dfc34aa3034a699352a75.