Masquer le bouton de création en liste dynamiquement

Bonjour,

J’ai un BO Examen lié à un autre BO Inscription.

Les 2 apparaissent dans le menu.
Dans le formulaire des Examen on peut voir la liste des Inscriptions liées.
Il y a dans ce formulaire un bouton “associer Jeune” qui permet de créer des Inscription en sélectionnant des Jeunes et le bouton de création est masqué.

Dans l’affichage en liste des Inscriptions depuis le menu, par contre, on affiche le bouton de création.

Et c’est là que je suis bloqué :

Pour ne pas afficher le bouton de création dans la liste fille des inscriptions j’ai implémenté ce hook dans le code des Inscriptions.

    @Override
    public boolean isCreateEnable() {
    	
        ObjectDB parentObject = getParentObject();
        return parentObject == null;
    }

Le problème c’est que a cause de ce hook, le bouton “associer jeune” dans le formulaire des examen ne fonctionne plus ( il est présent mais au click, il ne se passe rien ).

Comment faire pour ne pas afficher le bouton de création tout en ayant un bouton "associer jeune " qui fonctionne ?

Merci par avance.

Bonjour,

Si c’est purement de l’affichage (et pas des droits de création via fonction), la présence des boutons de créations possibles se pilote ici dans la définition de l’objet :

image

Décochez créer par formulaire et le bouton “Créer” associé disparaitra.

On peut aussi accéder à ce flag par code.

setListAccessNewForm(false);

Je me suis peut-être mal exprimé, mon besoin est plus complexe que simplement faire disparaitre le bouton “Créer”.

Dans l’affichage en liste des inscriptions depuis le menu le bouton doit apparaitre.

Dans l’affichage en liste des inscriptions depuis le formulaire des examens le bouton ne doit pas apparaitre.

Si j’utilise le code posté plus haut, le bouton n’apparait pas depuis le formulaire des inscription mais ne bouton associé ne fait plus rien.

En utilisant la configuration, le bouton “créer” disparait dans les 2 cas.

Avez vous essayé de mettre ce code dans le hook initList en testant que vous êtes sur l’instance désirée ?

  • isPanelInstance() = une liste fille
  • ou isMainInstance() = la liste principale du menu

Du genre

setListAccessNewForm(isMainInstance());

Impeccable, c’est ce qu’il me fallait.
Merci pour votre aide.