Hook initRefSelect pas exécuté dans le cas d'une relation n-n présentée en PillBox

4.0
Hook initRefSelect pas exécuté dans le cas d'une relation n-n présentée en PillBox
0
Tags: #<Tag:0x00007f5feebf8768>
(Bruno Montagnac) #1

Bonsoir,

Suspicion de bug détecté en P22 et toujours présent en P23b : le hook initRefSelect n’est pas exécuté dans le cas d’une relation n-n présentée en PillBox… lorsque l’édition est faite depuis une vue liste ou formulaire (via panel ou accès direct par menu), l’initRefSelect est bien exécuté.

Simplicité version4.0 patch level P23b (database patch level P22)Built on2019-04-26 11:48 (revision c29c7d6d3e7220b5384075962b6049a664c9d6d5) for tomcat 8EncodingUTF-8 (system encoding UTF-8)

(François Genestin) #2

Soit A un objet qui référence l’objet B (ex un produit référence un fournisseur).
A ==> B
L’initRefSelect est appelé lors de la sélection de B avec A comme objet parent.

Dans le cas d’une N,N où c’est l’objet de relation qui pointe sur 2 objets A et B :
A <=== L(n,n) ===> B

L’initRefSelect sera donc appelé si on cherche A ou B depuis l’objet L comme objet parent.
mais pas si on recherche B depuis A (cas d’une pillbox).

Ce cas n’est pas géré, mais cela fait sens dans le cas d’une pillbox car on “traverse” le lien L.

Je vais voir pour changer de contexte en utilisant l’instance ref B et le grand-parent A pour que le hook soit appelé dans ce contexte, cela ne devrait à priori pas poser le problème.

Ce post passe en feature request.

1 Like
(François Genestin) #3

C’est fait en P23 et P24.
il fallait effectivement modifier le passage de contexte pour le cas pillbox :
A <=== L(n,n) ===> B

Si la relation L est affichée en pillbox dans A, alors la méthode initRefSelect sera appelée sur l’objet B avec en paramètre l’objet parent A

  • en completion (via index search sur B)
  • et via le lookup multi-sélection (via object search sur B)

A tester dans votre contexte, lorsque la version docker aura été poussée par @david

(Bruno Montagnac) #4

Merci beaucoup à tous le deux!
Je redéploie la P23b sur notre environnement de DEV dès que David me confirme que la version est en ligne sur dockerhub.

(David AZOULAY) #5

Les images Docker alpha (master P24b) et beta (prerelease P23b) ont été poussées.

(Bruno Montagnac) #6

Et c’est l’avènement de l’initRefSelect :)
je n’ai pas encore transposé mes règles de gestion dans le nouveau contexte (celui du grand-parent) mais ça me semble OK.

Merci encore pour votre efficacité!

Edit: après transposition des règles, je confirme que tout fonctionne comme attendu.