Open fluidlog opened 1 month ago
https://archipel.assemblee-virtuelle.org/ n'a pas été mis-à-jour sur les dernières versions d'Archipelago.
As-tu observé également ce bug sur un Archipelago à jour ?
Je viens de tester sur le serveur du low-tech lab (en v2.1.0) https://archipel.lowtechlab.org/Organization/https%3A%2F%2Fdata.archipel.lowtechlab.org%2Forganizations%2Flow-tech-lab
Dans le show
Dans le edit
Attention : le problème apparait partout où on utilise le statut et le type (projet par exemple). Je modifie donc le titre.
on à des ReferenceInput
du package @semapps/input-components
pour le statut et le type.
Le backend renvoie la donnée référencée sous forme de tableau et le composant ne gère pas ce cas.
Il semble que ce comportement soit apparu récemment…
Le composant en question est une surcharge du composant react-admin du même nom, qui introduit une fonction de formatage pour gérer des références sous formes d'objet et en extraire l'id. Le cas de la donnée sous forme d'id dans un tableau n'est pas pris en compte…
A débattre : Faut-il intervenir au niveau du dataProvider pour scalariser la donnée dès son extraction du backend (et la remettre en tableau à sa sortie) ou bien faut-il simplement traiter ce cas dans la fonction de formatage ?
Pour reproduire au plus simple : Dans une instance Archipelago :
OrganizationType
Lorsque l'on vient editer l'organization l'input n'est pas peuplé et on a un message d'erreur dans la console qui dit que la valeur est undefined
Proposition de code pour la fonction format si on souhaite traiter le problème au niveau front : src/frontend/packages/input-components/src/ReferenceInput.js
const format = (value) => {
// If there is no value return an empty string
if (!value) return '';
// If the value is an array extract first entry
if (Array.isArray(value)){
value = value[0];
}
// If the value is an object with an @id field, return the uri
return typeof value === 'object' ? value.id || value['@id'] : value;
};
Décrivez le bug Il est possible d'affecter un type et un statut à une organisation
Mais lorsqu'on revient dessus, l'input n'affiche pas ce qui a été retenu.
Au niveau du show, ça fonctionne.
Etapes pour reproduire