Limitation du choix d'objets métier liés à un objet parent

Tags: #<Tag:0x00007f9e4bed83c0>

Bonjour,

Dans un formulaire de création, lors du choix d’un objet lié, quel est le meilleur moyen de limiter la liste des objets proposés tout en figeant/empêchant la recherche.?

Concrètement, je voudrait que dans la popup de liste, la recherche ne soit pas possible et que les types d’absence actif soient affichés.

J’ai essayé en établissant des contraintes sur l’objet père mais ça n’a pas l’air de fonctionner.

Merci d’avance.

Bonjour,

La recherche est toujours autorisée pour l’utilisateur habilité, par contre vous pouvez forcer des filtres techniques sur cette instance d’objet de sélection de référence (ref_ajax_<monobjet>) pour ne jamais voir certaines lignes au moyen d’une search-spec via le hook initRefSelect prévu à cet effet (appelé avant affichage de la liste) :

@Override
public void initRefSelect(ObjectDB parent) {
	if (parent!=null && "ObjTypeAbsence".equals(parent.getName()))
		setSearchSpec("t.absence_type = 'ACTIF'"); // sera ajouté au where sql
	super.initRefSelect(parent);
}

Vous pouvez aussi masquer des champs (comme la couleur de l’absence via getField(…).setVisibility… dans ce hook.

Pour ce genre de sélection simple, vous pouvez aussi autoriser un rendering de sélection en dropdown dans la définition de la foreign-key, ce qui évite d’ouvrit un popup avec filtre = à réserver à une sélection d’objets complexes / à rechercher.

image

1 Like

Merci ça répond parfaitement à mon besoin !