A propos des parents

J’ai beaucoup utilisé les fonctions permettant quel est le parent d’un objet puisque j’ai besoin d’avoir des comportements différents en fonction de ceux ci j’ai pu rencontré quelques difficultés parfois contournable…
J’ai donc rassembler 3 difficultés qui me semble liés aux parents.

1ère Partie : isCreateEnable()
La surcharge de la fonction isCreateEnable() ne semble pas fonctionner de la même manière en Desktop et en Responsive.

J’ai un objet A, lié par Foreign Key à des objets B et C.
Je souhaite ne pas pouvoir créer d’objet A depuis la liste « complète » (accès à l’objet/liste depuis le menu) mais je souhaite pouvoir en créer depuis l’onglet affiché sur les objets B et C.
J’ai donc surchargé la fonction isCreateEnable () en indiquant que si l’Objet n’a pas d’objet parent, on ne peut pas en créer.
Si je vais directement sur la liste complète des objets A, le bouton n’apparait pas (cela correspond au besoin).
Si je créé un objet depuis l’onglet d’un objet lié (B ou C), puis je retourne sur la liste complète depuis le menu, le bouton apparait (alors que mon besoin est de ne jamais l’afficher).
Cependant en Desktop, je n’ai pas ce souci

J’ai contourné cela en utilisant la fonction isPanelnstance et je vérifie si je suis en mode création (row_id = 0) pour ne pas bloquer la création. Est-ce normal que le isCreateEnable() soit appelé après le initCreate() ?

2ème Partie : Le menu garde le chemin ?
J’ai un objet Notes et d’autres objets auxquelles il est lié par des foreign key. Je filtre les colonnes visibles en liste en fonction du parent. Lorsque je choisis de voir toutes mes notes depuis le menu, les colonnes s’affichent en fonction du dernier parent où j’ai créé une note.
J’ai dû contourner en utilisant la fonction isPanelnstance().

3ème Partie : Virtual Link
Dans le même style, mon objet note est lié à un objet Entreprise par deux foreign key : une virtuelle et une physique pour pouvoir filtrer de manière différente dans deux onglets différents.
Lorsque je crée une note depuis l’onglet associée au lien virtuel il met à jour le DefaultSearchSpec selon le filtre mis dans le lien virtuel.
Ensuite je ferme le formulaire de creation de note sans sauvegarder.
Puis je vais voir la liste de mes notes depuis le menu, le DefaultSearchSpec ne semble pas être réinitialisé puisque je ne vois que les notes qui sont attachées à l’entreprise sur laquelle j’ai créé une note.

Il n’y a pas de contournement, c’est bien en testant le type d’instance (Panel ou pas) qu’on modifie l’objet ad-hoc en fonction des regles. Le parent object n’a rien à voir avec ça, il est valorisé uniquement sur une liste liée (pas sur un popup instance Ref ou DataMap).

  • Le menu utilise toujours l’instance Main
  • Une liste liée toujours l’instance Panel
  • Un formulaire de mise à jour (create / update) utilise l’instance Main

La legacy faisait des choses en double, et la responsive n’a pas nécessairement la même logique d’appel suivant la navigation. C’est plus un bug legacy qui fait le boulot 2 fois qu’un mauvais comportement Responsive.