UserFilter - reset des données en back

Bonjour,

Je remonte un comportement qui me semble erroné concernant le userFilter.

Je constate que l’utilisation de la méthode “getGrant().getUserFilters().reset()” en back a pour conséquence :

  • La suppression de la ligne en BDD par l’id du userFilter associé à l’utilisateur courant
  • La création d’une nouvelle ligne en BDD avec des valeurs nulles (hors id de l’utilisateur qui est bien présent).

Cela a pour conséquence de créer un décalage entre les informations en BDD et celles du front. En effet, l’utilisateur possède toujours l’id du userFilter qui a été supprimé de la base.

Il n’est donc plus possible de modifier le userFilter via le userFilterId en l’AJAX (il reste cependant possible de faire une recherche AJAX par l’id de l’utilisateur.

Pouvez-vous nous confirmer qu’il s’agit d’une anomalie ?
Jean-Baptiste

Bonjour,

La méthode reset est bien là pour faire un reset en mémoire, ça passe par une suppression puis une recréation du UserFilter.
on peut effectivement optimiser pour éviter d’en recréer un nouveau.
Je vais pousser l’évolution sur la pre-release.

J’ai poussé la version pre-release light sur docker.
La méthode reset ne fait plus un annule et remplace, mais juste à upadate à null des filtres.

A voir si cela répond à votre besoin, sinon il faudra voir comment vous synchronisez le front.

Bonjour François,

Khalil a fait la mise à jour de l’instance Simplicité pour récupérer le nouveau fonctionnement de la methode reset.
Je constate que la signature de méthode a changé avec l’ajout d’un boolean en paramètre.
Cependant, lors de l’appel de cette méthode, plus aucune action n’est réalisée au niveau de la BDD.
Pouvez-vous vérifier ce point chez vous et nous faire un retour?

Merci d’avance
Jean-Baptiste

Effectivement c’est une coquille de copier/coller.

Ce paramètre reuse ne sert à rien, j’avais exploré la piste de pouvoir ré-utiliser ou pas le record existant. Mais au final ça ne sert à rien, car “reuse = true” tout le temps.

Je vais le retirer et re livrer. sur docker tout de suite

Bonjour,

Nous avons toujours des soucis sur la méthode reset(). L’appel de la méthode en back ne fait plus rien (aucune modification en BDD).
Pouvez-vous nous confirmer :

  • la méthode avec paramètre reuse n’est plus exposée;
  • la méthode s’utilise de la manière suivante : getGrant().getUserFilters().reset();
  • le comportement attendu est une mise à ‘null’ des valeurs en base (comme un ‘effacer’ / ‘appliquer’ au niveau du formulaire UF);

Si cela est bon, pouvez-vous nous indiquer si David a bien poussé les modifications chez nous ?

Merci d’avance pour vos réponses.
Jean-Baptiste

Non ça devrait bien faire le job,
il doit y avoir un autre problème suite au report en pre-release fait un peu rapidement.
je vais refaire des tests et relivrer.

C’est bien la bonne méthode.
L’update était effectivement partiel, j’ai revu l’algo pour vider toutes les colonnes hormis le user Id.

L’image docker est à jour.

Merci François.
On regardera ça lundi avec Khalil et on te fera un retour.