Bug Schéma délibérations : Erreur de contenu non explicite pour un numéro de siret invalide
Contexte
Lorsqu'on valide un fichier de délibération comportant un numéro de SIRET rempli mais non valide (ex : 123456789), le rapport de validation de validata.fr mentionne 2 erreurs de contenu :
- une erreur "Format incorrect"
- une erreur "Numéro SIRET invalide"
Mais la prévisualisation du fichier source n'en illustre qu'une seule sous forme d'infobulle:
- "Numéro SIRET invalide La valeur 123456789 n'est pas un numéro SIRET français valide"
Reproduction du bug :
Schéma utilisé : Schéma délibérations v2.1.4
Fichier de données : fichier_deliberation_invalide_siret.csv
Rapport de validation résultant :

Extrait du rapport de validation généré par validata_core correspondant pour les mêmes schéma et fichier source :
validata deliberation_invalide_coll_siret.csv --schema https://git.opendatafrance.net/scdl/deliberations/-/raw/master/schema.json
{
"date": "2022-12-28T14:43:50.950260+00:00",
"errors": [],
"stats": {
"errors": 2,
"tasks": 1
},
"tasks": [
{
"errors": [
{
"cell": "123456789",
"cells": [...],
"code": "constraint-error",
"description": "A field value does not conform to a constraint.",
"fieldName": "COLL_SIRET",
"fieldNumber": 2,
"fieldPosition": 2,
"message": "Identifiant du [Système d'Identification du Répertoire des Etablissements](https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_%C3%A9tablissements) (SIRET) de la collectivité qui a adopté la délibération, composé de 9 chiffres SIREN + 5 chiffres NIC d’un seul tenant.\n\n## Exemple(s) valide(s)\n21860194600013\n",
"name": "Format incorrect",
"note": "constraint \"pattern\" is \"^\\d{14}$\"",
"rowNumber": 1,
"rowPosition": 2,
"tags": [
"#table",
"#row",
"#cell"
]
},
{
"cell": "123456789",
"cells": [...],
"code": "french-siret-value",
"description": "Le numéro de SIRET indiqué n'est pas valide selon la définition de l'[INSEE](https://www.insee.fr/fr/metadonnees/definition/c1841).",
"fieldName": "COLL_SIRET",
"fieldNumber": 2,
"fieldPosition": 2,
"message": "La valeur 123456789 n'est pas un numéro SIRET français valide.",
"name": "Numéro SIRET invalide",
"note": "",
"rowNumber": 1,
"rowPosition": 2,
"tags": [
"#body"
]
}
],
"partial": false,
"resource": {..}
"scope": [...],
"stats": {"errors": 2},
"structure_warnings": [],
"time": 0.041,
"valid": false
}
],
"time": 0.041,
"valid": false,
"version": "4.38.0"
}
Problème
La prévisualisation du fichier source est censée illustrer les erreurs de contenu remontées par le rapport de validation.
L'erreur "Format incorrect" n'est pas explicitée dans la prévisualisation du fichier. Même si de fait, elle fait référence à la même erreur que le "Numéro SIRET invalide" (cf extrait de validation de validata_core ci-dessus), cela porte à confusion car rien ne prouve dans cette interface que ces deux erreurs renvoit à la même cellule.
Solutions proposées
- Faire en sorte que 2 infobulles relatives à cette erreur apparaissent :
- celle qui existe déjà ("Numéro SIRET invalide La valeur 123456789 n'est pas un numéro SIRET français valide")
- une deuxième qui précise que le format est incorrect pour cette cellule
NB : je ne connais pas encore trop le code de validata_ui, je ne sais pas si techniquement c'est facile à mettre en place 2 infobulles conjointes à la même cellule
- Autre solution Changer le comportement de validata_core pour que l'erreur "Format incorrect" ne soit pas remontée car finalement elle est redondante avec l'erreur "Numéro SIRET invalide"