sigrennesmetropole / geor_tabou2_front

Code du front de l'application tabou2 pour georchestra
Other
1 stars 2 forks source link

VA - Fiche OA & PA - Afficher les documents - Tri et filtre partiellement KO #226

Closed dcottenc closed 2 years ago

dcottenc commented 2 years ago

Description

On constate les anomalies suivantes sur les tris et filtres :

Etapes pour reproduire le bug

  1. Ouvrir le plugin Tabou
  2. Cliquer sur une entité OA ou PA (avec plus de 5 documents)
  3. Cas 1 : Utiliser les filtres et les tris et voir qu'ils ne s'appliquent que sur les documents de la page en cours
  4. Cas 2 : Saisir une date dans le filtre et voir qu'à partir du premier / il n'y a plus de résultat

Média / captures d'écran

Cas 1 :

avec la page 1 et 2 suivante image

image

Le filtre Plan de masse devrait retourner deux documents (ici un seul) image

Pareil pour le tri (on a un seul plan de masse au lieu de 2) image

Cas 2 : Le filtre '05/' ne retourne aucun resultat alors qu'il existe des documents à cette date image

Environnement

Portail Test RM (VA)

Gaetanbrl commented 2 years ago

si la liste est paginée alors les tri et filtres s'appliquent uniquement sur la page en cours plutôt que sur la totalité des documents.

Je ne comprend pas ce retour. Ce comportement a été annoncé, validé, remonté après en issue et re validé encore. C'est d'ailleurs pour ca qu'on a un filtre recherche par nom (voir issue précédente et commentaires) :

https://github.com/sigrennesmetropole/geor_tabou2_front/issues/191#issuecomment-1141246570

Gaetanbrl commented 2 years ago

Le filtre '05/' ne retourne aucun resultat alors qu'il existe des documents à cette date

Je ne reproduis pas si j'enlève le '05/' qui ne sert pas plus que '05'. Le composant semble ne pas accepter ce caractère '/'. Je regarde ce point.

Voir la capture ci-dessous :

filtre_226

Gaetanbrl commented 2 years ago

Je voudrais faire un rappel sur ce composant et les différences avec le tableau d'attributs MapStore2 (qu'il a été demandé de réutiliser) :

  1. La source

On utilise l'API pour récupérer les documents. Le problème étant qu'on doit utiliser la pagination car l'API est limitée dans le nombre de réponses (voir les issues liées avec les filtres de recherche). La différence avec MapStore2, c'est que la table des attributs MapStore2 utilise un flux WFS sans limite (le scroll charge les éléments supplémentaires). Donc une API sans contraintes.

  1. Le filtre

Du faite de l'API, on pagine, et donc le composant avec ces filtres pour chaque champs va uniquement chercher dans tous les résultats chargés dans le tableau, donc uniquement ceux de la pagination. A la base ce fonctionnement est bon, car il est prévu pour fonctionner avec un nombre de résultats sans limite (la limite ==> L'api).

Pour rappel, la pagination est un élément fonctionnel demandé dans les specs. :

Une pagination doit permettre de charger un nombre limité de documents Les documents doivent pouvoir être filtrés dans la liste affichée Les documents doivent pouvoir être tous filtrés selon une recherche sur le champ Nom en plus du filtre par champ Les métadonnées doivent être consultables au clic sur un document dans une interface indépendance

Evolutions possibles

On dégage ainsi la pagination et on va tenter de faire un comportement proche du tableau des attributs par défaut.

Lorsqu'on applique une recherche, la pagination n'a plus d'effet. La page 1 est alors affichée (seule page disponible) et tous les résultats sont dans le tableau.

Meilleure solution pour l'aspects fonctionnel.

dcottenc commented 2 years ago

@Gaetanbrl L'objectif est que les utilisateurs ne soient pas perdus et pour cela le fonctionnement des tableaux doit être homogène. Encore une fois, je n'ai pas souvenir d'avoir évoqué un tri/filtre uniquement sur la page en cours et encore moins pour la case Rechercher Nom Je te propose que j'évoque tes solutions demain avec la MOA et je te fais un retour.

Gaetanbrl commented 2 years ago

Je te propose que j'évoque tes solutions demain avec la MOA et je te fais un retour.

Je viens de mettre à jour mes propositions mais les specs actuelles sont à l'origine du comportement actuel, c'est à dire choix du tableau MapStore2 + pagination

Donc je vous laisse revenir vers moi avec un choix ou d'autres solutions.

Gaetanbrl commented 2 years ago

Encore une fois, je n'ai pas souvenir d'avoir évoqué un tri/filtre uniquement sur la page en cours et encore moins pour la case Rechercher Nom

Pas de soucis, comme déjà dit je peux supprimer ce champ selon les besoins.

Sinon après échange avec Pierre, la solution D est la plus pertinente dans ce que je propose @dcottenc

dcottenc commented 2 years ago

@Gaetanbrl Peux-tu m'indiquer si c'est le composant qui gère la pagination (il charge tous les résultats et gère les pages ) ou si c'est toi qui appelle l'API quand on clique sur une autre page (pour avoir les résultats pour une page) ?

Gaetanbrl commented 2 years ago

Peux-tu m'indiquer si c'est le composant qui gère la pagination

Le composant React-data-grid est seulement un tableau qui prend des données et les affiche sans distinction (sauf spécificités). https://adazzle.github.io/react-data-grid/#/common-features

La pagination est gérée par le front + paramètres de l'API pour le contenu par page :

https://github.com/sigrennesmetropole/geor_tabou2_front/blob/a56f6a4b8dc848b2a953a208611f8bae49a87f51/js/extension/api/requests.js#L298-L303

Le nombre de page est défini selon le nombre de résultats / le nombre à afficher par page (ex: 5). Par défaut, la page 1 s'affiche en utilisant le composant pagination front. Les changements de page également pour afficher les documents d'une page ou d'une autre.

Le contenu par page est alors chargé via l'API pour avoir les documents selon les paramètres start et resultNumber

Les filtres de recherche sont en l'état, gérés par le composant sans aucun appel web service.

Gaetanbrl commented 2 years ago

@dcottenc Remplacement en fin de réalisation pour avoir un composant similaire au tableau des attributs MS2 qui permet de :

RAF:

Gaetanbrl commented 2 years ago

@dcottenc d'après les cas de test de cette issue :

Ouvrir le plugin Tabou

  1. Cliquer sur une entité OA ou PA (avec plus de 5 documents)

Refresh des autres documents au scroll si le nombre d'éléments dans le tableau est inférieur au résultat total. Dans la configuration du plugin, il est conseillé d'avoir une une valeur < = à 10.

  1. Cas 1 : Utiliser les filtres et les tris et voir qu'ils ne s'appliquent que sur les documents de la page en cours

Ce n'est normalement plus le cas.

Testé avec ces étapes :

 - Limiter le paramètre "documents" à 2
 - Charger le contexte Tabou
 - Afficher les documents de l'opération 100 Baud Chardonnet
 - Voir qu'il n'y a pas de documents avec le type "Schéma directeu"
 - Saisir dans le filtre du champ "Type" les caractère "Sche"
 - Voir qu'un document non présent dans le tableau s'affiche

Résultat OK image

  1. Cas 2 : Saisir une date dans le filtre et voir qu'à partir du premier / il n'y a plus de résultat

Nativement, le composant GRID ne semble pas accepter ce caractère. Cependant, les filtres sur les champs Type, Nom et Type Mime utilisent l'API pour recharger le tableau lors de la saisie d'un filtre. Il conviendra d'utiliser ce même fonctionnement pour la recherche par Date, et donc d'avoir un web service disponible.

En attendant, le filtre actuel fonctionne uniquement sur les données chargées dans le tableau et ne pourra fonctionner avec le caractère "/".

Gaetanbrl commented 2 years ago

@dcottenc En attente de test et retour.

dcottenc commented 2 years ago

Testé et validé en PF de test Remarque : est-il possible d'avoir un ascenseur à droite qui permet d'identifier que la liste de documents est plus longue que celle affichée ?

Le filtre Date pour l'API sera ajouté dans le cadre d'une évolution

Gaetanbrl commented 2 years ago

est-il possible d'avoir un ascenseur à droite qui permet d'identifier que la liste de documents est plus longue que celle affichée ?

Probablement. A tester.

dcottenc commented 2 years ago

L'ascenseur (à privilégier) ou une pagination est à afficher car on ne peut pas voir tous les documents de la liste à partir d'un certain nombre

Gaetanbrl commented 2 years ago

L'ascenseur (à privilégier) ou une pagination est à afficher car on ne peut pas voir tous les documents de la liste à partir d'un certain nombre

A placer dans une autre issue

Gaetanbrl commented 2 years ago

Je ferme, le scroll a été passé sur une autre issue.