Pillbox : Problème de persistence des pillbox (suite)

Problem description

Bonjour,

L’anomalie remontée dans le post Problème de persistence des pillbox est toujours présente en 5.2.36.

Steps to reproduce

  1. J’ai installé le module de Démo.
  2. J’ai ajouté une relation n-n entre DemoClient et DemoSupplier (table d’association DemoCliSup) :

  1. Au niveau de la relation d’objet demoClisupSupId dans DemoSupplier j’ai sélectionné la présentation pillbox :

  1. J’ouvre le formulaire de création d’un fournisseur, au niveau de la vue pillbox je clique sur la loupe :

  1. Je sélectionne la première ligne et je clique sur “Sélectionner” :

  1. J’ai bien une pillbox avec le client sélectionné. Je clique sur la croix au niveau de la pillbox pour supprimer mon client :

  1. Ma pillbox n’est plus là (OK) :

  1. Au niveau de la vue pillbox je clique sur la loupe pour resélectionner le même client :

  1. La pillbox pour le client sélectionné n’est pas là (KO) :

Remarque : si j’enregistre, la pillbox apparait bien.

  1. Je clique sur “Fermer” pour abandonner la création du fournisseur :

  1. J’ouvre à nouveau le formulaire de création d’un fournisseur. La pillbox que j’ai supprimé est présente dès l’ouverture du formulaire (KO) :

  1. Je clique sur la loupe pour sélectionner 2 clients :

  1. J’ai 2 pillbox (OK) :

  1. Je supprime les pillbox et je clique sur “Fermer” pour abandonner la création du fournisseur :

  1. J’ouvre à nouveau le formulaire de création d’un fournisseur. Je n’ai pas de pillbox (OK) :

  1. Je clique sur la loupe pour sélectionner 2 clients. J’ai 2 pillbox (OK) :

  1. Je clique sur “Fermer” pour abandonner la création et je rouvre le formulaire de création d’un fournisseur. Les 2 pillbox sont toujours là (je ne sais pas si ce comportement est normal, je n’ai pas supprimé les pillbox dans le précédent formulaire de création mais en abandonnant la création je ne m’attendais pas à les retrouver si je rouvre le formulaire :thinking:) :

Technical information

Instance /health

[Platform]
Status=OK
Version=5.2.36
BuiltOn=2023-04-05 18:35
Git=5.2/966009edb80e3e6fad18685d6ef8131b63725d28
Encoding=UTF-8
EndpointIP=
EndpointURL=
TimeZone=Europe/Paris
SystemDate=2023-04-11 09:13:29

[Application]
ApplicationVersion=1.0.0
ContextPath=
ContextURL=
ActiveSessions=1
TotalUsers=9
EnabledUsers=7
LastLoginDate=2023-04-11 08:53:56

[Server]
ServerInfo=Apache Tomcat/9.0.73
ServerType=WEB
ServerActiveSessions=1
ServerSessionTimeout=30

[OS]
Name=Linux
Architecture=amd64
Version=3.10.0-1160.81.1.el7.x86_64
SystemEncoding=UTF-8

[Disk]
DiskFree=30672
DiskUsable=26515
DiskTotal=100701

[JavaVM]
Version=17.0.1
Vendor=Eclipse Adoptium
VMName=OpenJDK 64-Bit Server VM
VMVersion=17.0.1+12
ScriptEngine=rhino
ScriptEngineVersion=Rhino 1.7.13 2020 09 02
HeapFree=198806
HeapSize=339968
HeapMaxSize=524288
TotalFreeSize=383126

[Cache]
ObjectCache=274
ObjectCacheMax=10000
ObjectCacheRatio=2
ProcessCache=21
ProcessCacheMax=10000
ProcessCacheRatio=0
APIGrantCache=0
APIGrantCacheMax=1000
APIGrantRatio=0

[Database]
Vendor=3
ProductName=PostgreSQL
ProductVersion=11.18
DriverName=PostgreSQL JDBC Driver
DriverVersion=42.6.0
DBDate=2023-04-11 09:13:29
DBDateOffset=0
DBPatchLevel=5;P02;c49a0b5b4201087167f67be076255c60
UsingBLOBs=true

[Healthcheck]
Date=2023-04-11 09:13:29
ElapsedTime=320

Bonjour,

Merci pour ton retour détaillé.
En création, il est normal que le front mémorise les relations tant que l’utilisateur n’a pas enregistré. Autant c’est simple d’empiler les liens à créer, autant c’est moins évident de savoir quand les retirer si l’utilisateur n’enregistre pas tout de suite et revient dessus après.

Etape 8 :
Là ce n’est pas normal, il doit y avoir un problème si on resélectionne la même ligne après l’avoir supprimée sans enregistrer, le front se mélange les pinceaux quelque part.

Etape 10 :
Là ça me semble normal tel que c’est conçu actuellement, on est toujours sur le record “0” non créé donc le front propose les mêmes choix que précédemment. On va revoir ça pour retirer de la mémoire les précédentes sélections si on quitte le formulaire sans enregistrer = c’est un abandon de toutes les saisies des champs donc aussi des relations.

Bref ce n’est pas la même problématique que le ticket précédent, mais il va falloir revoir la gestion de cette mémoire tampon avant création. En attendant de livrer un patch si c’est urgent, ça reste faisable par code dans le form.unload du formulaire en regardant le contenu des pillbox temporaires de l’objet :

obj.localParameter("tmppb")

Ok problème reproduit et corrigé.

ok, merci François :slight_smile:

Ca sera embarqué dans la 5.2.37 d’ici lundi