Contrainte sur enum multiple en fonction d'un autre attribut d'objet

Request description

Bonjour,

J’ai besoin d’aide pour connaitre la meilleur facon d’implémenter un use case spécifique dans Simplicité.

Use Case :

  1. Nous avons un objet LegalText avec plusieurs attributs, dont une enum simple LegalTextDocumentType (choix entre ‘Adaptation’ ou bien ‘Master’) une enum multiple LegalTextGeographicalZone(Pays en liste de valeur) et masterParent (qui est une clé technique étrangère pointant vers un autre ID de LegalText parent).

  1. Si notre objet est de type MASTER il peut avoir plusieurs zones géographique, sinon de type ADAPTATION, il n’aura qu’une des zones de son masterParent

Ce que nous voulons est la chose suivante :

Si un utilisateur sélectionne un parent LegalTextMASTER avec plusieurs zones géographiques (par exemple : FR-UK-ES), l’attribut LegalTextGeographicalZone pour l’ADAPTATION doit être contraint à choisir uniquement une de ces zones géographiques.

Ma question est la suivante :

Quelle est la meilleure manière de mettre en œuvre cette logique en utilisant les fonctionnalités de Simplicité, le cas échant possibilité de le faire via du code JAVA sur l’objet ou script Javascript ?

Ceci dans le but de filtrer les options de LegalTextGeographicalZone en fonction des zones géographiques du Master.parent LegalText, cela serait possible via du code JavaScript dans le formulaire de création/modification ou depuis le field_rendering de mon attribut enum multiple LegalTextGeographicalZone?

J’ai aussi pensé au FieldCompletion, dans l’approche avec la présentation en pillbox de l’attribut enuméré, j’attend d’avoir votre avis sur la meilleur approche.

Merci d’avance pour votre aide et vos conseils.

En attente d’un retour à bientot !

Steps to reproduce

This request concerns an up-to-date Simplicité instance
and these are the steps to reproduce it:

Technical information

Instance /health
[Platform]
Status=OK
Version=6.0.14
BuiltOn=2024-06-24 16:23
Git=6.0/29f59bbf1de2a4950b4a895775bf235e3f36d888
Encoding=UTF-8
EndpointIP=100.88.205.193
EndpointURL=http://lbc-77449-app-b698f8c7b-vbxlz:8080
TimeZone=Europe/Paris
SystemDate=2024-07-09 10:43:16```
Simplicité logs
---paste the content of the **relevant** server-side logs---
Browser logs
---paste content of the **relevant** browser-side logs---
Other relevant information

----E.g. type of deployment, browser vendor and version, etc.----

Bonjour,

Vous pouvez utiliser une contrainte Front et Back qui force la valeur de l’énuméré multiple lorsque LegalText = ADAPTATION et le rend non modifiable.

Bonjour, merci pour ce retour rapide,

pourriez-vous me détailler un peu plus cette approche ? Peut-on faire cette contrainte et la lié au code de l’object LegalText pour récupérer les valeurs contraignantes du parent.

La condition aussi du non modifiable n’est pas très clair pour moi, j’aimerai juste contraindre à la valeur du master.Parent :slight_smile: .

En attente d’un retour, à bientôt.

Bonjour,

Vous avez un lien réflexif sur l’objet LegalText, est ce bien cela ?
Dans ce cas, je mettrais le contrôle dans le postValidate de l’objet (n’autoriser que les zone géographique du parent) et éventuellement ajouterai un script js pour rendre les options du select LegalTextGeographicalZone disabled.
Dans tous les cas le contrôle se fait côté back.

1 Like