Open ahurabielle opened 4 days ago
Effectivement, on ne peut pas passer de valeur par défaut au composant taxonomy.
Pour contourner le soucis je supprimerais la clé value
du champ cd_nom et mettrait le code suivant dans on change:
"change": [
"({objForm, meta}) => {",
"if ((objForm.value.cd_nom == undefined) || (objForm.value.presence == 'Non')) {",
"objForm.patchValue({cd_nom : {'cd_nom': 914450, 'lb_nom': 'Amphibia', 'nom_valide': 'Amphibia', 'nom_vern': 'Amphibiens, batraciens'}})",
"}",
"}",
""
]
Bonjour,
Dans les sous-modules POP développé pour la SHF, on demande à l'utilisateur s'il a observé des amphibiens (champ
presence
). S'il indiqueOui
, l'utilisateur cherchera son taxon. S'il indiqueNon
, on veut que le cd_nom soit mis à 914450 (cela correspond aux amphibiens) par défaut, automatiquement.La configuration du fichier observation.json est la suivante :
Le comportement fonctionne bien la plupart du temps : lorsque l'utilisateur choisit de saisir une observation, il arrive sur une interface, et par défaut, l'espèce est mise à "Amphibia".
Mais parfois (lors de la "première" saisie d'observation sur le module, ou après un refresh (CTRL+MAJ+R), le champ
cd_nom
ne s'initialise pas correctement. On a alors une erreur dans la console et le champ "Espèce observée" n'est pas pré-rempli :ERROR TypeError: Qt[this.displayedLabel] is undefined
Le problème n'est malheureusement pas uniquement visuel. Si cette erreur se produit, quelque soit ce que saisit l'observateur dans le formulaire au niveau de l'espèce, la valeur ne sera pas repercutée dans la variable cd_nom. Dans l'exemple ci-dessous, j'ai saisi "bufo bufo", j'ai validé... mais dans ma saisie, je récupère quand même la valeur "Amphibia".
En imprimant la valeur du cd_nom (grâce à la fonction change) avec le code suivant :
je constate que la valeur, dans le cas d'erreur, est bien mise à 914450 puis à l'objet taxonomique correspondant à 914450 Par la suite, même quand je modifie le formulaire, l'objet reste identique !
Je ne comprends pas le problème.
J'avais envisagé également de ne pas passer par le champ
value
et de fonctionner uniquement avec la fonction "change" comme dans l'issue #93 pour mettre la valeur par défaut. Mais là aussi, j'ai un souci : dès lors que je manipule la variable cd_nom, j'ai la même erreur :ERROR TypeError: Qt[this.displayedLabel] is undefined
, le cd_nom = 914450, puis les saisies de l'utilisateur ne fonctionnent plus.Comment puis-je résoudre ce souci embarrassant ?