Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correction du nom_complet dans la vue utilisateurs.v_userslist_forall_menu ? #2832

Open
JulienCorny opened this issue Dec 18, 2023 · 1 comment
Labels

Comments

@JulienCorny
Copy link

[testé avec GeoNature 2.12 mais doit être présent dans 2.13 car le code n'a pas changé]

Description

La vue utilisateurs.v_userslit_forall_menu permet d'avoir une colonne nom_complet qui concatène le nom_role et le prenom_role de la table utilisateurs.t_roles.

Mais lorsqu'un nom_role ou prenom_role est nul dans utilisateurs.t_roles, la valeur dans la colonne nom_complet de v_userslist_forall_menu est nulle.

Et ça provoque des soucis en front dans les filtres des menus déroulants liées aux listes utilisateurs.

Par exemple, lorsque des utilisateurs dans t_roles ont un prenom_role = NULL, dans le module monitoring, pour les champs de type widget avec un appel api users/menu/ID_LIST_OBSERVER, le filtre n'affiche rien même quand on tape les lettres d'un nom d'utilisateur qui est bien présent dans la liste du menu déroulant

Comportement attendu
La valeur de la colonne nom_complet de utilisateurs.v_userslit_forall_menu doit être non nulle meme lorsqu'un des éléments concaténés est nul.

Comment reproduire

  • dans utilisateurs.t_roles : update une valeur nulle pour prenom_role dans utilisateurs.t_roles pour un des utilisateurs
  • dans le module monitoring, aller dans un champ de type datalist user, essayer de filtrer sur le nom d'un utilisateur de la liste (le filtre n'affiche rien même quand cet utilisateur est dans la liste du menu déroulant)

Solution proposée
dans la vue utilisateurs.v_userslist_forall_menu,
remplacer la ligne : (upper(a.nom_role::text) || ' '::text) || a.prenom_role::text AS nom_complet,
par : concat(upper(a.nom_role::text),' ',a.prenom_role::text) AS nom_complet,

Par exemple si nom_role = 'DUPONT' et prenom_role = NULL, on obtiendrait 'DUPONT' dans nom_complet et pas NULL.

Qu'est ce que vous en pensez ? Est-ce que je fais une PR dans GeoNature avec une migration alembic qui corrige la vue ?
ou est-ce qu'il est préférable de corriger plutôt le filtre (qui utilise la fonction getFilteredValues() de pnx-datalist)

@camillemonchicourt
Copy link
Member

Sujet lié à UsersHub, similaire à PnX-SI/UsersHub#97 il me semble.
Migration à faire dans https://github.com/PnX-SI/UsersHub-authentification-module/tree/master/src/pypnusershub/migrations/versions, pas GeoNature qui ne gère pas le schéma utilisateurs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants