InseeFr / Eno

Questionnaire generator
MIT License
13 stars 24 forks source link

[Eno V3] cas réel : impossible à générer #733

Closed AnneHuSKa closed 10 months ago

AnneHuSKa commented 11 months ago

Unknown error during generation : class fr.insee.eno.core.model.question.TextQuestion cannot be cast to class fr.insee.eno.core.model.sequence.AbstractSequence (fr.insee.eno.core.model.question.TextQuestion and fr.insee.eno.core.model.sequence.AbstractSequence are in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader @6d03e736)

Peut-être à cause de cela : image ddi_CDV.zip

Si c'est ca, alors c'est TRES BIEN !

nsenave commented 10 months ago

⚠️ DDI généré avec l'ancienne modélisation DDI des boucles (Eno < 2.4.4)

Après génération du DDI avec la modélisation corrigée des boucles (et fix d'une erreur dans la version actuelle Eno v3), la génération échoue à cause du resizing :

=> Dans Eno v2 : le resizing de la question liens deux à deux "écrase" celui des boucles liées (à la boucle qui contient cette variable). Cela signifie qu'on perd le comportement du resizing pour les boucles liées en question...

Dans Eno v3 : je renvoie une erreur quand ce cas se produit.

Plus tard, on reverra la modélisation du resizing pour que ce cas précis (ainsi que d'autres, je ne vais pas détailler ici) ne posent plus problèmes.

➡️ En attendant : quelle décision prendre ?

AnneHuSKa commented 10 months ago

@nsenave : dans la vraie vie la question sur les liens deux à deux dépend des prénoms donc que le resizing écrase celui des boucles liées est probablement le bon comportement
A court terme, que se passe-t-il si on crée une variable calculée T_PRENOM_LIEN par exemple et qu'on fait les liens deux à deux sur cette variable ?

nsenave commented 10 months ago

@nsenave : dans la vraie vie la question sur les liens deux à deux dépend des prénoms donc que le resizing écrase celui des boucles liées est probablement le bon comportement A court terme, que se passe-t-il si on crée une variable calculée T_PRENOM_LIEN par exemple et qu'on fait les liens deux à deux sur cette variable ?

@AnneHuSKa Si la variable T_PRENOM_LIEN utilise T_PRENOM le résultat serait le même (le resizing se fait à partir des collectées dont dépendent les calculées)

nsenave commented 10 months ago

J'ai merge ma branche de travail où j'ai résolu un autre bug technique. Pour le bug "métier" qui reste à trancher à court terme (après avoir revu la modélisation du resizing ça ne sera plus un sujet, mais je pense qu'il vaut mieux ne pas se disperser avec ça pour l'instant).

Pour reformuler, dans le cas explicité plus haut :

(Actuellement c'est l'option 2 dans le code Eno v3)

AnneHuSKa commented 10 months ago

Je te propose de garder l'option 1 : dans nos cas d'usage de court et moyen terme, les liens deux à deux sont toujours liés aux prénoms collectés donc ca me semble un comportement acceptable. Si à terme on fait autre chose( (genre budgets séparés ou je ne sais quoi) avec les liens deux à deux on aura des soucis mais aujourd'hui, les liens deux à deux c'est le TCM donc les prénoms. Merci à toi @nsenave

nsenave commented 10 months ago

Je remets l'issue en "to be deployed for validation" avant de re-déployer en recette en ne renvoyant plus d'exception dans ce cas : j'ai mis simplement un log.warn dans la log à la place.