Project

General

Profile

Anomalie #1383

le champ de recherche du Contributeur par nom ne trouve plus les adhérents via leur pseudo

Added by Thierry Mouchaud 2 months ago. Updated about 2 months ago.

Status:
Fermé
Priority:
Normal
Category:
Core
Target version:
Start date:
01/25/2020
Due date:
% Done:

100%

Estimated time:
Version utilisée:
Vote:

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.

Associated revisions

Revision 0c921c2d (diff)
Added by Johan Cwiklinski 2 months ago

Fix search on nickname in member dropdowns; closes #1383

Revision cc502824 (diff)
Added by Johan Cwiklinski 2 months ago

Handle empty nick, refs #1383

History

#1

Updated by Johan Cwiklinski 2 months ago

  • Category set to Core
  • Assignee set to Johan Cwiklinski
  • Target version set to 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 :
  1. récupérer, et afficher le pseudo en plus des nom prénom et identifiant ;
  2. 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).

#2

Updated by Johan Cwiklinski 2 months ago

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.

#3

Updated by Johan Cwiklinski 2 months ago

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.

#4

Updated by Johan Cwiklinski 2 months ago

  • Status changed from Nouveau to In Progress
#5

Updated by Johan Cwiklinski about 2 months ago

  • Status changed from In Progress to Résolu
  • % Done changed from 0 to 100
#6

Updated by Johan Cwiklinski about 2 months ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF