PnX-SI / Nomenclature-api-module

Flask module for Nomenclature API
GNU General Public License v3.0
3 stars 10 forks source link

Ordonner les nomenclatures #73

Open gildeluermoz opened 3 months ago

gildeluermoz commented 3 months ago

Est-il possible d'ordonner les nomenclatures ? Est-ce pertinent de mettre une telle fonctionnalité du coté de l'API ou est-ce forcément coté client qu'il faut le faire ? Actuellement, sauf erreur de ma part, dans le module monitoring, lorsque l'on appelle des nomenclatures pour peupler une liste déroulante, on ne peut pas ordonner les items (par ordre alphabétique des labels par exemple)

TheoLechemia commented 3 months ago

Oui plutot à faire côté backend

camillemonchicourt commented 3 months ago

Après ça interroge si un ordre autre qu'alphabétique est pertinent pour les utilisateurs qui font la saisie. Je suis pas convaincu car quand on a une liste déroulante, le plus logique pour s'y retrouver et se repérer est l'ordre alphabétique. Si on a un ordre, il est logique pour celui qui l'a défini, mais pas forcément pour les autres utilisateurs qui font la saisie...

Dans tous les cas, pourquoi pas ajouter une colonne numérique ordre non obligatoire, dans la table des nomenclatures et pouvoir indiquer à l'API si on veut trier les résultats par ordre alphabétique ou par ordre.

gildeluermoz commented 3 months ago

@TheoLechemia Tu penses que même si la réponse de l'api est ordonnée, le client ne modifie pas parfois cet ordre ? @camillemonchicourt Oui l'ordre alphabétique est le plus souvent pertinent mais il y a des cas où ça ne fonctionne pas. Par exemple pour ordonner des classes de température : de 5 à 10 ; de 10 à 15 ; de 15 à 20... sur ces 3 ex d'item, le de 5 à 10 va être en dernier. Si la route de l'api disposait d'un param order_field, ça permettrait de passer le champ souhaité , y compris dans les fichiers json de monitoring : label_fr, cd_nommenclature, id_nomenclature, etc...) C'est une bonne idée de proposer un champ ordre, c'est la solution ultime et qui fonctionne dans toutes les situations. Et si ce n'est pas rempli, un autre champ est utilisé par défaut.