From 5c13d570a7fdd9029bc57a789c4b257610db4731 Mon Sep 17 00:00:00 2001 From: Nicolas Senave Date: Wed, 16 Oct 2024 16:00:27 +0200 Subject: [PATCH 01/19] chore: remove outdated test files --- .../lunatic/lunatic-comment-section.json | 150 -- .../lunatic/lunatic-declarations.json | 570 ----- .../lunatic/lunatic-dynamic-table-2.json | 267 -- .../lunatic/lunatic-dynamic-table.json | 532 ---- .../lunatic/lunatic-filters-calculated.json | 526 ---- .../lunatic/lunatic-filters-extended.json | 1037 -------- .../lunatic/lunatic-filters-nested.json | 2251 ----------------- .../lunatic/lunatic-filters-simple.json | 613 ----- .../lunatic-identification-question.json | 195 -- .../integration/lunatic/lunatic-labels.json | 643 ----- .../lunatic/lunatic-loop-except.json | 401 --- .../lunatic-loops-extended-sequence.json | 627 ----- .../lunatic-loops-extended-subsequence.json | 792 ------ .../lunatic/lunatic-loops-sequence.json | 698 ----- .../lunatic/lunatic-loops-subsequence.json | 827 ------ .../integration/lunatic/lunatic-mcq.json | 1826 ------------- .../integration/lunatic/lunatic-pairwise.json | 333 --- .../integration/lunatic/lunatic-resizing.json | 609 ----- .../lunatic-response-time-section.json | 198 -- .../integration/lunatic/lunatic-simple.json | 85 - .../integration/lunatic/lunatic-tooltips.json | 369 --- .../lunatic/lunatic-variables.json | 706 ------ 22 files changed, 14255 deletions(-) delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-comment-section.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-declarations.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-dynamic-table-2.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-dynamic-table.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-filters-calculated.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-filters-extended.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-filters-nested.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-filters-simple.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-identification-question.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-labels.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-loop-except.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-loops-extended-sequence.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-loops-extended-subsequence.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-loops-sequence.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-loops-subsequence.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-mcq.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-pairwise.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-resizing.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-response-time-section.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-simple.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-tooltips.json delete mode 100644 eno-core/src/test/resources/integration/lunatic/lunatic-variables.json diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-comment-section.json b/eno-core/src/test/resources/integration/lunatic/lunatic-comment-section.json deleted file mode 100644 index aa2fd0f48..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-comment-section.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "id": "lmyoceix", - "modele": "ENOSIMPLE", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "25-09-2023 11:34:18", - "missing": false, - "pagination": "question", - "maxPage": "4", - "label": { - "value": "Eno - Simple questionnaire", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lmynuv39", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmynuv39", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmyo3e0y", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Unique question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmynuv39", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - }, - { - "id": "COMMENT-SEQ", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "3", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "COMMENT-QUESTION", - "componentType": "Textarea", - "mandatory": false, - "page": "4", - "maxLength": 2000, - "label": { - "value": "\"Avez-vous des remarques concernant l'enquête ou des commentaires ?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "3", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "COMMENT_QE" - ], - "response": { - "name": "COMMENT_QE" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "COMMENT_QE", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-declarations.json b/eno-core/src/test/resources/integration/lunatic/lunatic-declarations.json deleted file mode 100644 index 04e402793..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-declarations.json +++ /dev/null @@ -1,570 +0,0 @@ -{ - "id": "lk6zk95c", - "modele": "ENODECLARATIONS", - "enoCoreVersion": "2.4.1-pairwise", - "lunaticModelVersion": "2.3.2-rc7", - "generatingDate": "17-07-2023 15:16:42", - "missing": false, - "pagination": "question", - "maxPage": "9", - "label": { - "value": "Eno - Declarations and instructions", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lk6zlgzm", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Types of declaration\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lk6zlgzm-lk6zj8wp", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Static label of type ’Aide’ in Pogues\"", - "type": "VTL|MD" - } - }, - { - "id": "lk6zlgzm-lk6zi722", - "declarationType": "INSTRUCTION", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Static label of type ’Consigne’ in Pogues\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6zlgzm", - "page": "1", - "label": { - "value": "\"I - \" || \"Types of declaration\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lk6zkkfr", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ 1. \" || \"Question 1\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lk706b3k-SI", - "declarationType": "STATEMENT", - "position": "BEFORE_QUESTION_TEXT", - "label": { - "value": "\"Static label ’Aide’ before the question\"", - "type": "VTL|MD" - } - }, - { - "id": "lk701wsj-SI", - "declarationType": "STATEMENT", - "position": "BEFORE_QUESTION_TEXT", - "label": { - "value": "\"Static label ’Consigne’ before the question\"", - "type": "VTL|MD" - } - }, - { - "id": "lk6zkkfr-lk6zp25f", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Static label ’Aide’ after the question\"", - "type": "VTL|MD" - } - }, - { - "id": "lk6zkkfr-lk6zls8d", - "declarationType": "INSTRUCTION", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Static label ’Consigne’ after the question\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6zlgzm", - "page": "1", - "label": { - "value": "\"I - \" || \"Types of declaration\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - }, - { - "id": "lk6znaqx", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"II - \" || \"Dynamic declarations\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lk6znaqx-lk6znwqo", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Answer to question 1: \" || Q1", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6znaqx", - "page": "3", - "label": { - "value": "\"II - \" || \"Dynamic declarations\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ] - }, - { - "id": "lk6zs7tw", - "componentType": "Input", - "mandatory": false, - "page": "4", - "maxLength": 249, - "label": { - "value": "\"➡ 2. \" || \"Question 2\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lk709w0i-SI", - "declarationType": "STATEMENT", - "position": "BEFORE_QUESTION_TEXT", - "label": { - "value": "\"Dynamic declaration using one collected: \" || Q1", - "type": "VTL|MD" - } - }, - { - "id": "lk6zs7tw-lk6zw2lh", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Dynamic instruction using one collected: \" || Q1", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6znaqx", - "page": "3", - "label": { - "value": "\"II - \" || \"Dynamic declarations\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1", - "Q2" - ], - "response": { - "name": "Q2" - } - }, - { - "id": "lk709m8o", - "componentType": "InputNumber", - "mandatory": false, - "page": "5", - "min": 0, - "max": 10, - "decimals": 0, - "label": { - "value": "\"➡ 3. \" || \"Question 3\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lk703vgg-SI", - "declarationType": "STATEMENT", - "position": "BEFORE_QUESTION_TEXT", - "label": { - "value": "\"Dynamic declaration using two collected: \" || Q1 || \" and \" || Q2", - "type": "VTL|MD" - } - }, - { - "id": "lk709m8o-lk70182d", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Dynamic instruction using two collected: \" || Q1 || \" and \" || Q2", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lk709m8o-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(Q3)) and (0>Q3 or 10Q3)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lk6znaqx", - "page": "3", - "label": { - "value": "\"II - \" || \"Dynamic declarations\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1", - "Q2", - "Q3" - ], - "response": { - "name": "Q3" - } - }, - { - "id": "lk702f0b", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "6", - "label": { - "value": "\"➡ 4. \" || \"Question 4\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lk702f0b-lk70c4cl", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Dynamic instruction using a calculated: \" || cast(CALCULATED1, string)", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6znaqx", - "page": "3", - "label": { - "value": "\"II - \" || \"Dynamic declarations\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "CALCULATED1", - "Q4" - ], - "response": { - "name": "Q4" - } - }, - { - "id": "lk70b3kk", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "7", - "label": { - "value": "\"➡ 5. \" || \"Question 5\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lk70b3kk-lk70diom", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Dynamic instruction using an external: \" || EXTERNAL1", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6znaqx", - "page": "3", - "label": { - "value": "\"II - \" || \"Dynamic declarations\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "EXTERNAL1", - "Q5" - ], - "response": { - "name": "Q5" - } - }, - { - "id": "COMMENT-SEQ", - "componentType": "Sequence", - "page": "8", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "8", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "COMMENT-QUESTION", - "componentType": "Textarea", - "mandatory": false, - "page": "9", - "maxLength": 2000, - "label": { - "value": "\"Avez-vous des remarques concernant l'enquête ou des commentaires ?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "8", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "COMMENT_QE" - ], - "response": { - "name": "COMMENT_QE" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "COMMENT_QE", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "EXTERNAL", - "name": "EXTERNAL1", - "value": null - }, - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q3", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q4", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q5", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q1", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q2", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q3", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q4", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q5", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "CALCULATED1", - "expression": { - "value": "cast(Q3, integer) + 5", - "type": "VTL" - }, - "bindingDependencies": [ - "Q3" - ], - "inFilter": "false" - } - ], - "cleaning": {}, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-dynamic-table-2.json b/eno-core/src/test/resources/integration/lunatic/lunatic-dynamic-table-2.json deleted file mode 100644 index 7e94a91ec..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-dynamic-table-2.json +++ /dev/null @@ -1,267 +0,0 @@ -{ - "cleaning": {}, - "variables": [ - { - "variableType": "COLLECTED", - "values": { - "COLLECTED": null, - "EDITED": null, - "INPUTED": null, - "FORCED": null, - "PREVIOUS": null - }, - "name": "COMMENT_QE" - }, - { - "variableType": "COLLECTED", - "values": { - "COLLECTED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ], - "FORCED": [ - null - ], - "PREVIOUS": [ - null - ] - }, - "name": "TABLEAUBASIQUE1" - }, - { - "variableType": "COLLECTED", - "values": { - "COLLECTED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ], - "FORCED": [ - null - ], - "PREVIOUS": [ - null - ] - }, - "name": "TABLEAUBASIQUE2" - }, - { - "variableType": "CALCULATED", - "expression": { - "type": "VTL", - "value": "true" - }, - "name": "FILTER_RESULT_TABLEAUBASIQUE", - "inFilter": "false" - } - ], - "components": [ - { - "componentType": "Sequence", - "hierarchy": { - "sequence": { - "id": "lrf2xcww", - "page": "1", - "label": { - "type": "VTL|MD", - "value": "\"I - \" || \"Fonctionnalités de base\"" - } - } - }, - "conditionFilter": { - "type": "VTL", - "value": "true" - }, - "id": "lrf2xcww", - "page": "1", - "label": { - "type": "VTL|MD", - "value": "\"I - \" || \"Fonctionnalités de base\"" - } - }, - { - "componentType": "RosterForLoop", - "controls": [ - { - "criticality": "ERROR", - "errorMessage": { - "type": "VTL|MD", - "value": "\"Erreur de niveau Tableau \"" - }, - "typeOfControl": "FORMAT", - "control": { - "type": "VTL", - "value": "1 <> 1" - }, - "id": "kfxmjupm-CI-0" - }, - { - "type": "ROW", - "criticality": "FORMAT", - "errorMessage": { - "type": "VTL|MD", - "value": "\"Erreur de ligne VAR1 : \" || nvl(TABLEAUBASIQUE1, \"rien\") || \" - VAR2 : \" || nvl(TABLEAUBASIQUE2, \"rien\") " - }, - "typeOfControl": "FORMAT", - "control": { - "type": "VTL", - "value": "1 = 2" - }, - "id": "kfxmjupm-CI-0" - } - ], - "components": [ - { - "componentType": "Dropdown", - "controls": [ - { - "criticality": "ERROR", - "errorMessage": { - "type": "VTL|MD", - "value": "\"Erreur de cellules (valeur : \" || nvl(TABLEAUBASIQUE1, \"rien\") || \")\"" - }, - "typeOfControl": "FORMAT", - "control": { - "type": "VTL", - "value": "TABLEAUBASIQUE1 <> \"1\"" - }, - "id": "kfxmjupm-CI-0" - } - ], - "response": { - "name": "TABLEAUBASIQUE1" - }, - "options": [ - { - "label": { - "type": "VTL|MD", - "value": "Banana" - }, - "value": "1" - }, - { - "label": { - "type": "VTL|MD", - "value": "Water melon" - }, - "value": "2" - }, - { - "label": { - "type": "VTL|MD", - "value": "Strawberry" - }, - "value": "3" - }, - { - "label": { - "type": "VTL|MD", - "value": "Durian" - }, - "value": "4" - }, - { - "label": { - "type": "VTL|MD", - "value": "Apple" - }, - "value": "5" - } - ], - "id": "lrf3d3rk-QOP-lrf3c3km" - }, - { - "componentType": "Radio", - "response": { - "name": "TABLEAUBASIQUE2" - }, - "options": [ - { - "label": { - "type": "VTL|MD", - "value": "\"J’aime\"" - }, - "value": "1" - }, - { - "label": { - "type": "VTL|MD", - "value": "\"J’aime pas\"" - }, - "value": "2" - } - ], - "id": "lrf3d3rk-QOP-lrf3paxv" - } - ], - "positioning": "HORIZONTAL", - "hierarchy": { - "sequence": { - "id": "lrf2xcww", - "page": "1", - "label": { - "type": "VTL|MD", - "value": "\"I - \" || \"Fonctionnalités de base\"" - } - } - }, - "header": [ - { - "label": { - "type": "VTL|MD", - "value": "\"Fruit\"" - } - }, - { - "label": { - "type": "VTL|MD", - "value": "\"J’aime, j’aime pas\"" - } - } - ], - "conditionFilter": { - "type": "VTL", - "value": "true" - }, - "id": "lrf3d3rk", - "page": "2", - "label": { - "type": "VTL|MD", - "value": "\"➡ 1. \" || \"Tableau basique\"" - }, - "lines": { - "min": { - "type": "VTL", - "value": "1" - }, - "max": { - "type": "VTL", - "value": "5" - } - }, - "mandatory": false - } - ], - "pagination": "question", - "resizing": {}, - "label": { - "type": "VTL|MD", - "value": "Tableaux dynamiques en nouvelle filière" - }, - "lunaticModelVersion": "2.5.0", - "modele": "TABLEAUXDYNNF", - "enoCoreVersion": "2.7.1", - "generatingDate": "15-01-2024 15:38:29", - "missing": false, - "id": "lrf3chy8", - "maxPage": "2" -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-dynamic-table.json b/eno-core/src/test/resources/integration/lunatic/lunatic-dynamic-table.json deleted file mode 100644 index 40555e5cc..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-dynamic-table.json +++ /dev/null @@ -1,532 +0,0 @@ -{ - "id": "lr0e0nxo", - "modele": "ENO_DYNAMIC_TABLE", - "enoCoreVersion": "2.4.10", - "lunaticModelVersion": "2.3.4", - "generatingDate": "05-01-2024 09:17:04", - "missing": false, - "pagination": "question", - "maxPage": "7", - "label": { - "value": "Eno - Dynamic table", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lr0eb56v", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence with dynamic table\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lr0eb56v", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence with dynamic table\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lr0e2k6k", - "componentType": "RosterForLoop", - "mandatory": false, - "page": "2", - "positioning": "HORIZONTAL", - "label": { - "value": "\"➡ 1. \" || \"Dynamic table\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lr0e2k6k-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(DYNAMIC_TABLE2)) and (0>DYNAMIC_TABLE2 or 100DYNAMIC_TABLE2)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lr0eb56v", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence with dynamic table\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "DYNAMIC_TABLE1", - "DYNAMIC_TABLE2", - "DYNAMIC_TABLE3" - ], - "lines": { - "min": { - "value": "1", - "type": "VTL" - }, - "max": { - "value": "5", - "type": "VTL" - } - }, - "header": [ - { - "label": { - "value": "\"Table text variable\"", - "type": "VTL|MD" - } - }, - { - "label": { - "value": "\"Table percentage variable\"", - "type": "VTL|MD" - } - }, - { - "label": { - "value": "\"Table unique choice variable\"", - "type": "VTL|MD" - } - } - ], - "components": [ - { - "componentType": "Input", - "maxLength": 20, - "id": "lr0e2k6k-QOP-lr0elmn3", - "response": { - "name": "DYNAMIC_TABLE1" - }, - "bindingDependencies": [ - "DYNAMIC_TABLE1" - ] - }, - { - "componentType": "InputNumber", - "min": 0, - "max": 100, - "decimals": 0, - "id": "lr0e2k6k-QOP-lr0ede23", - "unit": "%", - "response": { - "name": "DYNAMIC_TABLE2" - }, - "bindingDependencies": [ - "DYNAMIC_TABLE2" - ] - }, - { - "componentType": "Radio", - "id": "lr0e2k6k-QOP-lr0e9vxz", - "options": [ - { - "value": "1", - "label": { - "value": "\"Yes\"", - "type": "VTL|MD" - } - }, - { - "value": "0", - "label": { - "value": "\"No\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "DYNAMIC_TABLE3" - }, - "bindingDependencies": [ - "DYNAMIC_TABLE3" - ] - } - ] - }, - { - "id": "lr0eprgy", - "componentType": "Loop", - "page": "3", - "maxPage": "2", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "DYNAMIC_TABLE1", - "Q_LOOP" - ], - "loopDependencies": [ - "DYNAMIC_TABLE1", - "DYNAMIC_TABLE2", - "DYNAMIC_TABLE3" - ], - "components": [ - { - "id": "lr0ef7d0", - "componentType": "Sequence", - "page": "3.1", - "label": { - "value": "\"II - \" || \"Sequence with linked loop\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lr0ef7d0", - "page": "3.1", - "label": { - "value": "\"II - \" || \"Sequence with linked loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "DYNAMIC_TABLE1", - "DYNAMIC_TABLE2", - "DYNAMIC_TABLE3" - ] - }, - { - "id": "lr0ekng3", - "componentType": "Input", - "mandatory": false, - "page": "3.2", - "maxLength": 249, - "label": { - "value": "\"➡ 2. \" || \"Loop question\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lr0ekng3-lr0eoovm", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Answer in dynamic table: \" || DYNAMIC_TABLE1", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lr0ef7d0", - "page": "3.1", - "label": { - "value": "\"II - \" || \"Sequence with linked loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "DYNAMIC_TABLE1", - "Q_LOOP", - "DYNAMIC_TABLE2", - "DYNAMIC_TABLE3" - ], - "response": { - "name": "Q_LOOP" - } - } - ], - "iterations": { - "value": "count(DYNAMIC_TABLE1)", - "type": "VTL" - } - }, - { - "id": "lr0eepqa", - "componentType": "Sequence", - "page": "4", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lr0eepqa", - "page": "4", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lr0els9b", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "5", - "label": { - "value": "\"➡ 3. \" || \"Last question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lr0eepqa", - "page": "4", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q_LAST" - ], - "response": { - "name": "Q_LAST" - } - }, - { - "id": "COMMENT-SEQ", - "componentType": "Sequence", - "page": "6", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "6", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "COMMENT-QUESTION", - "componentType": "Textarea", - "mandatory": false, - "page": "7", - "maxLength": 2000, - "label": { - "value": "\"Avez-vous des remarques concernant l'enquête ou des commentaires ?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "6", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "COMMENT_QE" - ], - "response": { - "name": "COMMENT_QE" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "COMMENT_QE", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "DYNAMIC_TABLE1", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "DYNAMIC_TABLE2", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "DYNAMIC_TABLE3", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q_LOOP", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q_LAST", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_DYNAMIC_TABLE", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q_LOOP", - "expression": { - "value": "true", - "type": "VTL" - }, - "shapeFrom": "Q_LOOP", - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q_LAST", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - } - ], - "cleaning": {}, - "resizing": { - "DYNAMIC_TABLE1": { - "size": "count(DYNAMIC_TABLE1)", - "variables": [ - "Q_LOOP" - ] - } - } -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-filters-calculated.json b/eno-core/src/test/resources/integration/lunatic/lunatic-filters-calculated.json deleted file mode 100644 index 7d122b7ee..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-filters-calculated.json +++ /dev/null @@ -1,526 +0,0 @@ -{ - "id": "ljr8xy13", - "modele": "ENOFILTERS4", - "enoCoreVersion": "2.4.1-pairwise", - "lunaticModelVersion": "2.3.2-rc7", - "generatingDate": "06-07-2023 14:58:21", - "missing": false, - "pagination": "question", - "maxPage": "10", - "label": { - "value": "Eno - Filters with calculated", - "type": "VTL|MD" - }, - "components": [ - { - "id": "ljr8kldp", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljr8kldp", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljr8o4md", - "componentType": "InputNumber", - "mandatory": false, - "page": "2", - "min": 0, - "max": 10, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Question 1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "ljr8o4md-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(Q11)) and (0>Q11 or 10Q11)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ljr8kldp", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q11" - ], - "response": { - "name": "Q11" - } - }, - { - "id": "ljr8mkct", - "componentType": "InputNumber", - "mandatory": false, - "page": "3", - "min": 0, - "max": 10, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Question 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "ljr8mkct-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(Q12)) and (0>Q12 or 10Q12)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ljr8kldp", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q12" - ], - "response": { - "name": "Q12" - } - }, - { - "id": "ljr91fii", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "4", - "label": { - "value": "\"➡ \" || \"The value of the sum is: \" || cast(SUM_Q11_Q12, string)", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljr91fii-ljr8upfl", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Question defined to display the value of the sum before the filtered sequence\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljr8kldp", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "SUM_Q11_Q12", - "CHECK" - ], - "response": { - "name": "CHECK" - } - }, - { - "id": "ljr8raj5", - "componentType": "Sequence", - "page": "5", - "label": { - "value": "\"II - \" || \"Filtered sequence\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljr8raj5-ljr8uldd", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Sequence displayed in function of a calculated variable\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "(SUM_Q11_Q12 < 10)", - "type": "VTL", - "bindingDependencies": [ - "SUM_Q11_Q12", - "Q11", - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljr8raj5", - "page": "5", - "label": { - "value": "\"II - \" || \"Filtered sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljr8quv4", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "6", - "label": { - "value": "\"➡ \" || \"Question of filtered sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(SUM_Q11_Q12 < 10)", - "type": "VTL", - "bindingDependencies": [ - "SUM_Q11_Q12", - "Q11", - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljr8raj5", - "page": "5", - "label": { - "value": "\"II - \" || \"Filtered sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2" - ], - "response": { - "name": "Q2" - } - }, - { - "id": "ljr901dk", - "componentType": "Sequence", - "page": "7", - "label": { - "value": "\"III - \" || \"End sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljr901dk", - "page": "7", - "label": { - "value": "\"III - \" || \"End sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljr8sn7a", - "componentType": "Input", - "mandatory": false, - "page": "8", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Last question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljr901dk", - "page": "7", - "label": { - "value": "\"III - \" || \"End sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q3" - ], - "response": { - "name": "Q3" - } - }, - { - "id": "COMMENT-SEQ", - "componentType": "Sequence", - "page": "9", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "9", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "COMMENT-QUESTION", - "componentType": "Textarea", - "mandatory": false, - "page": "10", - "maxLength": 2000, - "label": { - "value": "\"Avez-vous des remarques concernant l'enquête ou des commentaires ?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "9", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "COMMENT_QE" - ], - "response": { - "name": "COMMENT_QE" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "COMMENT_QE", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q11", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q12", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "CHECK", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q3", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q11", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q12", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_CHECK", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q2", - "expression": { - "value": "(SUM_Q11_Q12 < 10)", - "type": "VTL" - }, - "bindingDependencies": [ - "SUM_Q11_Q12" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q3", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "SUM_Q11_Q12", - "expression": { - "value": "cast(Q11, integer) + cast(Q12, integer)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q11", - "Q12" - ], - "inFilter": "true" - } - ], - "cleaning": { - "SUM_Q11_Q12": { - "Q2": "(SUM_Q11_Q12 < 10)" - }, - "Q11": { - "Q2": "(SUM_Q11_Q12 < 10)" - }, - "Q12": { - "Q2": "(SUM_Q11_Q12 < 10)" - } - }, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-filters-extended.json b/eno-core/src/test/resources/integration/lunatic/lunatic-filters-extended.json deleted file mode 100644 index 4321cd80b..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-filters-extended.json +++ /dev/null @@ -1,1037 +0,0 @@ -{ - "id": "ljo1cbeo", - "modele": "ENOFILTERS2", - "enoCoreVersion": "2.4.1-pairwise", - "lunaticModelVersion": "2.3.2-rc7", - "generatingDate": "21-07-2023 13:40:53", - "missing": false, - "pagination": "question", - "maxPage": "20", - "label": { - "value": "Eno - Extended filters", - "type": "VTL|MD" - }, - "components": [ - { - "id": "ljo15yqj", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo15yqj", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo10typ", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "2", - "label": { - "value": "\"➡ 1. \" || \"Question for sequences filter\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo15yqj", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q11" - ], - "response": { - "name": "Q11" - } - }, - { - "id": "ljo1irqf", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "3", - "label": { - "value": "\"➡ 2. \" || \"Question for subsequences filter\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo15yqj", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q12" - ], - "response": { - "name": "Q12" - } - }, - { - "id": "ljo1dbf5", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "4", - "label": { - "value": "\"➡ 3. \" || \"Question for questions filter\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo15yqj", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q13" - ], - "response": { - "name": "Q13" - } - }, - { - "id": "ljo1a5e8", - "componentType": "Sequence", - "page": "5", - "label": { - "value": "\"II - \" || \"Séquence 2 A\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q11)", - "type": "VTL", - "bindingDependencies": [ - "Q11" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1a5e8", - "page": "5", - "label": { - "value": "\"II - \" || \"Séquence 2 A\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1erjg", - "componentType": "Input", - "mandatory": false, - "page": "6", - "maxLength": 249, - "label": { - "value": "\"➡ 4. \" || \"Question 2 A\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q11)", - "type": "VTL", - "bindingDependencies": [ - "Q11" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1a5e8", - "page": "5", - "label": { - "value": "\"II - \" || \"Séquence 2 A\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2A" - ], - "response": { - "name": "Q2A" - } - }, - { - "id": "ljo1m0rp", - "componentType": "Sequence", - "page": "7", - "label": { - "value": "\"III - \" || \"Sequence 2 B\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q11)", - "type": "VTL", - "bindingDependencies": [ - "Q11" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1m0rp", - "page": "7", - "label": { - "value": "\"III - \" || \"Sequence 2 B\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1cthd", - "componentType": "Input", - "mandatory": false, - "page": "8", - "maxLength": 249, - "label": { - "value": "\"➡ 5. \" || \"Question 2 B\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q11)", - "type": "VTL", - "bindingDependencies": [ - "Q11" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1m0rp", - "page": "7", - "label": { - "value": "\"III - \" || \"Sequence 2 B\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2B" - ], - "response": { - "name": "Q2B" - } - }, - { - "id": "ljo1n2i4", - "componentType": "Sequence", - "page": "9", - "label": { - "value": "\"IV - \" || \"Sequence 2 C\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q11)", - "type": "VTL", - "bindingDependencies": [ - "Q11" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1n2i4", - "page": "9", - "label": { - "value": "\"IV - \" || \"Sequence 2 C\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1obod", - "componentType": "Input", - "mandatory": false, - "page": "10", - "maxLength": 249, - "label": { - "value": "\"➡ 6. \" || \"Question 2 C\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q11)", - "type": "VTL", - "bindingDependencies": [ - "Q11" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1n2i4", - "page": "9", - "label": { - "value": "\"IV - \" || \"Sequence 2 C\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2C" - ], - "response": { - "name": "Q2C" - } - }, - { - "id": "ljo19nvz", - "componentType": "Sequence", - "page": "11", - "label": { - "value": "\"V - \" || \"Sequence 3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo19nvz", - "page": "11", - "label": { - "value": "\"V - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1hpgw", - "componentType": "Subsequence", - "goToPage": "12", - "label": { - "value": "\"Subsequence 3.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q12)", - "type": "VTL", - "bindingDependencies": [ - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo19nvz", - "page": "11", - "label": { - "value": "\"V - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo1hpgw", - "page": "12", - "label": { - "value": "\"Subsequence 3.1\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1c8h5", - "componentType": "Input", - "mandatory": false, - "page": "12", - "maxLength": 249, - "label": { - "value": "\"➡ 7. \" || \"Question 3.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q12)", - "type": "VTL", - "bindingDependencies": [ - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo19nvz", - "page": "11", - "label": { - "value": "\"V - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo1hpgw", - "page": "12", - "label": { - "value": "\"Subsequence 3.1\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q31" - ], - "response": { - "name": "Q31" - } - }, - { - "id": "ljo1imhf", - "componentType": "Subsequence", - "goToPage": "13", - "label": { - "value": "\"Subsequence 3.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q12)", - "type": "VTL", - "bindingDependencies": [ - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo19nvz", - "page": "11", - "label": { - "value": "\"V - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo1imhf", - "page": "13", - "label": { - "value": "\"Subsequence 3.2\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1dmgc", - "componentType": "Input", - "mandatory": false, - "page": "13", - "maxLength": 249, - "label": { - "value": "\"➡ 8. \" || \"Question 3.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q12)", - "type": "VTL", - "bindingDependencies": [ - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo19nvz", - "page": "11", - "label": { - "value": "\"V - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo1imhf", - "page": "13", - "label": { - "value": "\"Subsequence 3.2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q32" - ], - "response": { - "name": "Q32" - } - }, - { - "id": "ljo19fbn", - "componentType": "Subsequence", - "goToPage": "14", - "label": { - "value": "\"Subsequence 3.3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q12)", - "type": "VTL", - "bindingDependencies": [ - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo19nvz", - "page": "11", - "label": { - "value": "\"V - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo19fbn", - "page": "14", - "label": { - "value": "\"Subsequence 3.3\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1cx8w", - "componentType": "Input", - "mandatory": false, - "page": "14", - "maxLength": 249, - "label": { - "value": "\"➡ 9. \" || \"Question 3.3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q12)", - "type": "VTL", - "bindingDependencies": [ - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo19nvz", - "page": "11", - "label": { - "value": "\"V - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo19fbn", - "page": "14", - "label": { - "value": "\"Subsequence 3.3\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q33" - ], - "response": { - "name": "Q33" - } - }, - { - "id": "ljo1erbo", - "componentType": "Sequence", - "page": "15", - "label": { - "value": "\"VI - \" || \"Sequence 4\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo1erbo", - "page": "15", - "label": { - "value": "\"VI - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1jopg", - "componentType": "Input", - "mandatory": false, - "page": "16", - "maxLength": 249, - "label": { - "value": "\"➡ 10. \" || \"Question 1 of sequence 4\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q13)", - "type": "VTL", - "bindingDependencies": [ - "Q13" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1erbo", - "page": "15", - "label": { - "value": "\"VI - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q41" - ], - "response": { - "name": "Q41" - } - }, - { - "id": "ljo1ppho", - "componentType": "Input", - "mandatory": false, - "page": "17", - "maxLength": 249, - "label": { - "value": "\"➡ 11. \" || \"Question 2 of sequence 4\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q13)", - "type": "VTL", - "bindingDependencies": [ - "Q13" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1erbo", - "page": "15", - "label": { - "value": "\"VI - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q42" - ], - "response": { - "name": "Q42" - } - }, - { - "id": "ljo1lbcc", - "componentType": "Input", - "mandatory": false, - "page": "18", - "maxLength": 249, - "label": { - "value": "\"➡ 12. \" || \"Question 3 of sequence 4\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q13)", - "type": "VTL", - "bindingDependencies": [ - "Q13" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1erbo", - "page": "15", - "label": { - "value": "\"VI - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q43" - ], - "response": { - "name": "Q43" - } - }, - { - "id": "COMMENT-SEQ", - "componentType": "Sequence", - "page": "19", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "19", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "COMMENT-QUESTION", - "componentType": "Textarea", - "mandatory": false, - "page": "20", - "maxLength": 2000, - "label": { - "value": "\"Avez-vous des remarques concernant l'enquête ou des commentaires ?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "19", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "COMMENT_QE" - ], - "response": { - "name": "COMMENT_QE" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "COMMENT_QE", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q11", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q12", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q13", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2A", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2B", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2C", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q31", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q32", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q33", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q41", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q42", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q43", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q11", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q12", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q13", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q2A", - "expression": { - "value": "(Q11)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q11" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q2B", - "expression": { - "value": "(Q11)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q11" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q2C", - "expression": { - "value": "(Q11)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q11" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q31", - "expression": { - "value": "(Q12)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q12" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q32", - "expression": { - "value": "(Q12)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q12" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q33", - "expression": { - "value": "(Q12)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q12" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q41", - "expression": { - "value": "(Q13)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q13" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q42", - "expression": { - "value": "(Q13)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q13" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q43", - "expression": { - "value": "(Q13)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q13" - ], - "inFilter": "false" - } - ], - "cleaning": { - "Q11": { - "Q2A": "(Q11)", - "Q2B": "(Q11)", - "Q2C": "(Q11)" - }, - "Q12": { - "Q31": "(Q12)", - "Q32": "(Q12)", - "Q33": "(Q12)" - }, - "Q13": { - "Q41": "(Q13)", - "Q42": "(Q13)", - "Q43": "(Q13)" - } - }, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-filters-nested.json b/eno-core/src/test/resources/integration/lunatic/lunatic-filters-nested.json deleted file mode 100644 index 1e7f9bde1..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-filters-nested.json +++ /dev/null @@ -1,2251 +0,0 @@ -{ - "id": "ljo1z9t3", - "modele": "ENOFILTERS3", - "enoCoreVersion": "2.4.1-pairwise", - "lunaticModelVersion": "2.3.2-rc7", - "generatingDate": "21-07-2023 13:41:12", - "missing": false, - "pagination": "question", - "maxPage": "41", - "label": { - "value": "Eno - Nested filters", - "type": "VTL|MD" - }, - "components": [ - { - "id": "ljo1xxiz", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo1xxiz", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo1mx40", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "2", - "label": { - "value": "\"➡ 1. \" || \"Question to trigger first filter\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo1xxiz", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - }, - { - "id": "ljo1ukn7", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2 (has filter)\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljo1ukn7-ljo83pw0", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Nested filters: sequence and question\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "(Q1)", - "type": "VTL", - "bindingDependencies": [ - "Q1" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1ukn7", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2 (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo7wksz", - "componentType": "Input", - "mandatory": false, - "page": "4", - "maxLength": 249, - "label": { - "value": "\"➡ 2. \" || \"Question 2.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q1)", - "type": "VTL", - "bindingDependencies": [ - "Q1" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1ukn7", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q21" - ], - "response": { - "name": "Q21" - } - }, - { - "id": "ljo80ypl", - "componentType": "Input", - "mandatory": false, - "page": "5", - "maxLength": 249, - "label": { - "value": "\"➡ 3. \" || \"Question 2.2 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q1) and (Q21)", - "type": "VTL", - "bindingDependencies": [ - "Q1", - "Q21" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo1ukn7", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q22" - ], - "response": { - "name": "Q22" - } - }, - { - "id": "ljo7ig4r", - "componentType": "Sequence", - "page": "6", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljo7ig4r-ljo85y0b", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Nested filters on questions, using variables outside filters scope\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo7ig4r", - "page": "6", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo7ndmd", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "7", - "label": { - "value": "\"➡ 4. \" || \"Question 3.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo7ig4r", - "page": "6", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q31" - ], - "response": { - "name": "Q31" - } - }, - { - "id": "ljo8c901", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "8", - "label": { - "value": "\"➡ 5. \" || \"Question 3.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo7ig4r", - "page": "6", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q32" - ], - "response": { - "name": "Q32" - } - }, - { - "id": "ljo7vj0u", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "9", - "label": { - "value": "\"➡ 6. \" || \"Question 3.3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo7ig4r", - "page": "6", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q33" - ], - "response": { - "name": "Q33" - } - }, - { - "id": "ljo7u6ez", - "componentType": "Input", - "mandatory": false, - "page": "10", - "maxLength": 249, - "label": { - "value": "\"➡ 7. \" || \"Question 3.4 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q31)", - "type": "VTL", - "bindingDependencies": [ - "Q31" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo7ig4r", - "page": "6", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q34" - ], - "response": { - "name": "Q34" - } - }, - { - "id": "ljo863wa", - "componentType": "Input", - "mandatory": false, - "page": "11", - "maxLength": 249, - "label": { - "value": "\"➡ 8. \" || \"Question 3.5 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q31) and (Q32)", - "type": "VTL", - "bindingDependencies": [ - "Q31", - "Q32" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo7ig4r", - "page": "6", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q35" - ], - "response": { - "name": "Q35" - } - }, - { - "id": "ljo8efze", - "componentType": "Input", - "mandatory": false, - "page": "12", - "maxLength": 249, - "label": { - "value": "\"➡ 9. \" || \"Question 3.6 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q31) and (Q32) and (Q33)", - "type": "VTL", - "bindingDependencies": [ - "Q31", - "Q32", - "Q33" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo7ig4r", - "page": "6", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q36" - ], - "response": { - "name": "Q36" - } - }, - { - "id": "ljo8qza6", - "componentType": "Sequence", - "page": "13", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljo8qza6-ljo8mvj6", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Nested filters on questions: using variables inside filters scope\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo8qza6", - "page": "13", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo8tbgr", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "14", - "label": { - "value": "\"➡ 10. \" || \"Question 4.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo8qza6", - "page": "13", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q41" - ], - "response": { - "name": "Q41" - } - }, - { - "id": "ljo8dint", - "componentType": "InputNumber", - "mandatory": false, - "page": "15", - "min": 1, - "max": 2, - "decimals": 0, - "label": { - "value": "\"➡ 11. \" || \"Question 4.2 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q41)", - "type": "VTL", - "bindingDependencies": [ - "Q41" - ] - }, - "controls": [ - { - "id": "ljo8dint-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(Q42)) and (1>Q42 or 2Q42)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ljo8qza6", - "page": "13", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q42" - ], - "response": { - "name": "Q42" - } - }, - { - "id": "ljo8fpi7", - "componentType": "InputNumber", - "mandatory": false, - "page": "16", - "min": 1, - "max": 10, - "decimals": 0, - "label": { - "value": "\"➡ 12. \" || \"Question 4.3 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q41) and (Q42 = 1)", - "type": "VTL", - "bindingDependencies": [ - "Q41", - "Q42" - ] - }, - "controls": [ - { - "id": "ljo8fpi7-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(Q43)) and (1>Q43 or 10Q43)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ljo8qza6", - "page": "13", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q43" - ], - "response": { - "name": "Q43" - } - }, - { - "id": "ljo8y8il", - "componentType": "Input", - "mandatory": false, - "page": "17", - "maxLength": 249, - "label": { - "value": "\"➡ 13. \" || \"Question 4.4 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q41) and (Q42 = 1) and (Q43 < 5)", - "type": "VTL", - "bindingDependencies": [ - "Q41", - "Q42", - "Q43" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8qza6", - "page": "13", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q44" - ], - "response": { - "name": "Q44" - } - }, - { - "id": "ljoamxkr", - "componentType": "Sequence", - "page": "18", - "label": { - "value": "\"V - \" || \"Sequence 5 A\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljoamxkr-ljoafzg9", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Question to filter or not sequence 5 B\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljoamxkr", - "page": "18", - "label": { - "value": "\"V - \" || \"Sequence 5 A\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljoaeqlu", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "19", - "label": { - "value": "\"➡ 14. \" || \"Question 5 A\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljoamxkr", - "page": "18", - "label": { - "value": "\"V - \" || \"Sequence 5 A\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q5A" - ], - "response": { - "name": "Q5A" - } - }, - { - "id": "ljo8o1z8", - "componentType": "Sequence", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljo8o1z8-ljo8yko9", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Nested filters with subsequences\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "(Q5A)", - "type": "VTL", - "bindingDependencies": [ - "Q5A" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo8kins", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "21", - "label": { - "value": "\"➡ 15. \" || \"Trigger for subsequence 5.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q5A)", - "type": "VTL", - "bindingDependencies": [ - "Q5A" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q51" - ], - "response": { - "name": "Q51" - } - }, - { - "id": "ljoaqndv", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "22", - "label": { - "value": "\"➡ 16. \" || \"Trigger for question 5.2.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q5A)", - "type": "VTL", - "bindingDependencies": [ - "Q5A" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q52" - ], - "response": { - "name": "Q52" - } - }, - { - "id": "ljoavr2x", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "23", - "label": { - "value": "\"➡ 17. \" || \"Trigger for subsequence 5.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q5A)", - "type": "VTL", - "bindingDependencies": [ - "Q5A" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q53" - ], - "response": { - "name": "Q53" - } - }, - { - "id": "ljo8qap9", - "componentType": "Subsequence", - "page": "24", - "goToPage": "24", - "label": { - "value": "\"Subsequence 5.1 (has filter)\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljo8qap9-ljo9464l", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Nested filter on subsequence’s question using variable outside the subsequence\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "(Q5A) and (Q51)", - "type": "VTL", - "bindingDependencies": [ - "Q5A", - "Q51" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo8qap9", - "page": "24", - "label": { - "value": "\"Subsequence 5.1 (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo8ybrh", - "componentType": "Input", - "mandatory": false, - "page": "25", - "maxLength": 249, - "label": { - "value": "\"➡ 18. \" || \"Question 5.1.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q5A) and (Q51)", - "type": "VTL", - "bindingDependencies": [ - "Q5A", - "Q51" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo8qap9", - "page": "24", - "label": { - "value": "\"Subsequence 5.1 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q511" - ], - "response": { - "name": "Q511" - } - }, - { - "id": "ljo8zvhe", - "componentType": "Input", - "mandatory": false, - "page": "26", - "maxLength": 249, - "label": { - "value": "\"➡ 19. \" || \"Question 5.1.2 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q5A) and (Q51) and (Q52)", - "type": "VTL", - "bindingDependencies": [ - "Q5A", - "Q51", - "Q52" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo8qap9", - "page": "24", - "label": { - "value": "\"Subsequence 5.1 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q512" - ], - "response": { - "name": "Q512" - } - }, - { - "id": "ljo99ila", - "componentType": "Subsequence", - "page": "27", - "goToPage": "27", - "label": { - "value": "\"Subsequence 5.2 (has filter)\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljo99ila-ljo94kqw", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Nested filter on subsequence’s question using variable inside the subsequence\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "(Q5A) and (Q53)", - "type": "VTL", - "bindingDependencies": [ - "Q5A", - "Q53" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo99ila", - "page": "27", - "label": { - "value": "\"Subsequence 5.2 (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo9gsrg", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "28", - "label": { - "value": "\"➡ 20. \" || \"Question 5.2.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q5A) and (Q53)", - "type": "VTL", - "bindingDependencies": [ - "Q5A", - "Q53" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo99ila", - "page": "27", - "label": { - "value": "\"Subsequence 5.2 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q521" - ], - "response": { - "name": "Q521" - } - }, - { - "id": "ljo9d46d", - "componentType": "Input", - "mandatory": false, - "page": "29", - "maxLength": 249, - "label": { - "value": "\"➡ 21. \" || \"Question 5.2.2 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q5A) and (Q53) and (Q521)", - "type": "VTL", - "bindingDependencies": [ - "Q5A", - "Q53", - "Q521" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo8o1z8", - "page": "20", - "label": { - "value": "\"VI - \" || \"Sequence 5 B (has filter)\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo99ila", - "page": "27", - "label": { - "value": "\"Subsequence 5.2 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q522" - ], - "response": { - "name": "Q522" - } - }, - { - "id": "ljo9u9gn", - "componentType": "Sequence", - "page": "30", - "label": { - "value": "\"VII - \" || \"Sequence 6\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljo9u9gn-ljo9syjy", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Nested filters on consecutive subsequences\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo9u9gn", - "page": "30", - "label": { - "value": "\"VII - \" || \"Sequence 6\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljoavuyn", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "31", - "label": { - "value": "\"➡ 22. \" || \"Question 6\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo9u9gn", - "page": "30", - "label": { - "value": "\"VII - \" || \"Sequence 6\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q6" - ], - "response": { - "name": "Q6" - } - }, - { - "id": "ljoaosdm", - "componentType": "Subsequence", - "goToPage": "32", - "label": { - "value": "\"Subsequence 6.1 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q6)", - "type": "VTL", - "bindingDependencies": [ - "Q6" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo9u9gn", - "page": "30", - "label": { - "value": "\"VII - \" || \"Sequence 6\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljoaosdm", - "page": "32", - "label": { - "value": "\"Subsequence 6.1 (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljoah3jp", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "32", - "label": { - "value": "\"➡ 23. \" || \"Question 6.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q6)", - "type": "VTL", - "bindingDependencies": [ - "Q6" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo9u9gn", - "page": "30", - "label": { - "value": "\"VII - \" || \"Sequence 6\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljoaosdm", - "page": "32", - "label": { - "value": "\"Subsequence 6.1 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q61" - ], - "response": { - "name": "Q61" - } - }, - { - "id": "ljoat8bh", - "componentType": "Subsequence", - "goToPage": "33", - "label": { - "value": "\"Subsequence 6.2 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q6) and (Q61)", - "type": "VTL", - "bindingDependencies": [ - "Q6", - "Q61" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo9u9gn", - "page": "30", - "label": { - "value": "\"VII - \" || \"Sequence 6\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljoat8bh", - "page": "33", - "label": { - "value": "\"Subsequence 6.2 (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljoar6en", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "33", - "label": { - "value": "\"➡ 24. \" || \"Question 6.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q6) and (Q61)", - "type": "VTL", - "bindingDependencies": [ - "Q6", - "Q61" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo9u9gn", - "page": "30", - "label": { - "value": "\"VII - \" || \"Sequence 6\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljoat8bh", - "page": "33", - "label": { - "value": "\"Subsequence 6.2 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q62" - ], - "response": { - "name": "Q62" - } - }, - { - "id": "ljob4qjl", - "componentType": "Sequence", - "page": "34", - "label": { - "value": "\"VIII - \" || \"Sequence 7 A\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "ljob4qjl-ljoaxrwu", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Nested filters on consecutive sequences\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljob4qjl", - "page": "34", - "label": { - "value": "\"VIII - \" || \"Sequence 7 A\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljoax0e4", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "35", - "label": { - "value": "\"➡ 25. \" || \"Question 7 A\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljob4qjl", - "page": "34", - "label": { - "value": "\"VIII - \" || \"Sequence 7 A\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q7A" - ], - "response": { - "name": "Q7A" - } - }, - { - "id": "ljob0ptq", - "componentType": "Sequence", - "page": "36", - "label": { - "value": "\"IX - \" || \"Sequence 7 B (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q7A)", - "type": "VTL", - "bindingDependencies": [ - "Q7A" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljob0ptq", - "page": "36", - "label": { - "value": "\"IX - \" || \"Sequence 7 B (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljoaur3q", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "37", - "label": { - "value": "\"➡ 26. \" || \"Question 7 B\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q7A)", - "type": "VTL", - "bindingDependencies": [ - "Q7A" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljob0ptq", - "page": "36", - "label": { - "value": "\"IX - \" || \"Sequence 7 B (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q7B" - ], - "response": { - "name": "Q7B" - } - }, - { - "id": "ljoap1yc", - "componentType": "Sequence", - "page": "38", - "label": { - "value": "\"X - \" || \"Sequence 7 C (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q7A) and (Q7B)", - "type": "VTL", - "bindingDependencies": [ - "Q7A", - "Q7B" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljoap1yc", - "page": "38", - "label": { - "value": "\"X - \" || \"Sequence 7 C (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljob4ofd", - "componentType": "Input", - "mandatory": false, - "page": "39", - "maxLength": 249, - "label": { - "value": "\"➡ 27. \" || \"Question 7 C\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q7A) and (Q7B)", - "type": "VTL", - "bindingDependencies": [ - "Q7A", - "Q7B" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljoap1yc", - "page": "38", - "label": { - "value": "\"X - \" || \"Sequence 7 C (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q7C" - ], - "response": { - "name": "Q7C" - } - }, - { - "id": "COMMENT-SEQ", - "componentType": "Sequence", - "page": "40", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "40", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "COMMENT-QUESTION", - "componentType": "Textarea", - "mandatory": false, - "page": "41", - "maxLength": 2000, - "label": { - "value": "\"Avez-vous des remarques concernant l'enquête ou des commentaires ?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "40", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "COMMENT_QE" - ], - "response": { - "name": "COMMENT_QE" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "COMMENT_QE", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q21", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q22", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q31", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q32", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q33", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q34", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q35", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q36", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q41", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q42", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q43", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q44", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q5A", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q51", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q52", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q53", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q511", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q512", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q521", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q522", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q6", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q61", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q62", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q7A", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q7B", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q7C", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q1", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q21", - "expression": { - "value": "(Q1)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q1" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q22", - "expression": { - "value": "(Q1) and (Q21)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q1", - "Q21" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q31", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q32", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q33", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q34", - "expression": { - "value": "(Q31)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q31" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q35", - "expression": { - "value": "(Q31) and (Q32)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q31", - "Q32" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q36", - "expression": { - "value": "(Q31) and (Q32) and (Q33)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q31", - "Q32", - "Q33" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q41", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q42", - "expression": { - "value": "(Q41)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q41" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q43", - "expression": { - "value": "(Q41) and (Q42 = 1)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q41", - "Q42" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q44", - "expression": { - "value": "(Q41) and (Q42 = 1) and (Q43 < 5)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q41", - "Q42", - "Q43" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q5A", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q51", - "expression": { - "value": "(Q5A)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q5A" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q52", - "expression": { - "value": "(Q5A)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q5A" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q53", - "expression": { - "value": "(Q5A)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q5A" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q511", - "expression": { - "value": "(Q5A) and (Q51)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q5A", - "Q51" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q512", - "expression": { - "value": "(Q5A) and (Q51) and (Q52)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q5A", - "Q51", - "Q52" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q521", - "expression": { - "value": "(Q5A) and (Q53)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q5A", - "Q53" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q522", - "expression": { - "value": "(Q5A) and (Q53) and (Q521)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q5A", - "Q53", - "Q521" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q6", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q61", - "expression": { - "value": "(Q6)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q6" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q62", - "expression": { - "value": "(Q6) and (Q61)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q6", - "Q61" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q7A", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q7B", - "expression": { - "value": "(Q7A)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q7A" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q7C", - "expression": { - "value": "(Q7A) and (Q7B)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q7A", - "Q7B" - ], - "inFilter": "false" - } - ], - "cleaning": { - "Q1": { - "Q21": "(Q1)", - "Q22": "(Q1) and (Q21)" - }, - "Q21": { - "Q22": "(Q1) and (Q21)" - }, - "Q31": { - "Q34": "(Q31)", - "Q35": "(Q31) and (Q32)", - "Q36": "(Q31) and (Q32) and (Q33)" - }, - "Q32": { - "Q35": "(Q31) and (Q32)", - "Q36": "(Q31) and (Q32) and (Q33)" - }, - "Q33": { - "Q36": "(Q31) and (Q32) and (Q33)" - }, - "Q41": { - "Q42": "(Q41)", - "Q43": "(Q41) and (Q42 = 1)", - "Q44": "(Q41) and (Q42 = 1) and (Q43 < 5)" - }, - "Q42": { - "Q43": "(Q41) and (Q42 = 1)", - "Q44": "(Q41) and (Q42 = 1) and (Q43 < 5)" - }, - "Q43": { - "Q44": "(Q41) and (Q42 = 1) and (Q43 < 5)" - }, - "Q5A": { - "Q51": "(Q5A)", - "Q52": "(Q5A)", - "Q53": "(Q5A)", - "Q511": "(Q5A) and (Q51)", - "Q512": "(Q5A) and (Q51) and (Q52)", - "Q521": "(Q5A) and (Q53)", - "Q522": "(Q5A) and (Q53) and (Q521)" - }, - "Q51": { - "Q511": "(Q5A) and (Q51)", - "Q512": "(Q5A) and (Q51) and (Q52)" - }, - "Q52": { - "Q512": "(Q5A) and (Q51) and (Q52)" - }, - "Q53": { - "Q521": "(Q5A) and (Q53)", - "Q522": "(Q5A) and (Q53) and (Q521)" - }, - "Q521": { - "Q522": "(Q5A) and (Q53) and (Q521)" - }, - "Q6": { - "Q61": "(Q6)", - "Q62": "(Q6) and (Q61)" - }, - "Q61": { - "Q62": "(Q6) and (Q61)" - }, - "Q7A": { - "Q7B": "(Q7A)", - "Q7C": "(Q7A) and (Q7B)" - }, - "Q7B": { - "Q7C": "(Q7A) and (Q7B)" - } - }, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-filters-simple.json b/eno-core/src/test/resources/integration/lunatic/lunatic-filters-simple.json deleted file mode 100644 index 1396817b5..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-filters-simple.json +++ /dev/null @@ -1,613 +0,0 @@ -{ - "id": "ljo0ea8h", - "modele": "ENOFILTERS1", - "enoCoreVersion": "2.4.1-pairwise", - "lunaticModelVersion": "2.3.2-rc7", - "generatingDate": "12-07-2023 14:14:31", - "missing": false, - "pagination": "question", - "maxPage": "12", - "label": { - "value": "Eno - Simple filters", - "type": "VTL|MD" - }, - "components": [ - { - "id": "ljo0e2tu", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo0e2tu", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo08kmk", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "2", - "label": { - "value": "\"➡ \" || \"Question for sequence filter\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo0e2tu", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q11" - ], - "response": { - "name": "Q11" - } - }, - { - "id": "ljo0icgy", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "3", - "label": { - "value": "\"➡ \" || \"Question for subsequence filter\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo0e2tu", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q12" - ], - "response": { - "name": "Q12" - } - }, - { - "id": "ljo0rm74", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "4", - "label": { - "value": "\"➡ \" || \"Question for question filter\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo0e2tu", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q13" - ], - "response": { - "name": "Q13" - } - }, - { - "id": "ljo0giwk", - "componentType": "Sequence", - "page": "5", - "label": { - "value": "\"II - \" || \"Sequence 2 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q11)", - "type": "VTL", - "bindingDependencies": [ - "Q11" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo0giwk", - "page": "5", - "label": { - "value": "\"II - \" || \"Sequence 2 (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo0omkg", - "componentType": "InputNumber", - "mandatory": false, - "page": "6", - "min": 1, - "max": 10, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Question of sequence 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q11)", - "type": "VTL", - "bindingDependencies": [ - "Q11" - ] - }, - "controls": [ - { - "id": "ljo0omkg-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(Q2)) and (1>Q2 or 10Q2)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ljo0giwk", - "page": "5", - "label": { - "value": "\"II - \" || \"Sequence 2 (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2" - ], - "response": { - "name": "Q2" - } - }, - { - "id": "ljo0gjmj", - "componentType": "Sequence", - "page": "7", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo0gjmj", - "page": "7", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo03kpn", - "componentType": "Subsequence", - "goToPage": "8", - "label": { - "value": "\"Subsequence (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q12)", - "type": "VTL", - "bindingDependencies": [ - "Q12" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo0gjmj", - "page": "7", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo03kpn", - "page": "8", - "label": { - "value": "\"Subsequence (has filter)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo066jx", - "componentType": "InputNumber", - "mandatory": false, - "page": "8", - "min": 1, - "max": 2, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Question of sequence 3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q12)", - "type": "VTL", - "bindingDependencies": [ - "Q12" - ] - }, - "controls": [ - { - "id": "ljo066jx-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(Q3)) and (1>Q3 or 2Q3)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ljo0gjmj", - "page": "7", - "label": { - "value": "\"III - \" || \"Sequence 3\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ljo03kpn", - "page": "8", - "label": { - "value": "\"Subsequence (has filter)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q3" - ], - "response": { - "name": "Q3" - } - }, - { - "id": "ljo0r39p", - "componentType": "Sequence", - "page": "9", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ljo0r39p", - "page": "9", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ljo0idro", - "componentType": "Input", - "mandatory": false, - "page": "10", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question of sequence 4 (has filter)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(Q13)", - "type": "VTL", - "bindingDependencies": [ - "Q13" - ] - }, - "hierarchy": { - "sequence": { - "id": "ljo0r39p", - "page": "9", - "label": { - "value": "\"IV - \" || \"Sequence 4\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q4" - ], - "response": { - "name": "Q4" - } - }, - { - "id": "COMMENT-SEQ", - "componentType": "Sequence", - "page": "11", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "11", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "COMMENT-QUESTION", - "componentType": "Textarea", - "mandatory": false, - "page": "12", - "maxLength": 2000, - "label": { - "value": "\"Avez-vous des remarques concernant l'enquête ou des commentaires ?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "COMMENT-SEQ", - "page": "11", - "label": { - "value": "\"Commentaire\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "COMMENT_QE" - ], - "response": { - "name": "COMMENT_QE" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "COMMENT_QE", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q11", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q12", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q13", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q3", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q4", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q11", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q12", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q13", - "expression": { - "value": "true", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q2", - "expression": { - "value": "(Q11)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q11" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q3", - "expression": { - "value": "(Q12)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q12" - ], - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_Q4", - "expression": { - "value": "(Q13)", - "type": "VTL" - }, - "bindingDependencies": [ - "Q13" - ], - "inFilter": "false" - } - ], - "cleaning": { - "Q11": { - "Q2": "(Q11)" - }, - "Q12": { - "Q3": "(Q12)" - }, - "Q13": { - "Q4": "(Q13)" - } - }, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-identification-question.json b/eno-core/src/test/resources/integration/lunatic/lunatic-identification-question.json deleted file mode 100644 index 5e5891ed3..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-identification-question.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "id": "lmyoceix", - "modele": "ENOSIMPLE", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "25-09-2023 11:41:24", - "missing": false, - "pagination": "question", - "maxPage": "4", - "label": { - "value": "Eno - Simple questionnaire", - "type": "VTL|MD" - }, - "components": [ - { - "id": "BEGIN-QUESTION-SEQ", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"Identification\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "BEGIN-QUESTION-SEQ", - "page": "1", - "label": { - "value": "\"Identification\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "BEGIN-QUESTION-SUBSEQ", - "componentType": "Subsequence", - "goToPage": "2", - "label": { - "value": "\"Identification de votre \" || cast(LABEL_UNITE_ENQUETEE,string)", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "BEGIN-QUESTION-SEQ", - "page": "1", - "label": { - "value": "\"Identification\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "BEGIN-QUESTION-SUBSEQ", - "page": "2", - "label": { - "value": "\"Identification de votre \" || cast(LABEL_UNITE_ENQUETEE,string)", - "type": "VTL|MD" - } - } - } - }, - { - "id": "COMMENT-UE-QUESTION", - "componentType": "Textarea", - "mandatory": false, - "page": "2", - "maxLength": 2000, - "label": { - "value": "\"Remarque, commentaire sur un changement concernant votre \" || cast(LABEL_UNITE_ENQUETEE,string) || \" :\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "BEGIN-QUESTION-SEQ", - "page": "1", - "label": { - "value": "\"Identification\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "BEGIN-QUESTION-SUBSEQ", - "page": "2", - "label": { - "value": "\"Identification de votre \" || cast(LABEL_UNITE_ENQUETEE,string)", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "LABEL_UNITE_ENQUETEE", - "COMMENT_UE" - ], - "response": { - "name": "COMMENT_UE" - } - }, - { - "id": "lmynuv39", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmynuv39", - "page": "3", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmyo3e0y", - "componentType": "Input", - "mandatory": false, - "page": "4", - "maxLength": 249, - "label": { - "value": "\"➡ 1. \" || \"Unique question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmynuv39", - "page": "3", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "COMMENT_UE", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "EXTERNAL", - "name": "LABEL_UNITE_ENQUETEE", - "value": null - }, - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-labels.json b/eno-core/src/test/resources/integration/lunatic/lunatic-labels.json deleted file mode 100644 index 562e403ed..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-labels.json +++ /dev/null @@ -1,643 +0,0 @@ -{ - "id": "lkgwbz1e", - "modele": "ENOLABELS", - "enoCoreVersion": "2.4.1-pairwise", - "lunaticModelVersion": "2.3.2-rc7", - "generatingDate": "26-07-2023 08:45:27", - "missing": false, - "pagination": "question", - "maxPage": "10", - "label": { - "value": "Eno - Labels", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lkgwb7kj", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Static sequence name\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lkgwb7kj-lkgw4v7r", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Static declaration on sequence\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lkgwb7kj", - "page": "1", - "label": { - "value": "\"I - \" || \"Static sequence name\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lkgw4ll2", - "componentType": "Subsequence", - "page": "2", - "goToPage": "2", - "label": { - "value": "\"Static subsequence name\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lkgw4ll2-lkgw5f3l", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Static declaration on subsequence\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lkgwb7kj", - "page": "1", - "label": { - "value": "\"I - \" || \"Static sequence name\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "lkgw4ll2", - "page": "2", - "label": { - "value": "\"Static subsequence name\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lkgw83gj", - "componentType": "Input", - "mandatory": false, - "page": "3", - "maxLength": 10, - "label": { - "value": "\"➡ \" || \"Static question name\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lkgwi1d3-SI", - "declarationType": "STATEMENT", - "position": "BEFORE_QUESTION_TEXT", - "label": { - "value": "\"Static declaration before the question.\"", - "type": "VTL|MD" - } - }, - { - "id": "lkgw83gj-lkgwbcj4", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Static declaration after the question.\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lkgw83gj-CI-0", - "typeOfControl": "CONSISTENCY", - "criticality": "WARN", - "control": { - "value": "not(true)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Static control message\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lkgwb7kj", - "page": "1", - "label": { - "value": "\"I - \" || \"Static sequence name\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "lkgw4ll2", - "page": "2", - "label": { - "value": "\"Static subsequence name\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - }, - { - "id": "lkid1wnz", - "componentType": "Radio", - "mandatory": false, - "page": "4", - "label": { - "value": "\"➡ \" || \"Unique choice question 1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lkgwb7kj", - "page": "1", - "label": { - "value": "\"I - \" || \"Static sequence name\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "lkgw4ll2", - "page": "2", - "label": { - "value": "\"Static subsequence name\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "UCQ1" - ], - "options": [ - { - "value": "STATIC1", - "label": { - "value": "\"Static code 1\"", - "type": "VTL|MD" - } - }, - { - "value": "STATIC2", - "label": { - "value": "\"Static code 2\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "UCQ1" - } - }, - { - "id": "lkij6vip", - "componentType": "CheckboxGroup", - "page": "5", - "label": { - "value": "\"➡ \" || \"Multiple choice question 1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lkgwb7kj", - "page": "1", - "label": { - "value": "\"I - \" || \"Static sequence name\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "lkgw4ll2", - "page": "2", - "label": { - "value": "\"Static subsequence name\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MCQ11", - "MCQ12" - ], - "responses": [ - { - "id": "lkij6vip-QOP-lkij837f", - "label": { - "value": "\"Static code 1\"", - "type": "VTL|MD" - }, - "response": { - "name": "MCQ11" - } - }, - { - "id": "lkij6vip-QOP-lkij9tch", - "label": { - "value": "\"Static code 2\"", - "type": "VTL|MD" - }, - "response": { - "name": "MCQ12" - } - } - ] - }, - { - "id": "lkgw93vs", - "componentType": "Sequence", - "page": "6", - "label": { - "value": "\"II - \" || \"Dynamic sequence name: \" || Q1", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lkgw93vs-lkgwbmbn", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Dynamic declaration on sequence: \" || Q1", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lkgw93vs", - "page": "6", - "label": { - "value": "\"II - \" || \"Dynamic sequence name: \" || Q1", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ] - }, - { - "id": "lkgw9h1r", - "componentType": "Subsequence", - "page": "7", - "goToPage": "7", - "label": { - "value": "\"Dynamic subsequence name: \" || Q1", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lkgw9h1r-lkgwhgt4", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Dynamic declaration on subsequence: \" || Q1", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lkgw93vs", - "page": "6", - "label": { - "value": "\"II - \" || \"Dynamic sequence name: \" || Q1", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "lkgw9h1r", - "page": "7", - "label": { - "value": "\"Dynamic subsequence name: \" || Q1", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ] - }, - { - "id": "lkgwt260", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "8", - "label": { - "value": "\"➡ \" || \"Dynamic question name: \" || Q1", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lkgwe557-SI", - "declarationType": "STATEMENT", - "position": "BEFORE_QUESTION_TEXT", - "label": { - "value": "\"Dynamic declaration before the question: \" || Q1", - "type": "VTL|MD" - } - }, - { - "id": "lkgwt260-lkgwozcf", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Dynamic declaration after the question: \" || Q1", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lkgwt260-CI-0", - "typeOfControl": "CONSISTENCY", - "criticality": "WARN", - "control": { - "value": "not(true)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Dynamic control message: \" || Q1 ", - "type": "VTL|MD" - }, - "bindingDependencies": [ - "Q1" - ] - } - ], - "hierarchy": { - "sequence": { - "id": "lkgw93vs", - "page": "6", - "label": { - "value": "\"II - \" || \"Dynamic sequence name: \" || Q1", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "lkgw9h1r", - "page": "7", - "label": { - "value": "\"Dynamic subsequence name: \" || Q1", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1", - "Q2" - ], - "response": { - "name": "Q2" - } - }, - { - "id": "lkid7ahs", - "componentType": "Radio", - "mandatory": false, - "page": "9", - "label": { - "value": "\"➡ \" || \"Unique choice question 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lkgw93vs", - "page": "6", - "label": { - "value": "\"II - \" || \"Dynamic sequence name: \" || Q1", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "lkgw9h1r", - "page": "7", - "label": { - "value": "\"Dynamic subsequence name: \" || Q1", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1", - "UCQ2" - ], - "options": [ - { - "value": "DYNAMIC1", - "label": { - "value": "\"Dynamic code 1: \" || Q1", - "type": "VTL|MD" - } - }, - { - "value": "DYNAMIC2", - "label": { - "value": "\"Dynamic code 2: \" || Q1", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "UCQ2" - } - }, - { - "id": "lkijhbsn", - "componentType": "CheckboxGroup", - "page": "10", - "label": { - "value": "\"➡ \" || \"Multiple choice question 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lkgw93vs", - "page": "6", - "label": { - "value": "\"II - \" || \"Dynamic sequence name: \" || Q1", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "lkgw9h1r", - "page": "7", - "label": { - "value": "\"Dynamic subsequence name: \" || Q1", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1", - "MCQ21", - "MCQ22" - ], - "responses": [ - { - "id": "lkijhbsn-QOP-lkij77ci", - "label": { - "value": "\"Dynamic code 1: \" || Q1", - "type": "VTL|MD" - }, - "response": { - "name": "MCQ21" - } - }, - { - "id": "lkijhbsn-QOP-lkijke8q", - "label": { - "value": "\"Dynamic code 2: \" || Q1", - "type": "VTL|MD" - }, - "response": { - "name": "MCQ22" - } - } - ] - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "UCQ1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ11", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ12", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "UCQ2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ21", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ22", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-loop-except.json b/eno-core/src/test/resources/integration/lunatic/lunatic-loop-except.json deleted file mode 100644 index 583d32503..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-loop-except.json +++ /dev/null @@ -1,401 +0,0 @@ -{ - "id": "lmyvhgys", - "modele": "ENOLOOPEXCEPT", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "25-09-2023 13:10:05", - "missing": false, - "pagination": "question", - "maxPage": "6", - "label": { - "value": "Eno - Loop with 'except'", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lmyvwhde", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmyvwhde", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmyvnjlh", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmyvwhde", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - }, - { - "id": "lmyvqn54", - "componentType": "Loop", - "page": "3", - "depth": 1, - "paginatedLoop": false, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "AGE" - ], - "lines": { - "min": { - "value": "1", - "type": "VTL" - }, - "max": { - "value": "5", - "type": "VTL" - } - }, - "components": [ - { - "id": "lmyvhcbn", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence with loop\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmyvhcbn", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence with loop\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmyvkhm5", - "componentType": "InputNumber", - "mandatory": true, - "page": "3", - "min": 0, - "max": 120, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Question 2: How old are you?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lmyvkhm5-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(AGE)) and (0>AGE or 120AGE)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lmyvhcbn", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence with loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "AGE" - ], - "unit": "ans", - "response": { - "name": "AGE" - } - } - ] - }, - { - "id": "lmywa9tg", - "componentType": "Loop", - "page": "4", - "maxPage": "2", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "AGE", - "Q3" - ], - "loopDependencies": [ - "AGE" - ], - "components": [ - { - "id": "lmyvx1tz", - "componentType": "Sequence", - "page": "4.1", - "label": { - "value": "\"III - \" || \"Sequence with linked loop\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(not(nvl(AGE, 0) < 18))", - "type": "VTL", - "bindingDependencies": [ - "AGE" - ] - }, - "hierarchy": { - "sequence": { - "id": "lmyvx1tz", - "page": "4.1", - "label": { - "value": "\"III - \" || \"Sequence with linked loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "AGE" - ] - }, - { - "id": "lmyvnrgq", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "4.2", - "label": { - "value": "\"➡ \" || \"Question 3: only adults are asked (age: \" || cast(AGE, string) || \")\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "(not(nvl(AGE, 0) < 18))", - "type": "VTL", - "bindingDependencies": [ - "AGE" - ] - }, - "hierarchy": { - "sequence": { - "id": "lmyvx1tz", - "page": "4.1", - "label": { - "value": "\"III - \" || \"Sequence with linked loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "AGE", - "Q3" - ], - "response": { - "name": "Q3" - } - } - ], - "iterations": { - "value": "count(AGE)", - "type": "VTL" - } - }, - { - "id": "lmyw4apf", - "componentType": "Sequence", - "page": "5", - "label": { - "value": "\"IV - \" || \"Last sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmyw4apf", - "page": "5", - "label": { - "value": "\"IV - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmyw3vc0", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "6", - "label": { - "value": "\"➡ \" || \"Last question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmyw4apf", - "page": "5", - "label": { - "value": "\"IV - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q_LAST" - ], - "response": { - "name": "Q_LAST" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "AGE", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q3", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q_LAST", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": { - "AGE": { - "Q3": "(not(nvl(AGE, 0) < 18))" - } - }, - "resizing": { - "AGE": { - "size": "count(AGE)", - "variables": [ - "Q3" - ] - } - } -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-loops-extended-sequence.json b/eno-core/src/test/resources/integration/lunatic/lunatic-loops-extended-sequence.json deleted file mode 100644 index e28f6c04d..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-loops-extended-sequence.json +++ /dev/null @@ -1,627 +0,0 @@ -{ - "id": "ll3vc5g5", - "modele": "ENOLOOPS3", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "16-08-2023 16:40:15", - "missing": false, - "pagination": "question", - "maxPage": "4", - "label": { - "value": "Eno - Extended loops (sequence)", - "type": "VTL|MD" - }, - "components": [ - { - "id": "ll3vo4wh", - "componentType": "Loop", - "page": "1", - "depth": 1, - "paginatedLoop": false, - "label": { - "value": "\"Add\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "Q1", - "Q2", - "Q3" - ], - "lines": { - "min": { - "value": "1", - "type": "VTL" - }, - "max": { - "value": "5", - "type": "VTL" - } - }, - "components": [ - { - "id": "ll3voupu", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1 (start of loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3voupu", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1 (start of loop)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3vmxdk", - "componentType": "Input", - "mandatory": false, - "page": "1", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3voupu", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1 (start of loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - }, - { - "id": "ll3vzeuu", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vzeuu", - "page": "1", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3vmtwc", - "componentType": "Input", - "mandatory": false, - "page": "1", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vzeuu", - "page": "1", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2" - ], - "response": { - "name": "Q2" - } - }, - { - "id": "ll3vxw30", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"III - \" || \"Sequence 3 (end of loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vxw30", - "page": "1", - "label": { - "value": "\"III - \" || \"Sequence 3 (end of loop)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3vwe72", - "componentType": "Input", - "mandatory": false, - "page": "1", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vxw30", - "page": "1", - "label": { - "value": "\"III - \" || \"Sequence 3 (end of loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q3" - ], - "response": { - "name": "Q3" - } - } - ] - }, - { - "id": "ll3vwi5e", - "componentType": "Loop", - "page": "2", - "maxPage": "6", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "Q4", - "Q5", - "Q6" - ], - "loopDependencies": [ - "Q1", - "Q2", - "Q3" - ], - "components": [ - { - "id": "ll3vyvgg", - "componentType": "Sequence", - "page": "2.1", - "label": { - "value": "\"IV - \" || \"Sequence 4 (start of linked loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vyvgg", - "page": "2.1", - "label": { - "value": "\"IV - \" || \"Sequence 4 (start of linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1", - "Q2", - "Q3" - ] - }, - { - "id": "ll3vutdx", - "componentType": "Input", - "mandatory": false, - "page": "2.2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 4\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vyvgg", - "page": "2.1", - "label": { - "value": "\"IV - \" || \"Sequence 4 (start of linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q4", - "Q1", - "Q2", - "Q3" - ], - "response": { - "name": "Q4" - } - }, - { - "id": "ll3vk7v3", - "componentType": "Sequence", - "page": "2.3", - "label": { - "value": "\"V - \" || \"Sequence 5\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vk7v3", - "page": "2.3", - "label": { - "value": "\"V - \" || \"Sequence 5\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1", - "Q2", - "Q3" - ] - }, - { - "id": "ll3w31im", - "componentType": "Input", - "mandatory": false, - "page": "2.4", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 5\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vk7v3", - "page": "2.3", - "label": { - "value": "\"V - \" || \"Sequence 5\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q5", - "Q1", - "Q2", - "Q3" - ], - "response": { - "name": "Q5" - } - }, - { - "id": "ll3w45z4", - "componentType": "Sequence", - "page": "2.5", - "label": { - "value": "\"VI - \" || \"Sequence 6 (end of linked loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w45z4", - "page": "2.5", - "label": { - "value": "\"VI - \" || \"Sequence 6 (end of linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1", - "Q2", - "Q3" - ] - }, - { - "id": "ll3vkt4b", - "componentType": "Input", - "mandatory": false, - "page": "2.6", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 6\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w45z4", - "page": "2.5", - "label": { - "value": "\"VI - \" || \"Sequence 6 (end of linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q6", - "Q1", - "Q2", - "Q3" - ], - "response": { - "name": "Q6" - } - } - ], - "iterations": { - "value": "count(Q1)", - "type": "VTL" - } - }, - { - "id": "ll3vqv42", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"VII - \" || \"Last sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vqv42", - "page": "3", - "label": { - "value": "\"VII - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3w8u8z", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "4", - "label": { - "value": "\"➡ \" || \"Last question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3vqv42", - "page": "3", - "label": { - "value": "\"VII - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q_LAST" - ], - "response": { - "name": "Q_LAST" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q2", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q3", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q4", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q5", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q6", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q_LAST", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": { - "Q1": { - "size": "count(Q1)", - "variables": [ - "Q4", - "Q5", - "Q6" - ] - } - } -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-loops-extended-subsequence.json b/eno-core/src/test/resources/integration/lunatic/lunatic-loops-extended-subsequence.json deleted file mode 100644 index 972430a28..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-loops-extended-subsequence.json +++ /dev/null @@ -1,792 +0,0 @@ -{ - "id": "ll3w09mu", - "modele": "ENOLOOPS4", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "16-08-2023 16:40:47", - "missing": false, - "pagination": "question", - "maxPage": "6", - "label": { - "value": "Eno - Extended loops (subsequence)", - "type": "VTL|MD" - }, - "components": [ - { - "id": "ll3w6a3q", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w6a3q", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3w9pr9", - "componentType": "Loop", - "page": "2", - "depth": 1, - "paginatedLoop": false, - "label": { - "value": "\"Add\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w6a3q", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q11", - "Q12", - "Q13" - ], - "lines": { - "min": { - "value": "1", - "type": "VTL" - }, - "max": { - "value": "5", - "type": "VTL" - } - }, - "components": [ - { - "id": "ll3vwjlm", - "componentType": "Subsequence", - "page": "2", - "goToPage": "2", - "label": { - "value": "\"Subsequence 1.1 (start of loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w6a3q", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3vwjlm", - "page": "2", - "label": { - "value": "\"Subsequence 1.1 (start of loop)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3wb6rd", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w6a3q", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3vwjlm", - "page": "2", - "label": { - "value": "\"Subsequence 1.1 (start of loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q11" - ], - "response": { - "name": "Q11" - } - }, - { - "id": "ll3w55f0", - "componentType": "Subsequence", - "page": "2", - "goToPage": "2", - "label": { - "value": "\"Subsequence 1.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w6a3q", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3w55f0", - "page": "2", - "label": { - "value": "\"Subsequence 1.2\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3w2073", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w6a3q", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3w55f0", - "page": "2", - "label": { - "value": "\"Subsequence 1.2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q12" - ], - "response": { - "name": "Q12" - } - }, - { - "id": "ll3wafpy", - "componentType": "Subsequence", - "page": "2", - "goToPage": "2", - "label": { - "value": "\"Subsequence 1.3 (end of loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w6a3q", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3wafpy", - "page": "2", - "label": { - "value": "\"Subsequence 1.3 (end of loop)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3w81c7", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1.3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w6a3q", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3wafpy", - "page": "2", - "label": { - "value": "\"Subsequence 1.3 (end of loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q13" - ], - "response": { - "name": "Q13" - } - } - ] - }, - { - "id": "ll3w4u7i", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w4u7i", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3wh26k", - "componentType": "Loop", - "page": "4", - "maxPage": "3", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w4u7i", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q21", - "Q22", - "Q23" - ], - "loopDependencies": [ - "Q11", - "Q12", - "Q13" - ], - "components": [ - { - "id": "ll3wcbxn", - "componentType": "Subsequence", - "goToPage": "4.1", - "label": { - "value": "\"Subsequence 2.1 (start of linked loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w4u7i", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3wcbxn", - "page": "4.1", - "label": { - "value": "\"Subsequence 2.1 (start of linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q11", - "Q12", - "Q13" - ] - }, - { - "id": "ll3w2rzp", - "componentType": "Input", - "mandatory": false, - "page": "4.1", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 2.1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w4u7i", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3wcbxn", - "page": "4.1", - "label": { - "value": "\"Subsequence 2.1 (start of linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q21", - "Q11", - "Q12", - "Q13" - ], - "response": { - "name": "Q21" - } - }, - { - "id": "ll3wd2sp", - "componentType": "Subsequence", - "goToPage": "4.2", - "label": { - "value": "\"Subsequence 2.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w4u7i", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3wd2sp", - "page": "4.2", - "label": { - "value": "\"Subsequence 2.2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q11", - "Q12", - "Q13" - ] - }, - { - "id": "ll3w6rmq", - "componentType": "Input", - "mandatory": false, - "page": "4.2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 2.2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w4u7i", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3wd2sp", - "page": "4.2", - "label": { - "value": "\"Subsequence 2.2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q22", - "Q11", - "Q12", - "Q13" - ], - "response": { - "name": "Q22" - } - }, - { - "id": "ll3w66ad", - "componentType": "Subsequence", - "goToPage": "4.3", - "label": { - "value": "\"Subsequence 2.3 (end of linked loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w4u7i", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3w66ad", - "page": "4.3", - "label": { - "value": "\"Subsequence 2.3 (end of linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q11", - "Q12", - "Q13" - ] - }, - { - "id": "ll3w230p", - "componentType": "Input", - "mandatory": false, - "page": "4.3", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 2.3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w4u7i", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll3w66ad", - "page": "4.3", - "label": { - "value": "\"Subsequence 2.3 (end of linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q23", - "Q11", - "Q12", - "Q13" - ], - "response": { - "name": "Q23" - } - } - ], - "iterations": { - "value": "count(Q11)", - "type": "VTL" - } - }, - { - "id": "ll3w98b8", - "componentType": "Sequence", - "page": "5", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w98b8", - "page": "5", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll3wf7iv", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "6", - "label": { - "value": "\"➡ \" || \"Last question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll3w98b8", - "page": "5", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q_LAST" - ], - "response": { - "name": "Q_LAST" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "Q11", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q12", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q13", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q21", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q22", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q23", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q_LAST", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": { - "Q11": { - "size": "count(Q11)", - "variables": [ - "Q21", - "Q22", - "Q23" - ] - } - } -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-loops-sequence.json b/eno-core/src/test/resources/integration/lunatic/lunatic-loops-sequence.json deleted file mode 100644 index c11b2eef6..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-loops-sequence.json +++ /dev/null @@ -1,698 +0,0 @@ -{ - "id": "ll11itij", - "modele": "ENOLOOPS1", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "16-08-2023 16:40:57", - "missing": false, - "pagination": "question", - "maxPage": "9", - "label": { - "value": "Eno - Loops (sequence)", - "type": "VTL|MD" - }, - "components": [ - { - "id": "ll1230bz", - "componentType": "Loop", - "page": "1", - "depth": 1, - "paginatedLoop": false, - "label": { - "value": "\"Add\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "Q1A" - ], - "lines": { - "min": { - "value": "1", - "type": "VTL" - }, - "max": { - "value": "3", - "type": "VTL" - } - }, - "components": [ - { - "id": "ll11fy43", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1 A (has loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11fy43", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1 A (has loop)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll11rugt", - "componentType": "Input", - "mandatory": false, - "page": "1", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1 A\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11fy43", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1 A (has loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1A" - ], - "response": { - "name": "Q1A" - } - } - ] - }, - { - "id": "ll11uka2", - "componentType": "Loop", - "page": "2", - "maxPage": "2", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "Q1B" - ], - "loopDependencies": [ - "Q1A" - ], - "components": [ - { - "id": "ll11krll", - "componentType": "Sequence", - "page": "2.1", - "label": { - "value": "\"II - \" || \"Sequence 1 B (has linked loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11krll", - "page": "2.1", - "label": { - "value": "\"II - \" || \"Sequence 1 B (has linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1A" - ] - }, - { - "id": "ll11q3fh", - "componentType": "Input", - "mandatory": false, - "page": "2.2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1 B\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11krll", - "page": "2.1", - "label": { - "value": "\"II - \" || \"Sequence 1 B (has linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1B", - "Q1A" - ], - "response": { - "name": "Q1B" - } - } - ], - "iterations": { - "value": "count(Q1A)", - "type": "VTL" - } - }, - { - "id": "ll11mavg", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"III - \" || \"Sequence 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11mavg", - "page": "3", - "label": { - "value": "\"III - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll11kkvp", - "componentType": "InputNumber", - "mandatory": false, - "page": "4", - "min": 1, - "max": 2, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Minimum occurrences of next sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "ll11kkvp-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(MIN_OCC)) and (1>MIN_OCC or 2MIN_OCC)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ll11mavg", - "page": "3", - "label": { - "value": "\"III - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MIN_OCC" - ], - "response": { - "name": "MIN_OCC" - } - }, - { - "id": "ll11y58s", - "componentType": "InputNumber", - "mandatory": false, - "page": "5", - "min": 3, - "max": 5, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Maximum occurrences of next sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "ll11y58s-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(MAX_OCC)) and (3>MAX_OCC or 5MAX_OCC)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ll11mavg", - "page": "3", - "label": { - "value": "\"III - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MAX_OCC" - ], - "response": { - "name": "MAX_OCC" - } - }, - { - "id": "ll127c65", - "componentType": "Loop", - "page": "6", - "depth": 1, - "paginatedLoop": false, - "label": { - "value": "\"Add\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "MIN_OCC", - "MAX_OCC", - "Q3A" - ], - "loopDependencies": [ - "MIN_OCC", - "MAX_OCC" - ], - "lines": { - "min": { - "value": "nvl( MIN_OCC , 1)", - "type": "VTL" - }, - "max": { - "value": "nvl( MAX_OCC , 1)", - "type": "VTL" - } - }, - "components": [ - { - "id": "ll1239fr", - "componentType": "Sequence", - "page": "6", - "label": { - "value": "\"IV - \" || \"Sequence 3 A (has loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll1239fr", - "page": "6", - "label": { - "value": "\"IV - \" || \"Sequence 3 A (has loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MIN_OCC", - "MAX_OCC" - ] - }, - { - "id": "ll11mui1", - "componentType": "Input", - "mandatory": false, - "page": "6", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 3 A\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll1239fr", - "page": "6", - "label": { - "value": "\"IV - \" || \"Sequence 3 A (has loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q3A", - "MIN_OCC", - "MAX_OCC" - ], - "response": { - "name": "Q3A" - } - } - ] - }, - { - "id": "ll12fcag", - "componentType": "Loop", - "page": "7", - "maxPage": "2", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "QUESTION3B" - ], - "loopDependencies": [ - "Q3A" - ], - "components": [ - { - "id": "ll11on2a", - "componentType": "Sequence", - "page": "7.1", - "label": { - "value": "\"V - \" || \"Sequence 3 B (has linked loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11on2a", - "page": "7.1", - "label": { - "value": "\"V - \" || \"Sequence 3 B (has linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q3A" - ] - }, - { - "id": "ll11wnay", - "componentType": "Input", - "mandatory": false, - "page": "7.2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 3 B\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11on2a", - "page": "7.1", - "label": { - "value": "\"V - \" || \"Sequence 3 B (has linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "QUESTION3B", - "Q3A" - ], - "response": { - "name": "QUESTION3B" - } - } - ], - "iterations": { - "value": "count(Q3A)", - "type": "VTL" - } - }, - { - "id": "ll11skaw", - "componentType": "Sequence", - "page": "8", - "label": { - "value": "\"VI - \" || \"Last sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11skaw", - "page": "8", - "label": { - "value": "\"VI - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll1209zf", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "9", - "label": { - "value": "\"➡ \" || \"Last question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll11skaw", - "page": "8", - "label": { - "value": "\"VI - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q_LAST" - ], - "response": { - "name": "Q_LAST" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "Q1A", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q1B", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "MIN_OCC", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MAX_OCC", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q3A", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "QUESTION3B", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q_LAST", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": { - "Q1A": { - "size": "count(Q1A)", - "variables": [ - "Q1B" - ] - }, - "MIN_OCC": { - "size": "nvl( MAX_OCC , 1)", - "variables": [ - "Q3A" - ] - }, - "Q3A": { - "size": "count(Q3A)", - "variables": [ - "QUESTION3B" - ] - } - } -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-loops-subsequence.json b/eno-core/src/test/resources/integration/lunatic/lunatic-loops-subsequence.json deleted file mode 100644 index 857dd3c25..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-loops-subsequence.json +++ /dev/null @@ -1,827 +0,0 @@ -{ - "id": "ll12rfzh", - "modele": "ENOLOOPS2", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "16-08-2023 16:41:44", - "missing": false, - "pagination": "question", - "maxPage": "10", - "label": { - "value": "Eno - Loops (subsequence)", - "type": "VTL|MD" - }, - "components": [ - { - "id": "ll12hfiw", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12hfiw", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll1337oz", - "componentType": "Loop", - "page": "2", - "depth": 1, - "paginatedLoop": false, - "label": { - "value": "\"Add\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12hfiw", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1A" - ], - "lines": { - "min": { - "value": "1", - "type": "VTL" - }, - "max": { - "value": "3", - "type": "VTL" - } - }, - "components": [ - { - "id": "ll12p47p", - "componentType": "Subsequence", - "page": "2", - "goToPage": "2", - "label": { - "value": "\"Subsequence 1 A (has loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12hfiw", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll12p47p", - "page": "2", - "label": { - "value": "\"Subsequence 1 A (has loop)\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll12tev4", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1 A\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12hfiw", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll12p47p", - "page": "2", - "label": { - "value": "\"Subsequence 1 A (has loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1A" - ], - "response": { - "name": "Q1A" - } - } - ] - }, - { - "id": "ll12na4a", - "componentType": "Loop", - "page": "3", - "maxPage": "1", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12hfiw", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1B" - ], - "loopDependencies": [ - "Q1A" - ], - "components": [ - { - "id": "ll12jtu0", - "componentType": "Subsequence", - "goToPage": "3.1", - "label": { - "value": "\"Subsequence 1 B (has linked loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12hfiw", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll12jtu0", - "page": "3.1", - "label": { - "value": "\"Subsequence 1 B (has linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1A" - ] - }, - { - "id": "ll12y487", - "componentType": "Input", - "mandatory": false, - "page": "3.1", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 1 B\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12hfiw", - "page": "1", - "label": { - "value": "\"I - \" || \"Sequence 1\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll12jtu0", - "page": "3.1", - "label": { - "value": "\"Subsequence 1 B (has linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1B", - "Q1A" - ], - "response": { - "name": "Q1B" - } - } - ], - "iterations": { - "value": "count(Q1A)", - "type": "VTL" - } - }, - { - "id": "ll12reor", - "componentType": "Sequence", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll12wyja", - "componentType": "InputNumber", - "mandatory": false, - "page": "5", - "min": 1, - "max": 2, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Minimum occurrences of next subsequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "ll12wyja-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(MIN_OCC)) and (1>MIN_OCC or 2MIN_OCC)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MIN_OCC" - ], - "response": { - "name": "MIN_OCC" - } - }, - { - "id": "ll12u8jr", - "componentType": "InputNumber", - "mandatory": false, - "page": "6", - "min": 3, - "max": 5, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Maximum occurrences of next subsequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "ll12u8jr-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(MAX_OCC)) and (3>MAX_OCC or 5MAX_OCC)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MAX_OCC" - ], - "response": { - "name": "MAX_OCC" - } - }, - { - "id": "ll12vyk2", - "componentType": "Loop", - "page": "7", - "depth": 1, - "paginatedLoop": false, - "label": { - "value": "\"Add\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MIN_OCC", - "MAX_OCC", - "Q2A" - ], - "loopDependencies": [ - "MIN_OCC", - "MAX_OCC" - ], - "lines": { - "min": { - "value": "nvl( MIN_OCC , 1)", - "type": "VTL" - }, - "max": { - "value": "nvl( MAX_OCC , 1)", - "type": "VTL" - } - }, - "components": [ - { - "id": "ll12si5n", - "componentType": "Subsequence", - "page": "7", - "goToPage": "7", - "label": { - "value": "\"Subsequence 2 A (has loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll12si5n", - "page": "7", - "label": { - "value": "\"Subsequence 2 A (has loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MIN_OCC", - "MAX_OCC" - ] - }, - { - "id": "ll12s3zz", - "componentType": "Input", - "mandatory": false, - "page": "7", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 2 A\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll12si5n", - "page": "7", - "label": { - "value": "\"Subsequence 2 A (has loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2A", - "MIN_OCC", - "MAX_OCC" - ], - "response": { - "name": "Q2A" - } - } - ] - }, - { - "id": "ll12nll3", - "componentType": "Loop", - "page": "8", - "maxPage": "1", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2B" - ], - "loopDependencies": [ - "Q2A" - ], - "components": [ - { - "id": "ll12leon", - "componentType": "Subsequence", - "goToPage": "8.1", - "label": { - "value": "\"Subsequence 2 B (has linked loop)\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll12leon", - "page": "8.1", - "label": { - "value": "\"Subsequence 2 B (has linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2A" - ] - }, - { - "id": "ll12k3db", - "componentType": "Input", - "mandatory": false, - "page": "8.1", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question 2 B\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12reor", - "page": "4", - "label": { - "value": "\"II - \" || \"Sequence 2\"", - "type": "VTL|MD" - } - }, - "subSequence": { - "id": "ll12leon", - "page": "8.1", - "label": { - "value": "\"Subsequence 2 B (has linked loop)\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2B", - "Q2A" - ], - "response": { - "name": "Q2B" - } - } - ], - "iterations": { - "value": "count(Q2A)", - "type": "VTL" - } - }, - { - "id": "ll12yu9f", - "componentType": "Sequence", - "page": "9", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12yu9f", - "page": "9", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "ll12vzd5", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "10", - "label": { - "value": "\"➡ \" || \"Last question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "ll12yu9f", - "page": "9", - "label": { - "value": "\"III - \" || \"Last sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q_LAST" - ], - "response": { - "name": "Q_LAST" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "Q1A", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q1B", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "MIN_OCC", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MAX_OCC", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2A", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q2B", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q_LAST", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": { - "Q1A": { - "size": "count(Q1A)", - "variables": [ - "Q1B" - ] - }, - "MIN_OCC": { - "size": "nvl( MAX_OCC , 1)", - "variables": [ - "Q2A" - ] - }, - "Q2A": { - "size": "count(Q2A)", - "variables": [ - "Q2B" - ] - } - } -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-mcq.json b/eno-core/src/test/resources/integration/lunatic/lunatic-mcq.json deleted file mode 100644 index 2262af648..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-mcq.json +++ /dev/null @@ -1,1826 +0,0 @@ -{ - "id": "lo5uid4s", - "modele": "ENOMCQ", - "enoCoreVersion": "2.4.10", - "lunaticModelVersion": "2.3.4", - "generatingDate": "25-10-2023 15:11:53", - "missing": false, - "pagination": "question", - "maxPage": "6", - "label": { - "value": "Eno - Multiple choice questions", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lo5ufiuu", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Multiple choice questions\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo5ufiuu", - "page": "1", - "label": { - "value": "\"I - \" || \"Multiple choice questions\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lo5uw0qc", - "componentType": "CheckboxGroup", - "page": "2", - "label": { - "value": "\"➡ \" || \"Normal multiple choice question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo5ufiuu", - "page": "1", - "label": { - "value": "\"I - \" || \"Multiple choice questions\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MCQ_BOOL1", - "MCQ_BOOL2", - "MCQ_BOOL3", - "MCQ_BOOL4" - ], - "responses": [ - { - "id": "lo5uw0qc-QOP-lo5wh6sm", - "label": { - "value": "\"Code A\"", - "type": "VTL|MD" - }, - "response": { - "name": "MCQ_BOOL1" - } - }, - { - "id": "lo5uw0qc-QOP-lo5woun5", - "label": { - "value": "\"Code B\"", - "type": "VTL|MD" - }, - "response": { - "name": "MCQ_BOOL2" - } - }, - { - "id": "lo5uw0qc-QOP-lo5wo17c", - "label": { - "value": "\"Code C\"", - "type": "VTL|MD" - }, - "response": { - "name": "MCQ_BOOL3" - } - }, - { - "id": "lo5uw0qc-QOP-lo5wljqy", - "label": { - "value": "\"Code D\"", - "type": "VTL|MD" - }, - "response": { - "name": "MCQ_BOOL4" - } - } - ] - }, - { - "id": "lo5vgc2u", - "componentType": "Table", - "mandatory": false, - "page": "3", - "positioning": "HORIZONTAL", - "label": { - "value": "\"➡ \" || \"Multiple choice question - Code list answers - Radio buttons\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo5ufiuu", - "page": "1", - "label": { - "value": "\"I - \" || \"Multiple choice questions\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MCQ_CL_RADIO1", - "MCQ_CL_RADIO2", - "MCQ_CL_RADIO3", - "MCQ_CL_RADIO4" - ], - "body": [ - [ - { - "value": "codeA", - "label": { - "value": "\"Code A\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vgc2u-QOP-lo5wq92e", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_CL_RADIO1" - }, - "bindingDependencies": [ - "MCQ_CL_RADIO1" - ] - } - ], - [ - { - "value": "codeB", - "label": { - "value": "\"Code B\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vgc2u-QOP-lo5w9fuu", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_CL_RADIO2" - }, - "bindingDependencies": [ - "MCQ_CL_RADIO2" - ] - } - ], - [ - { - "value": "codeC", - "label": { - "value": "\"Code C\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vgc2u-QOP-lo5w9dyx", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_CL_RADIO3" - }, - "bindingDependencies": [ - "MCQ_CL_RADIO3" - ] - } - ], - [ - { - "value": "codeD", - "label": { - "value": "\"Code D\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vgc2u-QOP-lo5wk420", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_CL_RADIO4" - }, - "bindingDependencies": [ - "MCQ_CL_RADIO4" - ] - } - ] - ] - }, - { - "id": "lo5vn4ry", - "componentType": "Table", - "mandatory": false, - "page": "4", - "positioning": "HORIZONTAL", - "label": { - "value": "\"➡ \" || \"Multiple choice question - Code list answers - Dropdowns\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo5ufiuu", - "page": "1", - "label": { - "value": "\"I - \" || \"Multiple choice questions\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MCQ_CL_DROPDOWN1", - "MCQ_CL_DROPDOWN2", - "MCQ_CL_DROPDOWN3", - "MCQ_CL_DROPDOWN4" - ], - "body": [ - [ - { - "value": "codeA", - "label": { - "value": "\"Code A\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vn4ry-QOP-lo5wesiv", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_CL_DROPDOWN1" - }, - "bindingDependencies": [ - "MCQ_CL_DROPDOWN1" - ] - } - ], - [ - { - "value": "codeB", - "label": { - "value": "\"Code B\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vn4ry-QOP-lo5wnhmh", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_CL_DROPDOWN2" - }, - "bindingDependencies": [ - "MCQ_CL_DROPDOWN2" - ] - } - ], - [ - { - "value": "codeC", - "label": { - "value": "\"Code C\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vn4ry-QOP-lo5waed8", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_CL_DROPDOWN3" - }, - "bindingDependencies": [ - "MCQ_CL_DROPDOWN3" - ] - } - ], - [ - { - "value": "codeD", - "label": { - "value": "\"Code D\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vn4ry-QOP-lo5wod8t", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_CL_DROPDOWN4" - }, - "bindingDependencies": [ - "MCQ_CL_DROPDOWN4" - ] - } - ] - ] - }, - { - "id": "lo5vms0u", - "componentType": "Table", - "mandatory": false, - "page": "5", - "positioning": "HORIZONTAL", - "label": { - "value": "\"➡ \" || \"Multiple choice question - Table - Radio buttons\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo5ufiuu", - "page": "1", - "label": { - "value": "\"I - \" || \"Multiple choice questions\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MCQ_TABLE_RADIO1", - "MCQ_TABLE_RADIO2", - "MCQ_TABLE_RADIO3", - "MCQ_TABLE_RADIO4", - "MCQ_TABLE_RADIO5", - "MCQ_TABLE_RADIO6", - "MCQ_TABLE_RADIO7" - ], - "body": [ - [ - { - "colspan": 3, - "value": "c1", - "label": { - "value": "\"Code 1\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vms0u-QOP-lo5wq91q", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_RADIO1" - }, - "bindingDependencies": [ - "MCQ_TABLE_RADIO1" - ] - } - ], - [ - { - "rowspan": 2, - "value": "c2", - "label": { - "value": "\"Code 2\"", - "type": "VTL|MD" - } - }, - { - "colspan": 2, - "value": "c21", - "label": { - "value": "\"Code 2.1\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vms0u-QOP-lo5wacoi", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_RADIO2" - }, - "bindingDependencies": [ - "MCQ_TABLE_RADIO2" - ] - } - ], - [ - { - "colspan": 2, - "value": "c22", - "label": { - "value": "\"Code 2.2\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vms0u-QOP-lo5wknau", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_RADIO3" - }, - "bindingDependencies": [ - "MCQ_TABLE_RADIO3" - ] - } - ], - [ - { - "rowspan": 4, - "value": "c3", - "label": { - "value": "\"Code 3\"", - "type": "VTL|MD" - } - }, - { - "rowspan": 3, - "value": "c31", - "label": { - "value": "\"Code 3.1\"", - "type": "VTL|MD" - } - }, - { - "value": "c311", - "label": { - "value": "\"Code 3.1.1\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vms0u-QOP-lo5w74aq", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_RADIO4" - }, - "bindingDependencies": [ - "MCQ_TABLE_RADIO4" - ] - } - ], - [ - { - "value": "c312", - "label": { - "value": "\"Code 3.1.2\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vms0u-QOP-lo5w6upk", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_RADIO5" - }, - "bindingDependencies": [ - "MCQ_TABLE_RADIO5" - ] - } - ], - [ - { - "value": "c313", - "label": { - "value": "\"Code 3.1.3\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vms0u-QOP-lo5wpj3p", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_RADIO6" - }, - "bindingDependencies": [ - "MCQ_TABLE_RADIO6" - ] - } - ], - [ - { - "colspan": 2, - "value": "c32", - "label": { - "value": "\"Code 3.2\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Radio", - "id": "lo5vms0u-QOP-lo5wb2ey", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_RADIO7" - }, - "bindingDependencies": [ - "MCQ_TABLE_RADIO7" - ] - } - ] - ] - }, - { - "id": "lo5vj128", - "componentType": "Table", - "mandatory": false, - "page": "6", - "positioning": "HORIZONTAL", - "label": { - "value": "\"➡ \" || \"Multiple choice question - Table - Dropdowns\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo5ufiuu", - "page": "1", - "label": { - "value": "\"I - \" || \"Multiple choice questions\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MCQ_TABLE_DROPDOWN1", - "MCQ_TABLE_DROPDOWN2", - "MCQ_TABLE_DROPDOWN3", - "MCQ_TABLE_DROPDOWN4", - "MCQ_TABLE_DROPDOWN5", - "MCQ_TABLE_DROPDOWN6", - "MCQ_TABLE_DROPDOWN7" - ], - "body": [ - [ - { - "colspan": 3, - "value": "c1", - "label": { - "value": "\"Code 1\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vj128-QOP-lo5wnzny", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_DROPDOWN1" - }, - "bindingDependencies": [ - "MCQ_TABLE_DROPDOWN1" - ] - } - ], - [ - { - "rowspan": 2, - "value": "c2", - "label": { - "value": "\"Code 2\"", - "type": "VTL|MD" - } - }, - { - "colspan": 2, - "value": "c21", - "label": { - "value": "\"Code 2.1\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vj128-QOP-lo5wauxr", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_DROPDOWN2" - }, - "bindingDependencies": [ - "MCQ_TABLE_DROPDOWN2" - ] - } - ], - [ - { - "colspan": 2, - "value": "c22", - "label": { - "value": "\"Code 2.2\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vj128-QOP-lo5wcj1m", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_DROPDOWN3" - }, - "bindingDependencies": [ - "MCQ_TABLE_DROPDOWN3" - ] - } - ], - [ - { - "rowspan": 4, - "value": "c3", - "label": { - "value": "\"Code 3\"", - "type": "VTL|MD" - } - }, - { - "rowspan": 3, - "value": "c31", - "label": { - "value": "\"Code 3.1\"", - "type": "VTL|MD" - } - }, - { - "value": "c311", - "label": { - "value": "\"Code 3.1.1\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vj128-QOP-lo5wdckv", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_DROPDOWN4" - }, - "bindingDependencies": [ - "MCQ_TABLE_DROPDOWN4" - ] - } - ], - [ - { - "value": "c312", - "label": { - "value": "\"Code 3.1.2\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vj128-QOP-lo5wo52o", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_DROPDOWN5" - }, - "bindingDependencies": [ - "MCQ_TABLE_DROPDOWN5" - ] - } - ], - [ - { - "value": "c313", - "label": { - "value": "\"Code 3.1.3\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vj128-QOP-lo5wlsvx", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_DROPDOWN6" - }, - "bindingDependencies": [ - "MCQ_TABLE_DROPDOWN6" - ] - } - ], - [ - { - "colspan": 2, - "value": "c32", - "label": { - "value": "\"Code 3.2\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Dropdown", - "id": "lo5vj128-QOP-lo5we02i", - "options": [ - { - "value": "answerA", - "label": { - "value": "\"Answer A\"", - "type": "VTL|MD" - } - }, - { - "value": "answerB", - "label": { - "value": "\"Answer B\"", - "type": "VTL|MD" - } - }, - { - "value": "answerC", - "label": { - "value": "\"Answer C\"", - "type": "VTL|MD" - } - }, - { - "value": "answerD", - "label": { - "value": "\"Answer D\"", - "type": "VTL|MD" - } - }, - { - "value": "answerE", - "label": { - "value": "\"Answer E\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "MCQ_TABLE_DROPDOWN7" - }, - "bindingDependencies": [ - "MCQ_TABLE_DROPDOWN7" - ] - } - ] - ] - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "MCQ_BOOL1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_BOOL2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_BOOL3", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_BOOL4", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_CL_RADIO1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_CL_RADIO2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_CL_RADIO3", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_CL_RADIO4", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_CL_DROPDOWN1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_CL_DROPDOWN2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_CL_DROPDOWN3", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_CL_DROPDOWN4", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_RADIO1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_RADIO2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_RADIO3", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_RADIO4", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_RADIO5", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_RADIO6", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_RADIO7", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_DROPDOWN1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_DROPDOWN2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_DROPDOWN3", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_DROPDOWN4", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_DROPDOWN5", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_DROPDOWN6", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MCQ_TABLE_DROPDOWN7", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-pairwise.json b/eno-core/src/test/resources/integration/lunatic/lunatic-pairwise.json deleted file mode 100644 index 09b780944..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-pairwise.json +++ /dev/null @@ -1,333 +0,0 @@ -{ - "id": "lo9tkf89", - "modele": "ENOPAIRWISE", - "enoCoreVersion": "2.4.10", - "lunaticModelVersion": "2.3.4", - "generatingDate": "28-10-2023 09:23:24", - "missing": false, - "pagination": "question", - "maxPage": "3", - "label": { - "value": "Eno - Pairwise question", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lo9ty2ut", - "componentType": "Loop", - "page": "1", - "depth": 1, - "paginatedLoop": false, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "PAIRWISE_SOURCE" - ], - "lines": { - "min": { - "value": "1", - "type": "VTL" - }, - "max": { - "value": "5", - "type": "VTL" - } - }, - "components": [ - { - "id": "lo9tnxzt", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"Sequence with loop\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo9tnxzt", - "page": "1", - "label": { - "value": "\"Sequence with loop\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lo9twdr9", - "componentType": "Input", - "mandatory": false, - "page": "1", - "maxLength": 20, - "label": { - "value": "\"➡ \" || \"Source of the pairwise question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo9tnxzt", - "page": "1", - "label": { - "value": "\"Sequence with loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "PAIRWISE_SOURCE" - ], - "response": { - "name": "PAIRWISE_SOURCE" - } - } - ] - }, - { - "id": "lo9tqe07", - "componentType": "Sequence", - "page": "2", - "label": { - "value": "\"Pairwise sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo9tqe07", - "page": "2", - "label": { - "value": "\"Pairwise sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lo9tyy1v", - "componentType": "PairwiseLinks", - "mandatory": false, - "page": "3", - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lo9tqe07", - "page": "2", - "label": { - "value": "\"Pairwise sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "PAIRWISE_QUESTION" - ], - "xAxisIterations": { - "value": "count(PAIRWISE_SOURCE)" - }, - "yAxisIterations": { - "value": "count(PAIRWISE_SOURCE)" - }, - "components": [ - { - "id": "lo9tyy1v-pairwise-dropdown", - "componentType": "Dropdown", - "mandatory": false, - "page": "3", - "label": { - "value": "\"➡ \" || \"Pairwise link between \" || xAxis || \" and \" || yAxis", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "xAxis <> yAxis", - "type": "VTL" - }, - "bindingDependencies": [ - "PAIRWISE_QUESTION" - ], - "options": [ - { - "value": "linkA", - "label": { - "value": "\"Link of type A\"", - "type": "VTL|MD" - } - }, - { - "value": "linkB", - "label": { - "value": "\"Link of type B\"", - "type": "VTL|MD" - } - }, - { - "value": "linkC", - "label": { - "value": "\"Link of type C\"", - "type": "VTL|MD" - } - }, - { - "value": "linkD", - "label": { - "value": "\"Link of type D\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "PAIRWISE_QUESTION" - } - } - ], - "symLinks": { - "PAIRWISE_QUESTION": { - "1": "1", - "2": "3", - "3": "2", - "4": "4", - "5": "6", - "6": "5", - "7": "8", - "8": "7", - "9": "10", - "10": "9", - "11": "13", - "12": "12", - "13": "11", - "14": null, - "15": null, - "16": "16", - "17": "17", - "18": "18" - } - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "PAIRWISE_SOURCE", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "PAIRWISE_QUESTION", - "values": { - "PREVIOUS": [ - [ - null - ] - ], - "COLLECTED": [ - [ - null - ] - ], - "FORCED": [ - [ - null - ] - ], - "EDITED": [ - [ - null - ] - ], - "INPUTED": [ - [ - null - ] - ] - } - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_PAIRWISE_SOURCE", - "expression": { - "value": "true", - "type": "VTL" - }, - "shapeFrom": "PAIRWISE_SOURCE", - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "FILTER_RESULT_PAIRWISE_QUESTION", - "expression": { - "value": "xAxis <> yAxis", - "type": "VTL" - }, - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "xAxis", - "expression": { - "value": "PAIRWISE_SOURCE", - "type": "VTL" - }, - "bindingDependencies": [ - "PAIRWISE_SOURCE" - ], - "shapeFrom": "PAIRWISE_SOURCE", - "inFilter": "true" - }, - { - "variableType": "CALCULATED", - "name": "yAxis", - "expression": { - "value": "PAIRWISE_SOURCE", - "type": "VTL" - }, - "bindingDependencies": [ - "PAIRWISE_SOURCE" - ], - "shapeFrom": "PAIRWISE_SOURCE", - "inFilter": "true" - } - ], - "cleaning": {}, - "resizing": { - "PAIRWISE_SOURCE": { - "sizeForLinksVariables": [ - "count(PAIRWISE_SOURCE)", - "count(PAIRWISE_SOURCE)" - ], - "linksVariables": [ - "PAIRWISE_QUESTION" - ] - } - } -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-resizing.json b/eno-core/src/test/resources/integration/lunatic/lunatic-resizing.json deleted file mode 100644 index 434d67b4b..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-resizing.json +++ /dev/null @@ -1,609 +0,0 @@ -{ - "id": "lmeyzqxr", - "modele": "ENORESIZING", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "21-09-2023 15:57:44", - "missing": false, - "pagination": "question", - "maxPage": "6", - "label": { - "value": "Eno - Resizing", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lmezfil0", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmezfil0", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmezc4x9", - "componentType": "InputNumber", - "mandatory": false, - "page": "2", - "min": 2, - "max": 10, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Question that determines loops size\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lmezc4x9-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(NUMBER)) and (2>NUMBER or 10NUMBER)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lmezfil0", - "page": "1", - "label": { - "value": "\"I - \" || \"First sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "NUMBER" - ], - "response": { - "name": "NUMBER" - } - }, - { - "id": "lmezf1ds", - "componentType": "Loop", - "page": "3", - "depth": 1, - "paginatedLoop": false, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "NUMBER", - "Q2", - "PAIRWISE_SOURCE" - ], - "loopDependencies": [ - "NUMBER" - ], - "lines": { - "min": { - "value": "1", - "type": "VTL" - }, - "max": { - "value": "nvl(NUMBER, 1)", - "type": "VTL" - } - }, - "components": [ - { - "id": "lmez63il", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence with loop\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmez63il", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence with loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "NUMBER" - ] - }, - { - "id": "lmriwa1y", - "componentType": "Input", - "mandatory": false, - "page": "3", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question in sequence 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmez63il", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence with loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2", - "NUMBER" - ], - "response": { - "name": "Q2" - } - }, - { - "id": "lmezduli", - "componentType": "Input", - "mandatory": false, - "page": "3", - "maxLength": 20, - "label": { - "value": "\"➡ \" || \"Question that is the input of the pairwise question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmez63il", - "page": "3", - "label": { - "value": "\"II - \" || \"Sequence with loop\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "PAIRWISE_SOURCE", - "NUMBER" - ], - "response": { - "name": "PAIRWISE_SOURCE" - } - } - ] - }, - { - "id": "lmezmqi8", - "componentType": "Loop", - "page": "4", - "maxPage": "2", - "depth": 1, - "paginatedLoop": true, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "bindingDependencies": [ - "Q3" - ], - "loopDependencies": [ - "Q2", - "PAIRWISE_SOURCE" - ], - "components": [ - { - "id": "lmezflon", - "componentType": "Sequence", - "page": "4.1", - "label": { - "value": "\"III - \" || \"Séquence avec boucle liée\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmezflon", - "page": "4.1", - "label": { - "value": "\"III - \" || \"Séquence avec boucle liée\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2", - "PAIRWISE_SOURCE" - ] - }, - { - "id": "lmezp3nz", - "componentType": "Input", - "mandatory": false, - "page": "4.2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Question in sequence 3\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmezflon", - "page": "4.1", - "label": { - "value": "\"III - \" || \"Séquence avec boucle liée\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q3", - "Q2", - "PAIRWISE_SOURCE" - ], - "response": { - "name": "Q3" - } - } - ], - "iterations": { - "value": "count(Q2)", - "type": "VTL" - } - }, - { - "id": "lmgeljoy", - "componentType": "Sequence", - "page": "5", - "label": { - "value": "\"IV - \" || \"Sequence pairwise links\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmgeljoy", - "page": "5", - "label": { - "value": "\"IV - \" || \"Sequence pairwise links\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmgen8zt", - "componentType": "PairwiseLinks", - "mandatory": false, - "page": "6", - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmgeljoy", - "page": "5", - "label": { - "value": "\"IV - \" || \"Sequence pairwise links\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "LINKS" - ], - "xAxisIterations": { - "value": "count(PAIRWISE_SOURCE)" - }, - "yAxisIterations": { - "value": "count(PAIRWISE_SOURCE)" - }, - "components": [ - { - "id": "lmgen8zt-pairwise-dropdown", - "componentType": "Dropdown", - "mandatory": false, - "page": "6", - "label": { - "value": "\"➡ \" || \"Pairwise links question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "xAxis <> yAxis", - "type": "VTL" - }, - "bindingDependencies": [ - "LINKS" - ], - "options": [ - { - "value": "LINK_A", - "label": { - "value": "\"Link of type A\"", - "type": "VTL|MD" - } - }, - { - "value": "LINK_B", - "label": { - "value": "\"Link of type B\"", - "type": "VTL|MD" - } - }, - { - "value": "LINK_C", - "label": { - "value": "\"Link of type C\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "LINKS" - } - } - ], - "symLinks": { - "LINKS": { - "1": "1", - "2": "3", - "3": "2", - "4": "4", - "5": "6", - "6": "5", - "7": "8", - "8": "7", - "9": "10", - "10": "9", - "11": "13", - "12": "12", - "13": "11", - "14": null, - "15": null, - "16": "16", - "17": "17", - "18": "18" - } - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "NUMBER", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "PAIRWISE_SOURCE", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "Q3", - "values": { - "PREVIOUS": [ - null - ], - "COLLECTED": [ - null - ], - "FORCED": [ - null - ], - "EDITED": [ - null - ], - "INPUTED": [ - null - ] - } - }, - { - "variableType": "COLLECTED", - "name": "LINKS", - "values": { - "PREVIOUS": [ - [ - null - ] - ], - "COLLECTED": [ - [ - null - ] - ], - "FORCED": [ - [ - null - ] - ], - "EDITED": [ - [ - null - ] - ], - "INPUTED": [ - [ - null - ] - ] - } - }, - { - "variableType": "CALCULATED", - "name": "CALCULATED1", - "expression": { - "value": "nvl(Q2, \"\") || \" \" || \"FOO\"", - "type": "VTL" - }, - "bindingDependencies": [ - "Q2" - ], - "shapeFrom": "Q2", - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "CALCULATED2", - "expression": { - "value": "nvl(Q3, \"\") || \" \" || \"BAR\"", - "type": "VTL" - }, - "bindingDependencies": [ - "Q3" - ], - "shapeFrom": "Q2", - "inFilter": "false" - }, - { - "variableType": "CALCULATED", - "name": "xAxis", - "expression": { - "value": "PAIRWISE_SOURCE", - "type": "VTL" - }, - "bindingDependencies": [ - "PAIRWISE_SOURCE" - ], - "shapeFrom": "PAIRWISE_SOURCE", - "inFilter": "true" - }, - { - "variableType": "CALCULATED", - "name": "yAxis", - "expression": { - "value": "PAIRWISE_SOURCE", - "type": "VTL" - }, - "bindingDependencies": [ - "PAIRWISE_SOURCE" - ], - "shapeFrom": "PAIRWISE_SOURCE", - "inFilter": "true" - } - ], - "cleaning": {}, - "resizing": { - "NUMBER": { - "size": "nvl(NUMBER, 1)", - "variables": [ - "Q2", - "PAIRWISE_SOURCE" - ] - }, - "Q2": { - "size": "count(Q2)", - "variables": [ - "Q3" - ] - }, - "PAIRWISE_SOURCE": { - "sizeForLinksVariables": [ - "count(PAIRWISE_SOURCE)", - "count(PAIRWISE_SOURCE)" - ], - "linksVariables": [ - "LINKS" - ] - } - } -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-response-time-section.json b/eno-core/src/test/resources/integration/lunatic/lunatic-response-time-section.json deleted file mode 100644 index 7eff643cb..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-response-time-section.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "id": "lmyoceix", - "modele": "ENOSIMPLE", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "25-09-2023 10:07:18", - "missing": false, - "pagination": "question", - "maxPage": "5", - "label": { - "value": "Eno - Simple questionnaire", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lmynuv39", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmynuv39", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmyo3e0y", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Unique question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmynuv39", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - }, - { - "id": "TIME-SEQ", - "componentType": "Sequence", - "page": "3", - "label": { - "value": "\"Temps de réponse\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "TIME-SEQ", - "page": "3", - "label": { - "value": "\"Temps de réponse\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "TIME-QUESTION-HEURE-REMPL", - "componentType": "InputNumber", - "mandatory": false, - "page": "4", - "min": 0, - "max": 99, - "decimals": 0, - "label": { - "value": "\"Combien de temps avez-vous mis en tout pour répondre à cette enquête (recherche des données + remplissage du questionnaire) ?\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "TIME-SEQ", - "page": "3", - "label": { - "value": "\"Temps de réponse\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "HEURE_REMPL" - ], - "unit": "heures", - "response": { - "name": "HEURE_REMPL" - } - }, - { - "id": "TIME-QUESTION-MIN-REMPL", - "componentType": "InputNumber", - "mandatory": false, - "page": "5", - "min": 0, - "max": 59, - "decimals": 0, - "label": { - "value": "", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "TIME-SEQ", - "page": "3", - "label": { - "value": "\"Temps de réponse\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "MIN_REMPL" - ], - "unit": "minutes", - "response": { - "name": "MIN_REMPL" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "HEURE_REMPL", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "MIN_REMPL", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-simple.json b/eno-core/src/test/resources/integration/lunatic/lunatic-simple.json deleted file mode 100644 index e496ec790..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-simple.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "id": "lmyoceix", - "modele": "ENOSIMPLE", - "enoCoreVersion": "2.4.9", - "lunaticModelVersion": "2.3.4", - "generatingDate": "25-09-2023 09:03:08", - "missing": false, - "pagination": "question", - "maxPage": "2", - "label": { - "value": "Eno - Simple questionnaire", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lmynuv39", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmynuv39", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lmyo3e0y", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Unique question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lmynuv39", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-tooltips.json b/eno-core/src/test/resources/integration/lunatic/lunatic-tooltips.json deleted file mode 100644 index d4a01b9b6..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-tooltips.json +++ /dev/null @@ -1,369 +0,0 @@ -{ - "id": "lpe7odyn", - "modele": "ENOTOOLTIP", - "enoCoreVersion": "2.4.10", - "lunaticModelVersion": "2.3.4", - "generatingDate": "27-11-2023 17:04:57", - "missing": false, - "pagination": "question", - "maxPage": "5", - "label": { - "value": "Eno - Tooltip", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lpe7pagw", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"Sequence [label](. 'There is a tooltip on the label.')\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lpe7pagw-lpgufl5l", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"Declaration with a tooltip [here](. 'Tooltip’s content.').\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lpe7pagw", - "page": "1", - "label": { - "value": "\"Sequence [label](. 'There is a tooltip on the label.')\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lpe7p7ji", - "componentType": "Input", - "mandatory": false, - "page": "2", - "maxLength": 249, - "label": { - "value": "\"Question label with a [tooltip](. 'The tooltip, also known as infotip or hint, is a common graphical user interface element in which, when hovering over a screen element or component, a text box displays information about that element.').\"", - "type": "VTL|MD" - }, - "declarations": [ - { - "id": "lpgv0v4d-SI", - "declarationType": "STATEMENT", - "position": "BEFORE_QUESTION_TEXT", - "label": { - "value": "\"Before question [label](. 'Some text').\"", - "type": "VTL|MD" - } - }, - { - "id": "lpe7p7ji-lpgv278x", - "declarationType": "HELP", - "position": "AFTER_QUESTION_TEXT", - "label": { - "value": "\"After question [label](. 'Some text').\"", - "type": "VTL|MD" - } - } - ], - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lpe7p7ji-CI-0", - "typeOfControl": "CONSISTENCY", - "criticality": "WARN", - "control": { - "value": "not(nvl(Q1, \"\") = \"\")", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Error message with a [tooltip](. 'Some text')\"", - "type": "VTL|MD" - }, - "bindingDependencies": [ - "Q1" - ] - } - ], - "hierarchy": { - "sequence": { - "id": "lpe7pagw", - "page": "1", - "label": { - "value": "\"Sequence [label](. 'There is a tooltip on the label.')\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q1" - ], - "response": { - "name": "Q1" - } - }, - { - "id": "lpgv5kfr", - "componentType": "Radio", - "mandatory": false, - "page": "3", - "label": { - "value": "\"Unique choice question with tooltips\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lpe7pagw", - "page": "1", - "label": { - "value": "\"Sequence [label](. 'There is a tooltip on the label.')\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q2" - ], - "options": [ - { - "value": "code1", - "label": { - "value": "\"[Code 1](. 'Tooltip text of code 1')\"", - "type": "VTL|MD" - } - }, - { - "value": "code2", - "label": { - "value": "\"[Code 2](. 'Tooltip text of code 2')\"", - "type": "VTL|MD" - } - } - ], - "response": { - "name": "Q2" - } - }, - { - "id": "lpgvd4xx", - "componentType": "CheckboxGroup", - "page": "4", - "label": { - "value": "\"Multiple choice question with tooltips\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lpe7pagw", - "page": "1", - "label": { - "value": "\"Sequence [label](. 'There is a tooltip on the label.')\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q31", - "Q32" - ], - "responses": [ - { - "id": "lpgvd4xx-QOP-lph3gw1f", - "label": { - "value": "\"[Code 1](. 'Tooltip text of code 1')\"", - "type": "VTL|MD" - }, - "response": { - "name": "Q31" - } - }, - { - "id": "lpgvd4xx-QOP-lph3ij51", - "label": { - "value": "\"[Code 2](. 'Tooltip text of code 2')\"", - "type": "VTL|MD" - }, - "response": { - "name": "Q32" - } - } - ] - }, - { - "id": "lpgvggno", - "componentType": "Table", - "mandatory": false, - "page": "5", - "positioning": "HORIZONTAL", - "label": { - "value": "\"Table with tooltips\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lpe7pagw", - "page": "1", - "label": { - "value": "\"Sequence [label](. 'There is a tooltip on the label.')\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "Q411", - "Q421" - ], - "header": [ - { - "label": { - "value": "", - "type": "VTL|MD" - } - }, - { - "label": { - "value": "\"Table [information](. 'Tooltip text')\"", - "type": "VTL|MD" - } - } - ], - "body": [ - [ - { - "value": "code1", - "label": { - "value": "\"[Code 1](. 'Tooltip text of code 1')\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Input", - "maxLength": 249, - "id": "lpgvggno-QOP-lph3md1y", - "response": { - "name": "Q411" - }, - "bindingDependencies": [ - "Q411" - ] - } - ], - [ - { - "value": "code2", - "label": { - "value": "\"[Code 2](. 'Tooltip text of code 2')\"", - "type": "VTL|MD" - } - }, - { - "componentType": "Input", - "maxLength": 249, - "id": "lpgvggno-QOP-lph3ln2w", - "response": { - "name": "Q421" - }, - "bindingDependencies": [ - "Q421" - ] - } - ] - ] - } - ], - "variables": [ - { - "variableType": "COLLECTED", - "name": "Q1", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q2", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q31", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q32", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q411", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - }, - { - "variableType": "COLLECTED", - "name": "Q421", - "values": { - "PREVIOUS": null, - "COLLECTED": null, - "FORCED": null, - "EDITED": null, - "INPUTED": null - } - } - ], - "cleaning": {}, - "resizing": {} -} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/lunatic/lunatic-variables.json b/eno-core/src/test/resources/integration/lunatic/lunatic-variables.json deleted file mode 100644 index 0c8765483..000000000 --- a/eno-core/src/test/resources/integration/lunatic/lunatic-variables.json +++ /dev/null @@ -1,706 +0,0 @@ -{ - "id": "lk6phc5i", - "modele": "ENOVARIABLES", - "enoCoreVersion": "2.4.1-pairwise", - "lunaticModelVersion": "2.3.2-rc7", - "generatingDate": "19-07-2023 14:33:20", - "missing": false, - "pagination": "question", - "maxPage": "10", - "label": { - "value": "Eno - Variables", - "type": "VTL|MD" - }, - "components": [ - { - "id": "lk6pnxga", - "componentType": "Sequence", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6pnxga", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - } - }, - { - "id": "lk6py97h", - "componentType": "CheckboxBoolean", - "mandatory": false, - "page": "2", - "label": { - "value": "\"➡ \" || \"Boolean question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6pnxga", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "BOOL" - ], - "response": { - "name": "BOOL" - } - }, - { - "id": "lk6psv66", - "componentType": "Input", - "mandatory": false, - "page": "3", - "maxLength": 249, - "label": { - "value": "\"➡ \" || \"Short text question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6pnxga", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "TEXT_SHORT" - ], - "response": { - "name": "TEXT_SHORT" - } - }, - { - "id": "lk6pzghy", - "componentType": "Textarea", - "mandatory": false, - "page": "4", - "maxLength": 250, - "label": { - "value": "\"➡ \" || \"Long text question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "hierarchy": { - "sequence": { - "id": "lk6pnxga", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "TEXT_LONG" - ], - "response": { - "name": "TEXT_LONG" - } - }, - { - "id": "lk6q2owb", - "componentType": "InputNumber", - "mandatory": false, - "page": "5", - "min": 0, - "max": 10, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Numeric question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lk6q2owb-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(NUMBER1)) and (0>NUMBER1 or 10NUMBER1)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lk6pnxga", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "NUMBER1" - ], - "response": { - "name": "NUMBER1" - } - }, - { - "id": "lk6qpybd", - "componentType": "InputNumber", - "mandatory": false, - "page": "6", - "min": 0, - "max": 10, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Numeric question 2\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lk6qpybd-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(NUMBER2)) and (0>NUMBER2 or 10NUMBER2)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lk6pnxga", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "NUMBER2" - ], - "response": { - "name": "NUMBER2" - } - }, - { - "id": "lk6pyh7q", - "componentType": "InputNumber", - "mandatory": false, - "page": "7", - "min": 0, - "max": 100, - "decimals": 2, - "label": { - "value": "\"➡ \" || \"Number with two decimals\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lk6pyh7q-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(NUMBER_DECIMALS)) and (0.00>NUMBER_DECIMALS or 100.00NUMBER_DECIMALS)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 2 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lk6pnxga", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "NUMBER_DECIMALS" - ], - "response": { - "name": "NUMBER_DECIMALS" - } - }, - { - "id": "lk6qdwha", - "componentType": "InputNumber", - "mandatory": false, - "page": "8", - "min": 0, - "max": 100, - "decimals": 0, - "label": { - "value": "\"➡ \" || \"Number with unit\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lk6qdwha-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(NUMBER_UNIT)) and (0>NUMBER_UNIT or 100NUMBER_UNIT)", - "type": "VTL" - }, - "errorMessage": { - "value": "\"Le nombre doit comporter au maximum 0 chiffre(s) après la virgule.\"", - "type": "VTL|MD" - } - } - ], - "hierarchy": { - "sequence": { - "id": "lk6pnxga", - "page": "1", - "label": { - "value": "\"I - \" || \"Unique sequence\"", - "type": "VTL|MD" - } - } - }, - "bindingDependencies": [ - "NUMBER_UNIT" - ], - "unit": "kg", - "response": { - "name": "NUMBER_UNIT" - } - }, - { - "id": "lk6pzgni", - "componentType": "Datepicker", - "mandatory": false, - "page": "9", - "min": "1900-01-01", - "max": "format-date(current-date(),'[Y0001]-[M01]-[D01]')", - "label": { - "value": "\"➡ \" || \"Date question\"", - "type": "VTL|MD" - }, - "conditionFilter": { - "value": "true", - "type": "VTL" - }, - "controls": [ - { - "id": "lk6pzgni-format-borne-inf-sup", - "typeOfControl": "FORMAT", - "criticality": "ERROR", - "control": { - "value": "not(not(isnull(DATE)) and (cast(DATE, date, \"YYYY-MM-DD\")>cast(\"format-date(current-date(),'[Y0001]-[M01]-[D01]')\", date, \"YYYY-MM-DD\") or cast(DATE, date, \"YYYY-MM-DD\")cast(\"2030-01-01\", date, \"YYYY-MM-DD\") or cast(DATE_BOUNDED, date, \"YYYY-MM-DD\") Date: Wed, 16 Oct 2024 16:01:28 +0200 Subject: [PATCH 02/19] chore: clean up some metadata in test questionnaires --- .../integration/ddi/ddi-controls.xml | 36 +++++++++---------- .../integration/pogues/pogues-controls.json | 4 +-- .../pogues/pogues-dynamic-table-2.json | 2 +- .../pogues/pogues-dynamic-table.json | 2 +- .../integration/pogues/pogues-mcq.json | 2 +- .../pogues/pogues-suggester-options.json | 2 +- .../integration/pogues/pogues-suggester.json | 2 +- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/eno-core/src/test/resources/integration/ddi/ddi-controls.xml b/eno-core/src/test/resources/integration/ddi/ddi-controls.xml index f912156c8..dddb0724b 100644 --- a/eno-core/src/test/resources/integration/ddi/ddi-controls.xml +++ b/eno-core/src/test/resources/integration/ddi/ddi-controls.xml @@ -12,7 +12,7 @@ xsi:schemaLocation="ddi:instance:3_3 https://www.ddialliance.org/Specification/DDI-Lifecycle/3.3/XMLSchema/instance.xsd" isMaintainable="true"> fr.insee - INSEE-ltx6820n + INSEE-ltx6821m 1 @@ -21,11 +21,11 @@ fr.insee - RessourcePackage-ltx6820n + RessourcePackage-ltx6821m 1 fr.insee - InterviewerInstructionScheme-ltx6820n + InterviewerInstructionScheme-ltx6821m 1 A définir @@ -96,11 +96,11 @@ fr.insee - ControlConstructScheme-ltx6820n + ControlConstructScheme-ltx6821m 1 fr.insee - Sequence-ltx6820n + Sequence-ltx6821m 1 Controles - Eno issue 942 @@ -384,7 +384,7 @@ fr.insee - QuestionScheme-ltx6820n + QuestionScheme-ltx6821m 1 A définir @@ -611,7 +611,7 @@ fr.insee - CategoryScheme-ltx6820n + CategoryScheme-ltx6821m 1 A définir @@ -659,7 +659,7 @@ fr.insee - VariableScheme-ltx6820n + VariableScheme-ltx6821m 1 Variable Scheme for the survey @@ -796,12 +796,12 @@ fr.insee - INSEE-Instrument-ltx6820n-vg + INSEE-Instrument-ltx6821m-vg 1 fr.insee - Instrument-ltx6820n + Instrument-ltx6821m 1 Instrument @@ -866,41 +866,41 @@ fr.insee - StudyUnit-ltx6820n + StudyUnit-ltx6821m 1 fr.insee - DataCollection-ltx6820n + DataCollection-ltx6821m 1 fr.insee - QuestionScheme-ltx6820n + QuestionScheme-ltx6821m 1 QuestionScheme fr.insee - ControlConstructScheme-ltx6820n + ControlConstructScheme-ltx6821m 1 ControlConstructScheme fr.insee - InterviewerInstructionScheme-ltx6820n + InterviewerInstructionScheme-ltx6821m 1 InterviewerInstructionScheme fr.insee - InstrumentScheme-ltx6820n + InstrumentScheme-ltx6821m 1 fr.insee - Instrument-ltx6820n + Instrument-ltx6821m 1 VAROBLIGAT @@ -911,7 +911,7 @@ A définir fr.insee - Sequence-ltx6820n + Sequence-ltx6821m 1 Sequence diff --git a/eno-core/src/test/resources/integration/pogues/pogues-controls.json b/eno-core/src/test/resources/integration/pogues/pogues-controls.json index a351a56af..3115418f5 100644 --- a/eno-core/src/test/resources/integration/pogues/pogues-controls.json +++ b/eno-core/src/test/resources/integration/pogues/pogues-controls.json @@ -1,5 +1,5 @@ { - "owner": "DG75-L120", + "owner": "ENO-INTEGRATION-TESTS", "FlowControl": [], "ComponentGroup": [ { @@ -100,7 +100,7 @@ ], "final": false, "flowLogic": "FILTER", - "id": "ltx6820n", + "id": "ltx6821m", "TargetMode": [ "CAPI", "CATI", diff --git a/eno-core/src/test/resources/integration/pogues/pogues-dynamic-table-2.json b/eno-core/src/test/resources/integration/pogues/pogues-dynamic-table-2.json index 51346e40e..684c98d02 100644 --- a/eno-core/src/test/resources/integration/pogues/pogues-dynamic-table-2.json +++ b/eno-core/src/test/resources/integration/pogues/pogues-dynamic-table-2.json @@ -1,5 +1,5 @@ { - "owner": "DG75-L201", + "owner": "ENO-INTEGRATION-TESTS", "FlowControl": [], "ComponentGroup": [ { diff --git a/eno-core/src/test/resources/integration/pogues/pogues-dynamic-table.json b/eno-core/src/test/resources/integration/pogues/pogues-dynamic-table.json index 3985877fc..010103935 100644 --- a/eno-core/src/test/resources/integration/pogues/pogues-dynamic-table.json +++ b/eno-core/src/test/resources/integration/pogues/pogues-dynamic-table.json @@ -1,5 +1,5 @@ { - "owner": "FAKEPERMISSION", + "owner": "ENO-INTEGRATION-TESTS", "FlowControl": [], "ComponentGroup": [ { diff --git a/eno-core/src/test/resources/integration/pogues/pogues-mcq.json b/eno-core/src/test/resources/integration/pogues/pogues-mcq.json index c5bd168a1..13ffc0160 100644 --- a/eno-core/src/test/resources/integration/pogues/pogues-mcq.json +++ b/eno-core/src/test/resources/integration/pogues/pogues-mcq.json @@ -1,5 +1,5 @@ { - "owner": "FAKEPERMISSION", + "owner": "ENO-INTEGRATION-TESTS", "FlowControl": [], "ComponentGroup": [ { diff --git a/eno-core/src/test/resources/integration/pogues/pogues-suggester-options.json b/eno-core/src/test/resources/integration/pogues/pogues-suggester-options.json index 91f58c467..3ed314c90 100644 --- a/eno-core/src/test/resources/integration/pogues/pogues-suggester-options.json +++ b/eno-core/src/test/resources/integration/pogues/pogues-suggester-options.json @@ -209,7 +209,7 @@ "Eno - Suggester multiple variables" ], "final": false, - "owner": "DR59-SNDI59", + "owner": "ENO-INTEGRATION-TESTS", "agency": "fr.insee", "CodeLists": { "CodeList": [ diff --git a/eno-core/src/test/resources/integration/pogues/pogues-suggester.json b/eno-core/src/test/resources/integration/pogues/pogues-suggester.json index 73fd39e48..ab5c737d8 100644 --- a/eno-core/src/test/resources/integration/pogues/pogues-suggester.json +++ b/eno-core/src/test/resources/integration/pogues/pogues-suggester.json @@ -1,5 +1,5 @@ { - "owner": "FAKEPERMISSION", + "owner": "ENO-INTEGRATION-TESTS", "FlowControl": [], "ComponentGroup": [ { From f8f2fe93db6e5e56a268756212b1653e77c056f4 Mon Sep 17 00:00:00 2001 From: Nicolas Senave Date: Wed, 16 Oct 2024 17:05:40 +0200 Subject: [PATCH 03/19] docs: update dev doc --- docs/fr/eno-core/implementation-paradigm.md | 55 ++++++++++++--------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/docs/fr/eno-core/implementation-paradigm.md b/docs/fr/eno-core/implementation-paradigm.md index 5b6b7a9ed..93da00630 100644 --- a/docs/fr/eno-core/implementation-paradigm.md +++ b/docs/fr/eno-core/implementation-paradigm.md @@ -5,14 +5,23 @@ ``` Fichier d'entrée --Deserializer--> Objet d'entrée - --Mapper--> Objet du modèle Eno + --InMapper--> Objet du modèle Eno --InProcessing--> Objet du modèle Eno --EnoProcessing--> Objet du modèle Eno - --Mapper--> Objet de sortie + --OutMapper--> Objet de sortie --OutProcessing--> Objet de sortie --Serializer--> Fichier de sortie ``` +1. Fichier d'entrée : un questionnaire, par exemple au format Pogues ou DDI. +1. `Deserializer` : Désérialisation du fichier d'entrée pour le convertir en objets java. +1. `InMapper` : Mapping des informations de l'objet d'entrée (exemple: `DDIInstance`) sur l'objet correspondant du modèle Eno (exemple : `EnoQuestionnaire`). +1. `InProcessing` : Ensemble de traitements pour finir le travail du mapper d'entrée. +1. `EnoProcessing` : Ensemble de traitements applicables dans tous les formats de sortie. +1. `OutMapper` : Mapping des informations de l'objet du modèle Eno (exemple : `EnoQuestionnaire`) sur l'objet de sortie correspondant (exmple : `Questionnaire` du modèle Lunatic). +1. `OutProcessing` : Ensemble de traitements pour finir le travail du mapper de sortie. +1. `Serializer` : Sérialisation de l'objet java de sortie. + ## Principe de fonctionnement des mappers Le principe central d'Eno java est de décrire la logique des relations entre les formats d'entrée et de sortie dans des annotations posées sur un modèle intermédiaire (modèle Eno). @@ -21,33 +30,33 @@ Les mappers vont parcourir les annotations des objets Eno et récupérer les val Les expressions utilisent le [Spring Element Language (SpEL)](./spel-in-eno.md). -Exemple (simplifié) : +Exemple (schématique) : ```java @Context(format = Format.DDI, type = QuestionItemType.class) @Context(format = Format.LUNATIC, type = InputNumber.class) public class NumericQuestion extends EnoObject { - @In(format = Format.DDI, expression = "getIDList().get(0).getStringValue()") - @Out(format = Format.LUNATIC, expression = "setId(#param)") + @DDI("getIDList().get(0).getStringValue()") + @Lunatic("setId(#param)") private String id; - @In(format = Format.DDI, expression = "getIfThenElseList.get(0)") - @Out(format = Format.LUNATIC, expression = "setConditionFilter(#param)") + @DDI("getIfThenElseList.get(0)") + @Lunatic("setConditionFilter(#param)") private Filter filter; - @In(format = Format.DDI, expression = "getStatementItemList()") - @Out(format = Format.LUNATIC, expression = "getDeclarations()") + @DDI("getStatementItemList()") + @Lunatic("getDeclarations()") private List declarations; // Getters/setters... } ``` -Deux types d'annotations : +Deux types d'annotations de mapping : -- pour les formats d'entrée -- pour les formats de sortie +- pour les formats d'entrée (exemple : `@DDI`) +- pour les formats de sortie (exemple : `@Lunatic`) Trois types d'attributs sur le modèle : @@ -57,15 +66,9 @@ Trois types d'attributs sur le modèle : Voir la javadoc des annotations et des mappers pour plus de détails. -## Packages - -### `parsers` - -Classes pour lire/désérialiser les fichiers d'entrée. - -### `output` +Les annotations `@Context` indiquent les correspondance entre l'objet Eno et les objets des formats d'entrée/de sortie. -Classes pour écrire/sérialiser les objets de sortie. +## Packages ### `model` @@ -73,9 +76,13 @@ Package central contenant les classes du modèle Eno. Les classes qui correspondent à des concepts proches sont regroupées en sous-packages. +Tous les objets du modèle Eno doivent hériter de `EnoObject`. + +Les annotations de mapping figurent sur les attributs des objets Eno. + ### `annotations` -Annotations destinées à être posées sur les classes du modèle Eno pour définir la logique de mapping et de conversion des objets. +Annotations destinées à être posées sur les classes du modèle Eno pour définir la logique de mapping. ### `mappers` @@ -86,7 +93,7 @@ Principe général d'un mapper : - mapper in : mappe les informations d'un objet d'entrée dans l'objet correspondant du modèle Eno. - mapper out : mappe les informations d'un objet du modèle Eno dans l'objet de sortie correspondant (selon le format souhaité). -Il est fortement déconseillé de modifier les mappers, mais il est important de comprendre leur fonctionnement. +Il est déconseillé de modifier les mappers, mais il est important de comprendre leur fonctionnement. ### `converters` @@ -127,6 +134,10 @@ Les traitements réalisés peuvent : Objets contenant les différents paramètres métier. +### serialize + +Classes pour sérialiser/désérialiser les fichiers d'entrées et de sortie. + ### `utils` Utilitaires. From a355b02752d88a4f9856f2d797c3ebf3a2ca54da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20S=C3=A9nave?= <59770457+nsenave@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:42:24 +0200 Subject: [PATCH 04/19] fix: roundabout on subsequence (#1133) --- build.gradle.kts | 2 +- .../core/model/sequence/ItemReference.java | 85 +- .../java/fr/insee/eno/core/DDIToEnoTest.java | 1 + .../lunatic/LunaticRoundaboutLoopsTest.java | 235 +- .../resources/functional/ddi/ddi-lx4qzdty.xml | 2884 +++++++++++++++++ .../functional/pogues/pogues-lx4qzdty.json | 1158 +++++++ .../ddi/ddi-roundabout-subsequence.xml | 907 ++++++ 7 files changed, 5187 insertions(+), 85 deletions(-) create mode 100644 eno-core/src/test/resources/functional/ddi/ddi-lx4qzdty.xml create mode 100644 eno-core/src/test/resources/functional/pogues/pogues-lx4qzdty.json create mode 100644 eno-core/src/test/resources/integration/ddi/ddi-roundabout-subsequence.xml diff --git a/build.gradle.kts b/build.gradle.kts index 2fc9fe3d0..52d8f37b1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ java { allprojects { group = "fr.insee.eno" - version = "3.27.1" + version = "3.27.2-SNAPSHOT" } subprojects { diff --git a/eno-core/src/main/java/fr/insee/eno/core/model/sequence/ItemReference.java b/eno-core/src/main/java/fr/insee/eno/core/model/sequence/ItemReference.java index 5420727c3..3f15f98b4 100644 --- a/eno-core/src/main/java/fr/insee/eno/core/model/sequence/ItemReference.java +++ b/eno-core/src/main/java/fr/insee/eno/core/model/sequence/ItemReference.java @@ -1,15 +1,19 @@ package fr.insee.eno.core.model.sequence; +import fr.insee.ddi.lifecycle33.datacollection.QuestionConstructType; import fr.insee.ddi.lifecycle33.datacollection.SequenceType; import fr.insee.ddi.lifecycle33.reusable.ReferenceType; import fr.insee.eno.core.annotations.Contexts.Context; import fr.insee.eno.core.annotations.DDI; +import fr.insee.eno.core.exceptions.business.IllegalDDIElementException; import fr.insee.eno.core.exceptions.technical.MappingException; import fr.insee.eno.core.model.EnoObject; import fr.insee.eno.core.parameter.Format; import fr.insee.eno.core.reference.DDIIndex; import lombok.*; +import java.util.Optional; + /** Class designed to map DDI ControlConstructReference tags. * Note: The ControlConstructReference tag corresponds to the ReferenceType class. * The ItemReference objects are only use to hold information derived from DDI, @@ -27,20 +31,80 @@ public class ItemReference extends EnoObject { /** Type of items that can be found in control construct references in DDI. */ public enum ItemType {SEQUENCE, SUBSEQUENCE, QUESTION, LOOP, FILTER, CONTROL, DECLARATION} - @DDI("getTypeOfObject().toString() == 'QuestionConstruct' ? " + - "#index.get(#this.getIDArray(0).getStringValue())" + - ".getQuestionReference().getIDArray(0).getStringValue() : " + - "getIDArray(0).getStringValue()") + @DDI("T(fr.insee.eno.core.model.sequence.ItemReference).mapDDIReferenceId(" + + "#this, #index)") private String id; @DDI("T(fr.insee.eno.core.model.sequence.ItemReference).convertDDITypeOfObject(" + "#this, #index)") private ItemType type; + // NOTE: The following is way too much complex, this needs some refactor to make things a bit nicer. + + // NOTE 2: We also might want to figure out a way to manage DDI constant values uniformly. + // These values are hardcoded, but it's quite hard to get a cleaner solution which wouldn't be too tedious. + // Yet, DDI is used as a standard that shouldn't change that often, so it's not a big deal. + + /** + * DDI "control construct" elements have a list of references to other control construct elements. + * In some cases, some intermediate elements (e.g. intermediate question reference, or a "roundabout" sequence) + * are referenced, making the retrieval of the identifier of the concrete (e.g. actual sequence, subsequence, loop + * or filter) element harder. + * This method returns the identifier of the concrete element. + * @param referenceType A control construct reference. + * @param ddiIndex DDI index that can be used to jump to the referenced element. + * @return The identifier of the concrete element referenced by the control construct. + */ + public static String mapDDIReferenceId(ReferenceType referenceType, DDIIndex ddiIndex) { + String typeOfObject = referenceType.getTypeOfObject().toString(); + // In the question case, there is an intermediate "question construct" object before the concrete question object. + if ("QuestionConstruct".equals(typeOfObject)) { + QuestionConstructType questionConstructType = (QuestionConstructType) ddiIndex.get( + referenceType.getIDArray(0).getStringValue()); + return questionConstructType.getQuestionReference().getIDArray(0).getStringValue(); + } + // In the sequence case, the sequence can be an intermediate "roundabout" sequence before the concrete loop. + if ("Sequence".equals(typeOfObject)) { + SequenceType sequenceType = (SequenceType) ddiIndex.get(referenceType.getIDArray(0).getStringValue()); + if (isRoundaboutSequence(sequenceType)) + return getLoopReference(sequenceType); + } + // In regular cases, simply return the id. + return referenceType.getIDArray(0).getStringValue(); + } + + private static boolean isRoundaboutSequence(SequenceType sequenceType) { + return "roundabout".equals(sequenceType.getTypeOfSequenceArray(0).getStringValue()); + } + + /** + * "Roundabout" sequences are intermediate sequence objects that contain information about the roundabout, but does + * not correspond to an actual sequence. In that case, we want to jump to the loop that corresponds to the + * roundabout. + * This method returns the identifier of that loop. + * @param sequenceType A "roundabout" sequence object. + * @return The identifier of the loop the corresponds to the roundabout sequence given. + * @throws IllegalDDIElementException if the sequence doesn't reference a loop object. + */ + private static String getLoopReference(SequenceType sequenceType) { + // Redundant assertion to make sure the method is called on a roundabout sequence. + assert isRoundaboutSequence(sequenceType); + // Find the loop reference within the roundabout sequence + Optional loopReference = sequenceType.getControlConstructReferenceList().stream() + .filter(controlConstructReference -> "Loop".equals(controlConstructReference.getTypeOfObject().toString())) + .findAny(); + // Note: we could also verify that there is exactly one referenced loop, but this tedious enough. + if (loopReference.isEmpty()) + throw new IllegalDDIElementException(String.format( + "DDI roundabout sequence '%s' doesn't reference any loop.", + sequenceType.getIDArray(0).getStringValue())); + return loopReference.get().getIDArray(0).getStringValue(); + } + public static ItemType convertDDITypeOfObject(ReferenceType referenceType, DDIIndex ddiIndex) { String typeOfObject = referenceType.getTypeOfObject().toString(); return switch (typeOfObject) { - case "Sequence" -> sequenceCase(referenceType, ddiIndex); + case "Sequence" -> getSequenceTypeOfObject(referenceType, ddiIndex); case "QuestionConstruct" -> ItemType.QUESTION; case "ComputationItem" -> ItemType.CONTROL; case "IfThenElse" -> ItemType.FILTER; @@ -51,14 +115,17 @@ public static ItemType convertDDITypeOfObject(ReferenceType referenceType, DDIIn }; } - private static ItemType sequenceCase(ReferenceType referenceType, DDIIndex ddiIndex) { - SequenceType ddiSequence = (SequenceType) ddiIndex.get(referenceType.getIDArray(0).getStringValue()); + private static ItemType getSequenceTypeOfObject(ReferenceType referenceType, DDIIndex ddiIndex) { + String id = referenceType.getIDArray(0).getStringValue(); + SequenceType ddiSequence = (SequenceType) ddiIndex.get(id); String typeOfSequence = ddiSequence.getTypeOfSequenceArray(0).getStringValue(); return switch (typeOfSequence) { - // TODO: figure out a way to manage constant values uniformly case "module" -> ItemType.SEQUENCE; case "submodule" -> ItemType.SUBSEQUENCE; - default -> throw new MappingException("Unexpected value: " + typeOfSequence); + case "roundabout" -> ItemType.LOOP; + default -> + throw new MappingException(String.format( + "Unexpected type '%s' found in sequence '%s'.", typeOfSequence, id)); }; } diff --git a/eno-core/src/test/java/fr/insee/eno/core/DDIToEnoTest.java b/eno-core/src/test/java/fr/insee/eno/core/DDIToEnoTest.java index 3175f498e..7ec5e8982 100644 --- a/eno-core/src/test/java/fr/insee/eno/core/DDIToEnoTest.java +++ b/eno-core/src/test/java/fr/insee/eno/core/DDIToEnoTest.java @@ -30,6 +30,7 @@ class DDIToEnoTest { "li49zxju", // 'vpp' survey "lmyjrqbb", // several linked loops "ljr4jm9a", // 'quality of life' survey + "lx4qzdty", // contains roundabouts with controls }) @DisplayName("Large questionnaires, DDI to Eno, transformation should succeed") void transformQuestionnaire_nonNullOutput(String questionnaireId) throws DDIParsingException { diff --git a/eno-core/src/test/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticRoundaboutLoopsTest.java b/eno-core/src/test/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticRoundaboutLoopsTest.java index 33fee59c8..db26688d9 100644 --- a/eno-core/src/test/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticRoundaboutLoopsTest.java +++ b/eno-core/src/test/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticRoundaboutLoopsTest.java @@ -10,6 +10,7 @@ import fr.insee.lunatic.model.flat.Roundabout; import fr.insee.lunatic.model.flat.variable.VariableType; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; @@ -17,91 +18,175 @@ import java.util.Optional; import static fr.insee.lunatic.model.flat.ComponentTypeEnum.*; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; -@TestInstance(TestInstance.Lifecycle.PER_CLASS) class LunaticRoundaboutLoopsTest { - // Integration test from a DDI questionnaire with a roundabout + // Integration test from a DDI questionnaire with a roundabout on a sequence + @Nested + @TestInstance(TestInstance.Lifecycle.PER_CLASS) + class RoundaboutOnSequence { + private Questionnaire lunaticQuestionnaire; + private Roundabout roundabout; - private Questionnaire lunaticQuestionnaire; - private Roundabout roundabout; - - @BeforeAll - void ddiToLunatic() throws DDIParsingException { - // - EnoParameters parameters = EnoParameters.of( - EnoParameters.Context.HOUSEHOLD, EnoParameters.ModeParameter.CAWI, Format.LUNATIC); - parameters.setIdentificationQuestion(false); - parameters.setResponseTimeQuestion(false); - parameters.setCommentSection(false); - // - lunaticQuestionnaire = DDIToLunatic.transform( - this.getClass().getClassLoader().getResourceAsStream("integration/ddi/ddi-roundabout.xml"), - parameters); - // the questionnaire should have 1 roundabout component - List roundabouts = lunaticQuestionnaire.getComponents().stream() - .filter(Roundabout.class::isInstance).map(Roundabout.class::cast) - .toList(); - assertEquals(1, roundabouts.size()); - roundabout = roundabouts.getFirst(); - } + @BeforeAll + void ddiToLunatic() throws DDIParsingException { + // + EnoParameters parameters = EnoParameters.of( + EnoParameters.Context.HOUSEHOLD, EnoParameters.ModeParameter.CAWI, Format.LUNATIC); + parameters.setIdentificationQuestion(false); + parameters.setResponseTimeQuestion(false); + parameters.setCommentSection(false); + // + lunaticQuestionnaire = DDIToLunatic.transform( + this.getClass().getClassLoader().getResourceAsStream("integration/ddi/ddi-roundabout.xml"), + parameters); + // the questionnaire should have 1 roundabout component + List roundabouts = lunaticQuestionnaire.getComponents().stream() + .filter(Roundabout.class::isInstance).map(Roundabout.class::cast) + .toList(); + assertEquals(1, roundabouts.size()); + roundabout = roundabouts.getFirst(); + } - @Test - void questionnaireStructure() { - List components = lunaticQuestionnaire.getComponents(); - assertEquals(6, components.size()); - assertEquals(SEQUENCE, components.get(0).getComponentType()); - assertEquals(INPUT, components.get(1).getComponentType()); - assertEquals(LOOP, components.get(2).getComponentType()); - assertEquals(ROUNDABOUT, components.get(3).getComponentType()); - assertEquals(SEQUENCE, components.get(4).getComponentType()); - assertEquals(CHECKBOX_BOOLEAN, components.get(5).getComponentType()); - } + @Test + void questionnaireStructure() { + List components = lunaticQuestionnaire.getComponents(); + assertEquals(6, components.size()); + assertEquals(SEQUENCE, components.get(0).getComponentType()); + assertEquals(INPUT, components.get(1).getComponentType()); + assertEquals(LOOP, components.get(2).getComponentType()); + assertEquals(ROUNDABOUT, components.get(3).getComponentType()); + assertEquals(SEQUENCE, components.get(4).getComponentType()); + assertEquals(CHECKBOX_BOOLEAN, components.get(5).getComponentType()); + } - @Test - void roundaboutProperties() { - // component properties - assertEquals("4", roundabout.getPage()); - assertEquals("\"Roundabout on S2\"", roundabout.getLabel().getValue()); - assertEquals(LabelTypeEnum.VTL_MD, roundabout.getLabel().getType()); - assertEquals("true", roundabout.getConditionFilter().getValue()); - // roundabout specific ones - assertEquals("count(FIRST_NAME)", roundabout.getIterations().getValue()); - assertEquals(LabelTypeEnum.VTL, roundabout.getIterations().getType()); - assertTrue(roundabout.getLocked()); - assertEquals("MAIN_LOOP_PROGRESS", roundabout.getProgressVariable()); - } + @Test + void roundaboutProperties() { + // component properties + assertEquals("4", roundabout.getPage()); + assertEquals("\"Roundabout on S2\"", roundabout.getLabel().getValue()); + assertEquals(LabelTypeEnum.VTL_MD, roundabout.getLabel().getType()); + assertEquals("true", roundabout.getConditionFilter().getValue()); + // roundabout specific ones + assertEquals("count(FIRST_NAME)", roundabout.getIterations().getValue()); + assertEquals(LabelTypeEnum.VTL, roundabout.getIterations().getType()); + assertTrue(roundabout.getLocked()); + assertEquals("MAIN_LOOP_PROGRESS", roundabout.getProgressVariable()); + } - @Test - void roundaboutItem() { - Roundabout.Item roundaboutItem = roundabout.getItem(); - assertEquals("FIRST_NAME", roundaboutItem.getLabel().getValue().stripTrailing()); - assertEquals(LabelTypeEnum.VTL_MD, roundaboutItem.getLabel().getType()); - assertEquals("\"Occurrence description of \" || FIRST_NAME", - roundaboutItem.getDescription().getValue().stripTrailing()); - assertEquals(LabelTypeEnum.VTL_MD, roundaboutItem.getDescription().getType()); - assertEquals("FIRST_NAME <> FIRST_NAME_REF", - roundaboutItem.getDisabled().getValue().stripTrailing()); - assertEquals(LabelTypeEnum.VTL, roundaboutItem.getDisabled().getType()); - } + @Test + void roundaboutItem() { + Roundabout.Item roundaboutItem = roundabout.getItem(); + assertEquals("FIRST_NAME", roundaboutItem.getLabel().getValue().stripTrailing()); + assertEquals(LabelTypeEnum.VTL_MD, roundaboutItem.getLabel().getType()); + assertEquals("\"Occurrence description of \" || FIRST_NAME", + roundaboutItem.getDescription().getValue().stripTrailing()); + assertEquals(LabelTypeEnum.VTL_MD, roundaboutItem.getDescription().getType()); + assertEquals("FIRST_NAME <> FIRST_NAME_REF", + roundaboutItem.getDisabled().getValue().stripTrailing()); + assertEquals(LabelTypeEnum.VTL, roundaboutItem.getDisabled().getType()); + } + + @Test + void roundaboutComponents() { + assertEquals(2, roundabout.getComponents().size()); + assertEquals(SEQUENCE, roundabout.getComponents().get(0).getComponentType()); + assertEquals(INPUT, roundabout.getComponents().get(1).getComponentType()); + roundabout.getComponents().forEach(component -> + assertEquals("true", component.getConditionFilter().getValue())); + } - @Test - void roundaboutComponents() { - assertEquals(2, roundabout.getComponents().size()); - assertEquals(SEQUENCE, roundabout.getComponents().get(0).getComponentType()); - assertEquals(INPUT, roundabout.getComponents().get(1).getComponentType()); - roundabout.getComponents().forEach(component -> - assertEquals("true", component.getConditionFilter().getValue())); + @Test + void roundaboutVariable() { + Optional progressVariable = lunaticQuestionnaire.getVariables().stream() + .filter(variable -> "MAIN_LOOP_PROGRESS".equals(variable.getName())) + .findAny(); + assertTrue(progressVariable.isPresent()); + } } - @Test - void roundaboutVariable() { - Optional progressVariable = lunaticQuestionnaire.getVariables().stream() - .filter(variable -> "MAIN_LOOP_PROGRESS".equals(variable.getName())) - .findAny(); - assertTrue(progressVariable.isPresent()); + + // Integration test from a DDI questionnaire with a roundabout + @Nested + @TestInstance(TestInstance.Lifecycle.PER_CLASS) + class RoundaboutOnSubsequence { + private Questionnaire lunaticQuestionnaire; + private Roundabout roundabout; + + @BeforeAll + void ddiToLunatic() throws DDIParsingException { + // + EnoParameters parameters = EnoParameters.of( + EnoParameters.Context.HOUSEHOLD, EnoParameters.ModeParameter.CAWI, Format.LUNATIC); + parameters.setIdentificationQuestion(false); + parameters.setResponseTimeQuestion(false); + parameters.setCommentSection(false); + // + lunaticQuestionnaire = DDIToLunatic.transform( + this.getClass().getClassLoader().getResourceAsStream( + "integration/ddi/ddi-roundabout-subsequence.xml"), + parameters); + // the questionnaire should have 1 roundabout component + List roundabouts = lunaticQuestionnaire.getComponents().stream() + .filter(Roundabout.class::isInstance).map(Roundabout.class::cast) + .toList(); + assertEquals(1, roundabouts.size()); + roundabout = roundabouts.getFirst(); + } + + @Test + void questionnaireStructure() { + List components = lunaticQuestionnaire.getComponents(); + assertEquals(6, components.size()); + assertEquals(SEQUENCE, components.get(0).getComponentType()); + assertEquals(INPUT_NUMBER, components.get(1).getComponentType()); + assertEquals(LOOP, components.get(2).getComponentType()); + assertEquals(ROUNDABOUT, components.get(3).getComponentType()); + assertEquals(SEQUENCE, components.get(4).getComponentType()); + assertEquals(INPUT, components.get(5).getComponentType()); + } + + @Test + void roundaboutProperties() { + // component properties + //assertEquals("4", roundabout.getPage()); + assertEquals("\"Roundabout on SS2\"", roundabout.getLabel().getValue()); + assertEquals(LabelTypeEnum.VTL_MD, roundabout.getLabel().getType()); + assertEquals("true", roundabout.getConditionFilter().getValue()); + // roundabout specific ones + assertEquals("count(Q1)", roundabout.getIterations().getValue()); + assertEquals(LabelTypeEnum.VTL, roundabout.getIterations().getType()); + assertFalse(roundabout.getLocked()); + assertEquals("LOOP_SS1_PROGRESS", roundabout.getProgressVariable()); + } + + @Test + void roundaboutItem() { + Roundabout.Item roundaboutItem = roundabout.getItem(); + assertEquals("\"Hello\"", roundaboutItem.getLabel().getValue().stripTrailing()); + assertEquals(LabelTypeEnum.VTL_MD, roundaboutItem.getLabel().getType()); + assertNull(roundaboutItem.getDescription()); + assertNull(roundaboutItem.getDisabled()); + } + + @Test + void roundaboutComponents() { + assertEquals(2, roundabout.getComponents().size()); + assertEquals(SUBSEQUENCE, roundabout.getComponents().get(0).getComponentType()); + assertEquals(INPUT, roundabout.getComponents().get(1).getComponentType()); + roundabout.getComponents().forEach(component -> + assertEquals("true", component.getConditionFilter().getValue())); + } + + @Test + void roundaboutVariable() { + Optional progressVariable = lunaticQuestionnaire.getVariables().stream() + .filter(variable -> "LOOP_SS1_PROGRESS".equals(variable.getName())) + .findAny(); + assertTrue(progressVariable.isPresent()); + } } + } diff --git a/eno-core/src/test/resources/functional/ddi/ddi-lx4qzdty.xml b/eno-core/src/test/resources/functional/ddi/ddi-lx4qzdty.xml new file mode 100644 index 000000000..fa6790043 --- /dev/null +++ b/eno-core/src/test/resources/functional/ddi/ddi-lx4qzdty.xml @@ -0,0 +1,2884 @@ + +fr.insee + INSEE-lx4qzdty + 1 + + + Test boucle FB + + + + fr.insee + RessourcePackage-lx4qzdty + 1 + + fr.insee + InterviewerInstructionScheme-lx4qzdty + 1 + + A définir + + + fr.insee + lujqi58d + 1 + + help + + + SelfAdministeredQuestionnaire.WebBased + + + SelfAdministeredQuestionnaire.Paper + + + Interview.Telephone.CATI + + + Interview.FaceToFace.CAPIorCAMI + + + + Questions sur votre logement + + + + + fr.insee + luv1xb9i + 1 + + instruction + + + SelfAdministeredQuestionnaire.WebBased + + + + test uniquement cawi + + + + + fr.insee + lwgcw23g + 1 + + help + + + SelfAdministeredQuestionnaire.WebBased + + + SelfAdministeredQuestionnaire.Paper + + + Interview.Telephone.CATI + + + Interview.FaceToFace.CAPIorCAMI + + + + Super déclaration + + + + + fr.insee + lxkfu25h-OL + 1 + + loop.instanceLabel + + + + ¤lujr5vll-QOP-lujqw28u¤ + + + + fr.insee + lujr5vll-QOP-lujqw28u + 1 + OutParameter + + + + + + fr.insee + lxkfu25h-CI-0-II-0 + 1 + + warning + + + + fallait pas + + + + + fr.insee + lxkfu25h-CI-1-II-1 + 1 + + warning + + + + fallait vraiment pas ! + + + + + fr.insee + lx4qtysq-OL + 1 + + loop.instanceLabel + + + + ¤lujr5vll-QOP-lujqw28u¤ + + + + fr.insee + lujr5vll-QOP-lujqw28u + 1 + OutParameter + + + + + + fr.insee + lx4qtysq-CI-0-II-0 + 1 + + warning + + + + fallait pas davantage + + + + + fr.insee + lx4qtysq-CI-1-II-1 + 1 + + warning + + + + Quand je disais qu'il ne fallait pas ! + + + + + + fr.insee + ControlConstructScheme-lx4qzdty + 1 + + fr.insee + Sequence-lx4qzdty + 1 + + Test boucle FB + + template + + fr.insee + lujqfpva + 1 + Sequence + + + fr.insee + lujqrqmp + 1 + Sequence + + + fr.insee + lujyi4pe + 1 + Sequence + + + fr.insee + lx4qtysq + 1 + Sequence + + + + fr.insee + lujqfpva + 1 + + SEQ1 + + + Séquence 1 + + module + + fr.insee + lujqeci5 + 1 + Sequence + + + fr.insee + lujqbyzl + 1 + Sequence + + + + fr.insee + lujqeci5 + 1 + + SANTE + + + Votre santé + + submodule + + fr.insee + lujqp80o-QC + 1 + QuestionConstruct + + + + fr.insee + lujqbyzl + 1 + + LOGEMENT + + + Votre logement + + + fr.insee + lujqi58d + 1 + Instruction + + + fr.insee + luv1xb9i + 1 + Instruction + + submodule + + fr.insee + lujqu9v7-QC + 1 + QuestionConstruct + + + + fr.insee + lujqrqmp + 1 + + HABITANTS + + + Habitants du logement + + module + + fr.insee + lujqwl1t-QC + 1 + QuestionConstruct + + + fr.insee + luk13nnr + 1 + Loop + + + fr.insee + lulbmyhr + 1 + Sequence + + + + fr.insee + luk18oun + 1 + + THL_PRENOM + + + Composition du logement + + + fr.insee + lwgcw23g + 1 + Instruction + + submodule + + fr.insee + lujr5vll-QC + 1 + QuestionConstruct + + + + fr.insee + lulbmyhr + 1 + + COMMENTCOMPO + + + Commentaire sur composition du logement + + submodule + + fr.insee + lulbam4k-QC + 1 + QuestionConstruct + + + + fr.insee + lujyi4pe + 1 + + DTAILDESIN + + + Détail des individus + + module + + fr.insee + lujyp9vl + 1 + Loop + + + fr.insee + lxkfu25h + 1 + Sequence + + + + fr.insee + lujykwaz + 1 + + THL_DHL + + + "Caractéristiques de " || ¤lujykuvt-GOP¤ + + submodule + + fr.insee + lujyd8ap-QC + 1 + QuestionConstruct + + + + fr.insee + lujyik5q + 1 + + CARAC + + + "Autres caractéristiques de " || ¤lujykuvt-GOP¤ || " : filtrée pour le premier individu" + + submodule + + fr.insee + lujyq5qw-QC + 1 + QuestionConstruct + + + + fr.insee + luk0swcz + 1 + + ENCOREDAUT + + + "Encore d'autres caractéristiques de " || ¤lujykuvt-GOP¤ || " : filtrée pour le premier individu" + + submodule + + fr.insee + luk0npgm-QC + 1 + QuestionConstruct + + + + fr.insee + luk1ojt5 + 1 + + BOUCLESEQ + + + "Belle séquence pour " || ¤lujykuvt-GOP¤ + + module + + fr.insee + lumfc98o + 1 + Sequence + + + fr.insee + lumfe3bj + 1 + Sequence + + + + fr.insee + lumfc98o + 1 + + BELLESOUSSEQ + + + "Belle sous-séquence pour " || ¤lujykuvt-GOP¤ + + submodule + + fr.insee + luk17g1l-QC + 1 + QuestionConstruct + + + + fr.insee + lumfe3bj + 1 + + AUTREBELLESOUSSEQ + + + Autre belle sous-seq + + submodule + + fr.insee + lumfai3t-QC + 1 + QuestionConstruct + + + + fr.insee + lulbelgr + 1 + + AUTREBOUCL + + + "Autre séquence pour " || ¤lujykuvt-GOP¤ + + module + + fr.insee + lulbqdzi-QC + 1 + QuestionConstruct + + + + fr.insee + lxkfu25h + 1 + + RP autres + + + fr.insee + lxkfu25h-OL + 1 + Instruction + + roundabout + + fr.insee + lxkfu25h-BOUCLE_AUTRES + 1 + Loop + + + fr.insee + lxkfu25h-CI-0 + 1 + ComputationItem + + + + fr.insee + lx4qtysq + 1 + + RP SEQ + + + fr.insee + lx4qtysq-OL + 1 + Instruction + + roundabout + + fr.insee + lx4qtysq-BOUCLE_SEQ + 1 + Loop + + + fr.insee + lx4qtysq-LOCK + 1 + ComputationItem + + + fr.insee + lx4qtysq-CI-0 + 1 + ComputationItem + + + + fr.insee + lx4qtysq-LOCK + 1 + roundabout-locked + + + VTL + true + + + + + fr.insee + luk13nnr + 1 + + BOUCLE_PRENOMS + + + + vtl + + fr.insee + luk13nnr-MIN-IP-1 + 1 + + T_NBHAB + + + + + fr.insee + lujr677w-GOP + 1 + OutParameter + + + fr.insee + luk13nnr-MIN-IP-1 + 1 + InParameter + + + luk13nnr-MIN-IP-1 + + + + + vtl + + fr.insee + luk13nnr-IP-1 + 1 + + T_NBHAB + + + + + fr.insee + lujr677w-GOP + 1 + OutParameter + + + fr.insee + luk13nnr-IP-1 + 1 + InParameter + + + luk13nnr-IP-1 + + + + + vtl + 1 + + + + fr.insee + luk13nnr-SEQ + 1 + Sequence + + + + fr.insee + luk13nnr-SEQ + 1 + loopContent + + fr.insee + luk18oun + 1 + Sequence + + + + fr.insee + lujyp9vl + 1 + + BOUCLE_DHL + + + fr.insee + lujyp9vl-SEQ + 1 + Sequence + + + + fr.insee + lujyp9vl-SEQ + 1 + loopContent + + fr.insee + lujykwaz + 1 + Sequence + + + + fr.insee + lxkfu25h-BOUCLE_AUTRES + 1 + + BOUCLE_AUTRES + + + fr.insee + lxkfu25h-BOUCLE_AUTRES-ITE + 1 + IfThenElse + + + + fr.insee + lx4qtysq-BOUCLE_SEQ + 1 + + BOUCLE_SEQ + + + fr.insee + lx4qtysq-BOUCLE_SEQ-SEQ + 1 + Sequence + + + + fr.insee + lx4qtysq-BOUCLE_SEQ-SEQ + 1 + loopContent + + fr.insee + luk1ojt5 + 1 + Sequence + + + fr.insee + lulbelgr + 1 + Sequence + + + fr.insee + lx4qtysq-CI-1 + 1 + ComputationItem + + + + fr.insee + lxkfu25h-BOUCLE_AUTRES-ITE + 1 + + A définir + + + + + hideable + + + vtl + + fr.insee + lxkfu25h-BOUCLE_AUTRES-ITE-IP-1 + 1 + + PRENOMREF + + + + fr.insee + lxkfu25h-BOUCLE_AUTRES-ITE-IP-2 + 1 + + PRENOM + + + + + fr.insee + lujxt0qg-GOP + 1 + OutParameter + + + fr.insee + lxkfu25h-BOUCLE_AUTRES-ITE-IP-1 + 1 + InParameter + + + + + fr.insee + lujykuvt-GOP + 1 + OutParameter + + + fr.insee + lxkfu25h-BOUCLE_AUTRES-ITE-IP-2 + 1 + InParameter + + + not(lxkfu25h-BOUCLE_AUTRES-ITE-IP-2 <> lxkfu25h-BOUCLE_AUTRES-ITE-IP-1) + + + + fr.insee + lxkfu25h-BOUCLE_AUTRES-ITE-THEN + 1 + Sequence + + + + fr.insee + lxkfu25h-BOUCLE_AUTRES-ITE-THEN + 1 + + + + filteredLoopContent + + fr.insee + lujyik5q + 1 + Sequence + + + fr.insee + luk0swcz + 1 + Sequence + + + fr.insee + lxkfu25h-CI-1 + 1 + ComputationItem + + + + fr.insee + lujqp80o-QC + 1 + + ETAT + + + fr.insee + lujqp80o + 1 + QuestionItem + + + + fr.insee + lujqu9v7-QC + 1 + + SATISFAIT + + + fr.insee + lujqu9v7 + 1 + QuestionItem + + + + fr.insee + lujqwl1t-QC + 1 + + T_NHAB + + + fr.insee + lujqwl1t + 1 + QuestionItem + + + + fr.insee + lujr5vll-QC + 1 + + T_PRENOM + + + fr.insee + lujr5vll + 1 + QuestionItem + + + + fr.insee + lulbam4k-QC + 1 + + COMMCOMPO + + + fr.insee + lulbam4k + 1 + QuestionItem + + + + fr.insee + lujyd8ap-QC + 1 + + T_SEXE + + + fr.insee + lujyd8ap + 1 + QuestionItem + + + + fr.insee + lujyq5qw-QC + 1 + + T_DATENAIS + + + fr.insee + lujyq5qw + 1 + QuestionItem + + + + fr.insee + luk0npgm-QC + 1 + + REMARQUES + + + fr.insee + luk0npgm + 1 + QuestionItem + + + + fr.insee + luk17g1l-QC + 1 + + SUPERQUEST + + + fr.insee + luk17g1l + 1 + QuestionItem + + + + fr.insee + lumfai3t-QC + 1 + + ENCOREUNEQ + + + fr.insee + lumfai3t + 1 + QuestionItem + + + + fr.insee + lulbqdzi-QC + 1 + + AUTRESUPERQUEST + + + fr.insee + lulbqdzi + 1 + QuestionItem + + + + fr.insee + lxkfu25h-CI-0 + 1 + + Controle RP + + + Controle RP + + + fr.insee + lxkfu25h-CI-0-II-0 + 1 + Instruction + + informational + + + vtl + 1 = 1 + + + + + fr.insee + lxkfu25h-CI-1 + 1 + + Contrôle occurrence + + + Contrôle occurrence + + + fr.insee + lxkfu25h-CI-1-II-1 + 1 + Instruction + + stumblingblock + + + vtl + 1 = 2 + + + + + fr.insee + lx4qtysq-CI-0 + 1 + + RP sans filtre check RP + + + RP sans filtre check RP + + + fr.insee + lx4qtysq-CI-0-II-0 + 1 + Instruction + + warning + + + vtl + 1 = 3 + + + + + fr.insee + lx4qtysq-CI-1 + 1 + + RP sans filtre check occurrence + + + RP sans filtre check occurrence + + + fr.insee + lx4qtysq-CI-1-II-1 + 1 + Instruction + + stumblingblock + + + vtl + 1 = 4 + + + + + + fr.insee + QuestionScheme-lx4qzdty + 1 + + A définir + + + fr.insee + lujqp80o + 1 + + ETAT + + + fr.insee + lujqp80o-QOP-lujqghb8 + 1 + + ETAT + + + + + fr.insee + lujqp80o-RDOP-lujqghb8 + 1 + OutParameter + + + fr.insee + lujqp80o-QOP-lujqghb8 + 1 + OutParameter + + + + + Vous allez bien ? + + + + radio-button + + fr.insee + lujqbrqd + 1 + CodeList + + + fr.insee + lujqp80o-RDOP-lujqghb8 + 1 + + + fr.insee + lujqbrqd + 1 + CodeList + + + + + + + + fr.insee + lujqu9v7 + 1 + + SATISFAIT + + + fr.insee + lujqu9v7-QOP-lujqcl4u + 1 + + SATISFAIT + + + + + fr.insee + lujqu9v7-RDOP-lujqcl4u + 1 + OutParameter + + + fr.insee + lujqu9v7-QOP-lujqcl4u + 1 + OutParameter + + + + + Êtes-vous satisfait de votre logement ? + + + + radio-button + + fr.insee + lujqbrqd + 1 + CodeList + + + fr.insee + lujqu9v7-RDOP-lujqcl4u + 1 + + + fr.insee + lujqbrqd + 1 + CodeList + + + + + + + + fr.insee + lujqwl1t + 1 + + T_NHAB + + + fr.insee + lujqwl1t-QOP-lujqp3uh + 1 + + T_NHAB + + + + + fr.insee + lujqwl1t-RDOP-lujqp3uh + 1 + OutParameter + + + fr.insee + lujqwl1t-QOP-lujqp3uh + 1 + OutParameter + + + + + Combien d'habitants dans votre logement ? + + + + + 0 + 10 + + Decimal + + fr.insee + lujqwl1t-RDOP-lujqp3uh + 1 + + + + + fr.insee + lujr5vll + 1 + + T_PRENOM + + + fr.insee + lujr5vll-QOP-lujqw28u + 1 + + T_PRENOM + + + + + fr.insee + lujr5vll-RDOP-lujqw28u + 1 + OutParameter + + + fr.insee + lujr5vll-QOP-lujqw28u + 1 + OutParameter + + + + + " " || if (¤lujr677w-GOP¤ = 1) then "Votre prénom : " else (if ( not(isnull(¤lujr5vll-QOP-lujqw28u¤)) and ¤lujr5vll-QOP-lujqw28u¤=¤lujxt0qg-GOP¤ ) then "Votre prénom : " else ( if (isnull(¤lujr59z1-GOP¤) and isnull(¤lujr5vll-QOP-lujqw28u¤)) then "Prénom (commencez par votre prénom) : " else "Prénom : ")) + + + + + fr.insee + lujr5vll-RDOP-lujqw28u + 1 + + + + + + fr.insee + lulbam4k + 1 + + COMMCOMPO + + + fr.insee + lulbam4k-QOP-lulbxbzy + 1 + + COMMCOMPO + + + + + fr.insee + lulbam4k-RDOP-lulbxbzy + 1 + OutParameter + + + fr.insee + lulbam4k-QOP-lulbxbzy + 1 + OutParameter + + + + + Un petit commentaire sur cette composition de logement ? + + + + + fr.insee + lulbam4k-RDOP-lulbxbzy + 1 + + + + + + fr.insee + lujyd8ap + 1 + + T_SEXE + + + fr.insee + lujyd8ap-QOP-luk19e2q + 1 + + T_SEXE + + + + + fr.insee + lujyd8ap-RDOP-luk19e2q + 1 + OutParameter + + + fr.insee + lujyd8ap-QOP-luk19e2q + 1 + OutParameter + + + + + "Quel est " || if (¤lujykuvt-GOP¤ = ¤lujxt0qg-GOP¤) then "votre sexe ?" else "le sexe de " || ¤lujykuvt-GOP¤ || " ?" + + + + radio-button + + fr.insee + lujydxc8 + 1 + CodeList + + + fr.insee + lujyd8ap-RDOP-luk19e2q + 1 + + + fr.insee + lujydxc8 + 1 + CodeList + + + + + + + + fr.insee + lujyq5qw + 1 + + T_DATENAIS + + + fr.insee + lujyq5qw-QOP-luk1r1u5 + 1 + + T_DATENAIS + + + + + fr.insee + lujyq5qw-RDOP-luk1r1u5 + 1 + OutParameter + + + fr.insee + lujyq5qw-QOP-luk1r1u5 + 1 + OutParameter + + + + + "Quelle est la date de naissance de " || ¤lujykuvt-GOP¤ || " ?" + + + + YYYY-MM-DD + date + + 1900-01-01 + 2025-12-31 + + + fr.insee + lujyq5qw-RDOP-luk1r1u5 + 1 + + + + + fr.insee + luk0npgm + 1 + + REMARQUES + + + fr.insee + luk0npgm-QOP-luk1cgel + 1 + + REMARQUES + + + + + fr.insee + luk0npgm-RDOP-luk1cgel + 1 + OutParameter + + + fr.insee + luk0npgm-QOP-luk1cgel + 1 + OutParameter + + + + + "Des remarques pour " || ¤lujykuvt-GOP¤ + + + + + fr.insee + luk0npgm-RDOP-luk1cgel + 1 + + + + + + fr.insee + luk17g1l + 1 + + SUPERQUEST + + + fr.insee + luk17g1l-QOP-luk1oswj + 1 + + SUPERQUEST + + + + + fr.insee + luk17g1l-RDOP-luk1oswj + 1 + OutParameter + + + fr.insee + luk17g1l-QOP-luk1oswj + 1 + OutParameter + + + + + "Super question pour " || ¤lujykuvt-GOP¤ + + + + + fr.insee + luk17g1l-RDOP-luk1oswj + 1 + + + + + + fr.insee + lumfai3t + 1 + + ENCOREUNEQ + + + fr.insee + lumfai3t-QOP-lumfrbne + 1 + + ENCOREUNEQ + + + + + fr.insee + lumfai3t-RDOP-lumfrbne + 1 + OutParameter + + + fr.insee + lumfai3t-QOP-lumfrbne + 1 + OutParameter + + + + + "Encore une question pour " || ¤lujykuvt-GOP¤ + + + + + fr.insee + lumfai3t-RDOP-lumfrbne + 1 + + + + + + fr.insee + lulbqdzi + 1 + + AUTRESUPERQUEST + + + fr.insee + lulbqdzi-QOP-lulbdpu3 + 1 + + AUTRESUPERQUEST + + + + + fr.insee + lulbqdzi-RDOP-lulbdpu3 + 1 + OutParameter + + + fr.insee + lulbqdzi-QOP-lulbdpu3 + 1 + OutParameter + + + + + "Autre super question pour " || ¤lujykuvt-GOP¤ + + + + + fr.insee + lulbqdzi-RDOP-lulbdpu3 + 1 + + + + + + + fr.insee + CategoryScheme-lujqbrqd + 1 + + oui_non + + + fr.insee + CA-lujqbrqd-1 + 1 + + Oui + + + + fr.insee + CA-lujqbrqd-2 + 1 + + Non + + + + + fr.insee + CategoryScheme-lujydxc8 + 1 + + L_SEXE + + + fr.insee + CA-lujydxc8-1 + 1 + + Homme + + + + fr.insee + CA-lujydxc8-2 + 1 + + Femme + + + + + fr.insee + CategoryScheme-lx4qzdty + 1 + + A définir + + + fr.insee + INSEE-COMMUN-CA-Booleen-1 + 1 + + + + + + + fr.insee + BOUCLEOVERVIEW-CLS + 1 + + BOUCLEOVERVIEW + + + fr.insee + lujqbrqd + 1 + + oui_non + + Regular + + Ordinal + + + fr.insee + lujqbrqd-1 + 1 + + fr.insee + CA-lujqbrqd-1 + 1 + Category + + 1 + + + fr.insee + lujqbrqd-2 + 1 + + fr.insee + CA-lujqbrqd-2 + 1 + Category + + 2 + + + + fr.insee + lujydxc8 + 1 + + L_SEXE + + Regular + + Ordinal + + + fr.insee + lujydxc8-1 + 1 + + fr.insee + CA-lujydxc8-1 + 1 + Category + + 1 + + + fr.insee + lujydxc8-2 + 1 + + fr.insee + CA-lujydxc8-2 + 1 + Category + + 2 + + + + fr.insee + INSEE-COMMUN-CL-Booleen + 1 + + Booleen + + Regular + + Ordinal + + + fr.insee + INSEE-COMMUN-CL-Booleen-1 + 1 + + fr.insee + INSEE-COMMUN-CA-Booleen-1 + 1 + Category + + 1 + + + + + fr.insee + VariableScheme-lx4qzdty + 1 + + Variable Scheme for the survey + + + fr.insee + lujr677w + 1 + + T_NBHAB + + + Nombre d'habitants prise en compte du null (T_NBHAB) + + + fr.insee + lujr677w-VROP + 1 + + + + fr.insee + lujr677w-GI + 1 + GenerationInstruction + + + fr.insee + lujr677w-GOP + 1 + OutParameter + + + fr.insee + lujr677w-VROP + 1 + OutParameter + + + + + + 1 + 30 + + Decimal + + + + + fr.insee + lujr59z1 + 1 + + PRENOMREFB + + + Premier prénom Brut (PRENOMREFB) + + + fr.insee + lujr59z1-VROP + 1 + + + + fr.insee + lujr59z1-GI + 1 + GenerationInstruction + + + fr.insee + lujr59z1-GOP + 1 + OutParameter + + + fr.insee + lujr59z1-VROP + 1 + OutParameter + + + + + + + + fr.insee + lujxt0qg + 1 + + PRENOMREF + + + PRENOMREF (gestion du null) + + + fr.insee + lujxt0qg-VROP + 1 + + + + fr.insee + lujxt0qg-GI + 1 + GenerationInstruction + + + fr.insee + lujxt0qg-GOP + 1 + OutParameter + + + fr.insee + lujxt0qg-VROP + 1 + OutParameter + + + + + + + + fr.insee + lujykuvt + 1 + + PRENOM + + + PRENOM (gestion du null) + + + fr.insee + lujykuvt-VROP + 1 + + + + fr.insee + lujykuvt-GI + 1 + GenerationInstruction + + + fr.insee + lujykuvt-GOP + 1 + OutParameter + + + fr.insee + lujykuvt-VROP + 1 + OutParameter + + + + + + + + fr.insee + lujypfs4 + 1 + + PRENOMB + + + Prénom Brut (PRENOMB) + + + fr.insee + lujypfs4-VROP + 1 + + + + fr.insee + lujypfs4-GI + 1 + GenerationInstruction + + + fr.insee + lujypfs4-GOP + 1 + OutParameter + + + fr.insee + lujypfs4-VROP + 1 + OutParameter + + + + + + + + fr.insee + lujqdi0b + 1 + + ETAT + + + ETAT label + + + fr.insee + lujqp80o-QOP-lujqghb8 + 1 + OutParameter + + + fr.insee + lujqp80o + 1 + QuestionItem + + + + + fr.insee + lujqbrqd + 1 + CodeList + + + + + + fr.insee + lujqjcbm + 1 + + SATISFAIT + + + SATISFAIT label + + + fr.insee + lujqu9v7-QOP-lujqcl4u + 1 + OutParameter + + + fr.insee + lujqu9v7 + 1 + QuestionItem + + + + + fr.insee + lujqbrqd + 1 + CodeList + + + + + + fr.insee + lujxqjmy + 1 + + T_NHAB + + + T_NHAB label + + + fr.insee + lujqwl1t-QOP-lujqp3uh + 1 + OutParameter + + + fr.insee + lujqwl1t + 1 + QuestionItem + + + + + 0 + 10 + + Decimal + + + + + fr.insee + lujqte1k + 1 + + T_PRENOM + + + T_PRENOM label + + + fr.insee + lujr5vll-QOP-lujqw28u + 1 + OutParameter + + + fr.insee + lujr5vll + 1 + QuestionItem + + + + + + + fr.insee + lulbgfpa + 1 + + COMMCOMPO + + + COMMCOMPO label + + + fr.insee + lulbam4k-QOP-lulbxbzy + 1 + OutParameter + + + fr.insee + lulbam4k + 1 + QuestionItem + + + + + + + fr.insee + lujyfgwl + 1 + + T_SEXE + + + T_SEXE label + + + fr.insee + lujyd8ap-QOP-luk19e2q + 1 + OutParameter + + + fr.insee + lujyd8ap + 1 + QuestionItem + + + + + fr.insee + lujydxc8 + 1 + CodeList + + + + + + fr.insee + lujy7h5y + 1 + + T_DATENAIS + + + T_DATENAIS label + + + fr.insee + lujyq5qw-QOP-luk1r1u5 + 1 + OutParameter + + + fr.insee + lujyq5qw + 1 + QuestionItem + + + + YYYY-MM-DD + date + + 1900-01-01 + 2025-12-31 + + + + + + fr.insee + luk0vanu + 1 + + REMARQUES + + + REMARQUES label + + + fr.insee + luk0npgm-QOP-luk1cgel + 1 + OutParameter + + + fr.insee + luk0npgm + 1 + QuestionItem + + + + + + + fr.insee + luk1j1mo + 1 + + SUPERQUEST + + + SUPERQUEST label + + + fr.insee + luk17g1l-QOP-luk1oswj + 1 + OutParameter + + + fr.insee + luk17g1l + 1 + QuestionItem + + + + + + + fr.insee + lumfe7x7 + 1 + + ENCOREUNEQ + + + ENCOREUNEQ label + + + fr.insee + lumfai3t-QOP-lumfrbne + 1 + OutParameter + + + fr.insee + lumfai3t + 1 + QuestionItem + + + + + + + fr.insee + lulboaaf + 1 + + AUTRESUPERQUEST + + + AUTRESUPERQUEST label + + + fr.insee + lulbqdzi-QOP-lulbdpu3 + 1 + OutParameter + + + fr.insee + lulbqdzi + 1 + QuestionItem + + + + + + + fr.insee + luk13nnr-vg + 1 + + + fr.insee + luk13nnr + 1 + Loop + + + fr.insee + lujyp9vl + 1 + Loop + + + fr.insee + lxkfu25h-BOUCLE_AUTRES + 1 + Loop + + + fr.insee + lx4qtysq-BOUCLE_SEQ + 1 + Loop + + + Loop + + BOUCLE_PRENOMS + + + fr.insee + lujykuvt + 1 + Variable + + + fr.insee + lujypfs4 + 1 + Variable + + + fr.insee + lujqte1k + 1 + Variable + + + fr.insee + lujyfgwl + 1 + Variable + + + fr.insee + lujy7h5y + 1 + Variable + + + fr.insee + luk0vanu + 1 + Variable + + + fr.insee + luk1j1mo + 1 + Variable + + + fr.insee + lumfe7x7 + 1 + Variable + + + fr.insee + lulboaaf + 1 + Variable + + + + fr.insee + INSEE-Instrument-lx4qzdty-vg + 1 + + + fr.insee + Instrument-lx4qzdty + 1 + Instrument + + + Questionnaire + + BOUCLEOVERVIEW + + + fr.insee + lujr677w + 1 + Variable + + + fr.insee + lujr59z1 + 1 + Variable + + + fr.insee + lujxt0qg + 1 + Variable + + + fr.insee + lujqdi0b + 1 + Variable + + + fr.insee + lujqjcbm + 1 + Variable + + + fr.insee + lujxqjmy + 1 + Variable + + + fr.insee + lulbgfpa + 1 + Variable + + + fr.insee + luk13nnr-vg + 1 + VariableGroup + + + + + fr.insee + INSEE-SIMPSONS-PIS-1 + 1 + + SIMPSONS + + + Processing instructions of the Simpsons questionnaire + + + fr.insee + lujr677w-GI + 1 + + fr.insee + lujqwl1t + 1 + QuestionItem + + + fr.insee + lujxqjmy + 1 + Variable + + + + vtl + + fr.insee + lujr677w-IP-1 + 1 + + T_NHAB + + + + fr.insee + lujr677w-GOP + 1 + + + + fr.insee + lujqwl1t-QOP-lujqp3uh + 1 + OutParameter + + + fr.insee + lujr677w-IP-1 + 1 + InParameter + + + nvl(lujr677w-IP-1,1) + + + + fr.insee + Sequence-lx4qzdty + 1 + Sequence + + + + fr.insee + lujr59z1-GI + 1 + + fr.insee + lujr5vll + 1 + QuestionItem + + + fr.insee + lujqte1k + 1 + Variable + + + + vtl + + fr.insee + lujr59z1-IP-1 + 1 + + T_PRENOM + + + + fr.insee + lujr59z1-GOP + 1 + + + + fr.insee + lujr5vll-QOP-lujqw28u + 1 + OutParameter + + + fr.insee + lujr59z1-IP-1 + 1 + InParameter + + + first_value(lujr59z1-IP-1 over()) + + + + fr.insee + Sequence-lx4qzdty + 1 + Sequence + + + + fr.insee + lujxt0qg-GI + 1 + + fr.insee + lujr677w + 1 + Variable + + + fr.insee + lujr59z1 + 1 + Variable + + + + vtl + + fr.insee + lujxt0qg-IP-1 + 1 + + T_NBHAB + + + + fr.insee + lujxt0qg-IP-2 + 1 + + PRENOMREFB + + + + fr.insee + lujxt0qg-GOP + 1 + + + + fr.insee + lujr677w-GOP + 1 + OutParameter + + + fr.insee + lujxt0qg-IP-1 + 1 + InParameter + + + + + fr.insee + lujr59z1-GOP + 1 + OutParameter + + + fr.insee + lujxt0qg-IP-2 + 1 + InParameter + + + if (lujxt0qg-IP-1 = 1) then nvl(lujxt0qg-IP-2, "PRENOM") else nvl(lujxt0qg-IP-2, "PRENOM1") + + + + fr.insee + Sequence-lx4qzdty + 1 + Sequence + + + + fr.insee + lujykuvt-GI + 1 + + fr.insee + lujypfs4 + 1 + Variable + + + + vtl + + fr.insee + lujykuvt-IP-1 + 1 + + PRENOMB + + + + fr.insee + lujykuvt-GOP + 1 + + + + fr.insee + lujypfs4-GOP + 1 + OutParameter + + + fr.insee + lujykuvt-IP-1 + 1 + InParameter + + + nvl(lujykuvt-IP-1, "PRENOM") + + + + fr.insee + luk13nnr + 1 + Loop + + + + fr.insee + lujypfs4-GI + 1 + + fr.insee + lujr5vll + 1 + QuestionItem + + + fr.insee + lujqte1k + 1 + Variable + + + + vtl + + fr.insee + lujypfs4-IP-1 + 1 + + T_PRENOM + + + + fr.insee + lujypfs4-GOP + 1 + + + + fr.insee + lujr5vll-QOP-lujqw28u + 1 + OutParameter + + + fr.insee + lujypfs4-IP-1 + 1 + InParameter + + + lujypfs4-IP-1 + + + + fr.insee + luk13nnr + 1 + Loop + + + + + fr.insee + INSEE-SIMPSONS-MRS + 1 + + Liste de formats numériques et dates de + l'enquête + Numeric and DateTime list for the survey + + + fr.insee + INSEE-COMMUN-MNR-DateTimedate-YYYY-MM-DD + 1 + YYYY-MM-DD + date + + 1900-01-01 + format-date(current-date(),'[Y0001]-[M01]-[D01]') + + + + + + fr.insee + StudyUnit-lx4qzdty + 1 + + + fr.insee + DataCollection-lx4qzdty + 1 + + fr.insee + QuestionScheme-lx4qzdty + 1 + QuestionScheme + + + fr.insee + ControlConstructScheme-lx4qzdty + 1 + ControlConstructScheme + + + fr.insee + InterviewerInstructionScheme-lx4qzdty + 1 + InterviewerInstructionScheme + + + fr.insee + InstrumentScheme-lx4qzdty + 1 + + fr.insee + Instrument-lx4qzdty + 1 + + BOUCLEOVERVIEW + + + Test boucle FB questionnaire + + A définir + + fr.insee + Sequence-lx4qzdty + 1 + Sequence + + + + + + diff --git a/eno-core/src/test/resources/functional/pogues/pogues-lx4qzdty.json b/eno-core/src/test/resources/functional/pogues/pogues-lx4qzdty.json new file mode 100644 index 000000000..79ed3dee2 --- /dev/null +++ b/eno-core/src/test/resources/functional/pogues/pogues-lx4qzdty.json @@ -0,0 +1,1158 @@ +{ + "id": "lx4qzdty", + "Name": "BOUCLEOVERVIEW", + "Child": [ + { + "id": "lujqfpva", + "Name": "SEQ1", + "type": "SequenceType", + "Child": [ + { + "id": "lujqeci5", + "Name": "SANTE", + "type": "SequenceType", + "Child": [ + { + "id": "lujqp80o", + "Name": "ETAT", + "type": "QuestionType", + "Label": [ + "Vous allez bien ?" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "lujqghb8", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1, + "visualizationHint": "RADIO" + }, + "mandatory": false, + "CodeListReference": "lujqbrqd", + "CollectedVariableReference": "lujqdi0b" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SINGLE_CHOICE", + "ClarificationQuestion": [] + } + ], + "Label": [ + "Votre santé" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "SUBMODULE" + }, + { + "id": "lujqbyzl", + "Name": "LOGEMENT", + "type": "SequenceType", + "Child": [ + { + "id": "lujqu9v7", + "Name": "SATISFAIT", + "type": "QuestionType", + "Label": [ + "Êtes-vous satisfait de votre logement ?" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "lujqcl4u", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1, + "visualizationHint": "RADIO" + }, + "mandatory": false, + "CodeListReference": "lujqbrqd", + "CollectedVariableReference": "lujqjcbm" + } + ], + "TargetMode": [ + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SINGLE_CHOICE", + "ClarificationQuestion": [] + } + ], + "Label": [ + "Votre logement" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAWI", + "PAPI" + ], + "Declaration": [ + { + "id": "lujqi58d", + "Text": "Questions sur votre logement", + "position": "AFTER_QUESTION_TEXT", + "DeclarationMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "declarationType": "HELP" + }, + { + "id": "luv1xb9i", + "Text": "test uniquement cawi", + "position": "AFTER_QUESTION_TEXT", + "DeclarationMode": [ + "CAWI" + ], + "declarationType": "INSTRUCTION" + } + ], + "FlowControl": [], + "genericName": "SUBMODULE" + } + ], + "Label": [ + "Séquence 1" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "lujqrqmp", + "Name": "HABITANTS", + "type": "SequenceType", + "Child": [ + { + "id": "lujqwl1t", + "Name": "T_NHAB", + "type": "QuestionType", + "Label": [ + "Combien d'habitants dans votre logement ?" + ], + "depth": 2, + "Control": [], + "Response": [ + { + "id": "lujqp3uh", + "Datatype": { + "Unit": "", + "type": "NumericDatatypeType", + "Maximum": "10", + "Minimum": "0", + "Decimals": "", + "typeName": "NUMERIC" + }, + "mandatory": false, + "CollectedVariableReference": "lujxqjmy" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + }, + { + "id": "luk18oun", + "Name": "THL_PRENOM", + "type": "SequenceType", + "Child": [ + { + "id": "lujr5vll", + "Name": "T_PRENOM", + "type": "QuestionType", + "Label": [ + "\" \" || if ($T_NBHAB$ = 1) then \"Votre prénom : \" else (if ( not(isnull($T_PRENOM$)) and $T_PRENOM$=$PRENOMREF$ ) then \"Votre prénom : \" else ( if (isnull($PRENOMREFB$) and isnull($T_PRENOM$)) then \"Prénom (commencez par votre prénom) : \" else \"Prénom : \"))" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "lujqw28u", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": "40" + }, + "mandatory": false, + "CollectedVariableReference": "lujqte1k" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "Composition du logement" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [ + { + "id": "lwgcw23g", + "Text": "Super déclaration", + "position": "AFTER_QUESTION_TEXT", + "DeclarationMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "declarationType": "HELP" + } + ], + "FlowControl": [], + "genericName": "SUBMODULE" + }, + { + "id": "lulbmyhr", + "Name": "COMMENTCOMPO", + "type": "SequenceType", + "Child": [ + { + "id": "lulbam4k", + "Name": "COMMCOMPO", + "type": "QuestionType", + "Label": [ + "Un petit commentaire sur cette composition de logement ?" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "lulbxbzy", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "lulbgfpa" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "Commentaire sur composition du logement" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "SUBMODULE" + } + ], + "Label": [ + "Habitants du logement" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "lujyi4pe", + "Name": "DTAILDESIN", + "type": "SequenceType", + "Child": [ + { + "id": "lujykwaz", + "Name": "THL_DHL", + "type": "SequenceType", + "Child": [ + { + "id": "lujyd8ap", + "Name": "T_SEXE", + "type": "QuestionType", + "Label": [ + "\"Quel est \" || if ($PRENOM$ = $PRENOMREF$) then \"votre sexe ?\" else \"le sexe de \" || $PRENOM$ || \" ?\"" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "luk19e2q", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1, + "visualizationHint": "RADIO" + }, + "mandatory": false, + "CodeListReference": "lujydxc8", + "CollectedVariableReference": "lujyfgwl" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SINGLE_CHOICE", + "ClarificationQuestion": [] + } + ], + "Label": [ + "\"Caractéristiques de \" || $PRENOM$" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "SUBMODULE" + }, + { + "id": "lxkfu25h", + "Loop": { + "Name": "BOUCLE_AUTRES", + "Filter": "$PRENOM$ <> $PRENOMREF$ ", + "MemberReference": [ + "lujyik5q", + "luk0swcz" + ], + "IterableReference": "luk13nnr" + }, + "Name": "RPAUTRE", + "type": "RoundaboutType", + "Label": [ + "RP autres" + ], + "depth": 2, + "Locked": false, + "Control": [ + { + "id": "m1912vb0", + "scope": false, + "criticity": "INFO", + "Expression": "1 = 1", + "Description": "Controle RP", + "FailMessage": "fallait pas", + "post_collect": false, + "during_collect": false + }, + { + "id": "m190i3jg", + "scope": "occurrence", + "criticity": "ERROR", + "Expression": "1 = 2", + "Description": "Contrôle occurrence", + "FailMessage": "fallait vraiment pas !", + "post_collect": false, + "during_collect": false + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "OccurrenceLabel": "$T_PRENOM$ ", + "OccurrenceDescription": "" + }, + { + "id": "lujyik5q", + "Name": "CARAC", + "type": "SequenceType", + "Child": [ + { + "id": "lujyq5qw", + "Name": "T_DATENAIS", + "type": "QuestionType", + "Label": [ + "\"Quelle est la date de naissance de \" || $PRENOM$ || \" ?\"" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "luk1r1u5", + "Datatype": { + "type": "DateDatatypeType", + "Format": "YYYY-MM-DD", + "Maximum": "2025-12-31", + "Minimum": "1900-01-01", + "typeName": "DATE" + }, + "mandatory": false, + "CollectedVariableReference": "lujy7h5y" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "\"Autres caractéristiques de \" || $PRENOM$ || \" : filtrée pour le premier individu\"" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "SUBMODULE" + }, + { + "id": "luk0swcz", + "Name": "ENCOREDAUT", + "type": "SequenceType", + "Child": [ + { + "id": "luk0npgm", + "Name": "REMARQUES", + "type": "QuestionType", + "Label": [ + "\"Des remarques pour \" || $PRENOM$" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "luk1cgel", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "luk0vanu" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "\"Encore d'autres caractéristiques de \" || $PRENOM$ || \" : filtrée pour le premier individu\"" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "SUBMODULE" + } + ], + "Label": [ + "Détail des individus" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "lx4qtysq", + "Loop": { + "Name": "BOUCLE_SEQ", + "MemberReference": [ + "luk1ojt5", + "lulbelgr" + ], + "IterableReference": "luk13nnr" + }, + "Name": "RPSEQ", + "type": "RoundaboutType", + "Label": [ + "RP SEQ" + ], + "depth": 1, + "Locked": true, + "Control": [ + { + "id": "m19323n8", + "scope": false, + "criticity": "WARN", + "Expression": "1 = 3", + "Description": "RP sans filtre check RP", + "FailMessage": "fallait pas davantage", + "post_collect": false, + "during_collect": false + }, + { + "id": "m193baym", + "scope": "occurrence", + "criticity": "ERROR", + "Expression": "1 = 4", + "Description": "RP sans filtre check occurrence", + "FailMessage": "Quand je disais qu'il ne fallait pas !", + "post_collect": false, + "during_collect": false + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "OccurrenceLabel": "$T_PRENOM$ ", + "OccurrenceDescription": "" + }, + { + "id": "luk1ojt5", + "Name": "BOUCLESEQ", + "type": "SequenceType", + "Child": [ + { + "id": "lumfc98o", + "Name": "BELLESOUSSEQ", + "type": "SequenceType", + "Child": [ + { + "id": "luk17g1l", + "Name": "SUPERQUEST", + "type": "QuestionType", + "Label": [ + "\"Super question pour \" || $PRENOM$" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "luk1oswj", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "luk1j1mo" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "\"Belle sous-séquence pour \" || $PRENOM$" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "SUBMODULE" + }, + { + "id": "lumfe3bj", + "Name": "AUTREBELLESOUSSEQ", + "type": "SequenceType", + "Child": [ + { + "id": "lumfai3t", + "Name": "ENCOREUNEQ", + "type": "QuestionType", + "Label": [ + "\"Encore une question pour \" || $PRENOM$" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "lumfrbne", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "lumfe7x7" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "Autre belle sous-seq" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "SUBMODULE" + } + ], + "Label": [ + "\"Belle séquence pour \" || $PRENOM$" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "lulbelgr", + "Name": "AUTREBOUCL", + "type": "SequenceType", + "Child": [ + { + "id": "lulbqdzi", + "Name": "AUTRESUPERQUEST", + "type": "QuestionType", + "Label": [ + "\"Autre super question pour \" || $PRENOM$" + ], + "depth": 2, + "Control": [], + "Response": [ + { + "id": "lulbdpu3", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "lulboaaf" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "\"Autre séquence pour \" || $PRENOM$" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "idendquest", + "Name": "QUESTIONNAIRE_END", + "type": "SequenceType", + "Child": [], + "Label": [ + "QUESTIONNAIRE_END" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + } + ], + "Label": [ + "Test boucle FB" + ], + "final": false, + "owner": "DR59-SNDI", + "agency": "fr.insee", + "CodeLists": { + "CodeList": [ + { + "id": "lujqbrqd", + "Code": [ + { + "Label": "Oui", + "Value": "1", + "Parent": "" + }, + { + "Label": "Non", + "Value": "2", + "Parent": "" + } + ], + "Label": "oui_non" + }, + { + "id": "lujydxc8", + "Code": [ + { + "Label": "Homme", + "Value": "1", + "Parent": "" + }, + { + "Label": "Femme", + "Value": "2", + "Parent": "" + } + ], + "Label": "L_SEXE" + } + ] + }, + "Variables": { + "Variable": [ + { + "id": "lujr677w", + "Name": "T_NBHAB", + "type": "CalculatedVariableType", + "Label": "Nombre d'habitants prise en compte du null (T_NBHAB)", + "Formula": "nvl($T_NHAB$,1)", + "Datatype": { + "Unit": "", + "type": "NumericDatatypeType", + "Maximum": "30", + "Minimum": "1", + "Decimals": "", + "typeName": "NUMERIC" + } + }, + { + "id": "lujr59z1", + "Name": "PRENOMREFB", + "type": "CalculatedVariableType", + "Label": "Premier prénom Brut (PRENOMREFB)", + "Formula": "first_value($T_PRENOM$ over())\r\n", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": "40" + } + }, + { + "id": "lujxt0qg", + "Name": "PRENOMREF", + "type": "CalculatedVariableType", + "Label": "PRENOMREF (gestion du null)", + "Formula": "if ($T_NBHAB$ = 1) then nvl($PRENOMREFB$, \"PRENOM\")\r\nelse nvl($PRENOMREFB$, \"PRENOM1\")", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": "40" + } + }, + { + "id": "lujykuvt", + "Name": "PRENOM", + "type": "CalculatedVariableType", + "Label": "PRENOM (gestion du null)", + "Scope": "luk13nnr", + "Formula": "nvl($PRENOMB$, \"PRENOM\")", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": "40" + } + }, + { + "id": "lujypfs4", + "Name": "PRENOMB", + "type": "CalculatedVariableType", + "Label": "Prénom Brut (PRENOMB)", + "Scope": "luk13nnr", + "Formula": "$T_PRENOM$", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": "249" + } + }, + { + "id": "lujqdi0b", + "Name": "ETAT", + "type": "CollectedVariableType", + "Label": "ETAT label", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1 + }, + "CodeListReference": "lujqbrqd" + }, + { + "id": "lujqjcbm", + "Name": "SATISFAIT", + "type": "CollectedVariableType", + "Label": "SATISFAIT label", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1 + }, + "CodeListReference": "lujqbrqd" + }, + { + "id": "lujxqjmy", + "Name": "T_NHAB", + "type": "CollectedVariableType", + "Label": "T_NHAB label", + "Datatype": { + "Unit": "", + "type": "NumericDatatypeType", + "Maximum": "10", + "Minimum": "0", + "Decimals": "", + "typeName": "NUMERIC" + } + }, + { + "id": "lujqte1k", + "Name": "T_PRENOM", + "type": "CollectedVariableType", + "Label": "T_PRENOM label", + "Scope": "luk13nnr", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": "40" + } + }, + { + "id": "lulbgfpa", + "Name": "COMMCOMPO", + "type": "CollectedVariableType", + "Label": "COMMCOMPO label", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "lujyfgwl", + "Name": "T_SEXE", + "type": "CollectedVariableType", + "Label": "T_SEXE label", + "Scope": "luk13nnr", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1 + }, + "CodeListReference": "lujydxc8" + }, + { + "id": "lujy7h5y", + "Name": "T_DATENAIS", + "type": "CollectedVariableType", + "Label": "T_DATENAIS label", + "Scope": "luk13nnr", + "Datatype": { + "type": "DateDatatypeType", + "Format": "YYYY-MM-DD", + "Maximum": "2025-12-31", + "Minimum": "1900-01-01", + "typeName": "DATE" + } + }, + { + "id": "luk0vanu", + "Name": "REMARQUES", + "type": "CollectedVariableType", + "Label": "REMARQUES label", + "Scope": "luk13nnr", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "luk1j1mo", + "Name": "SUPERQUEST", + "type": "CollectedVariableType", + "Label": "SUPERQUEST label", + "Scope": "luk13nnr", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "lumfe7x7", + "Name": "ENCOREUNEQ", + "type": "CollectedVariableType", + "Label": "ENCOREUNEQ label", + "Scope": "luk13nnr", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "lulboaaf", + "Name": "AUTRESUPERQUEST", + "type": "CollectedVariableType", + "Label": "AUTRESUPERQUEST label", + "Scope": "luk13nnr", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + } + ] + }, + "flowLogic": "FILTER", + "Iterations": { + "Iteration": [ + { + "id": "lujyp9vl", + "Name": "BOUCLE_DHL", + "type": "DynamicIterationType", + "MemberReference": [ + "lujykwaz", + "lujykwaz" + ], + "IterableReference": "luk13nnr" + }, + { + "id": "luk13nnr", + "Name": "BOUCLE_PRENOMS", + "Step": "1", + "type": "DynamicIterationType", + "Maximum": "$T_NBHAB$ ", + "Minimum": "$T_NBHAB$ ", + "MemberReference": [ + "luk18oun", + "luk18oun" + ] + } + ] + }, + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "FlowControl": [], + "genericName": "QUESTIONNAIRE", + "ComponentGroup": [ + { + "id": "lujqjw5v", + "Name": "PAGE_1", + "Label": [ + "Components for page 1" + ], + "MemberReference": [ + "lujqfpva", + "lujqeci5", + "lujqp80o", + "lujqbyzl", + "lujqu9v7", + "lujqrqmp", + "lujqwl1t", + "luk18oun", + "lujr5vll", + "lulbmyhr", + "lulbam4k", + "lujyi4pe", + "lujykwaz", + "lujyd8ap", + "lxkfu25h", + "lujyik5q", + "lujyq5qw", + "luk0swcz", + "luk0npgm", + "luk1ojt5", + "lumfc98o", + "luk17g1l", + "lumfe3bj", + "lumfai3t", + "lulbelgr", + "lulbqdzi", + "idendquest" + ] + } + ], + "DataCollection": [ + { + "id": "esa-dc-2018", + "uri": "http://ddi:fr.insee:DataCollection.esa-dc-2018" + } + ], + "lastUpdatedDate": "Thu Sep 19 2024 11:22:03 GMT+0200 (heure d’été d’Europe centrale)", + "formulasLanguage": "VTL", + "childQuestionnaireRef": [] +} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/ddi/ddi-roundabout-subsequence.xml b/eno-core/src/test/resources/integration/ddi/ddi-roundabout-subsequence.xml new file mode 100644 index 000000000..446ced257 --- /dev/null +++ b/eno-core/src/test/resources/integration/ddi/ddi-roundabout-subsequence.xml @@ -0,0 +1,907 @@ + + + fr.insee + INSEE-m2c26y4n + 1 + + + Eno - Roundabout on subsequence + + + + fr.insee + RessourcePackage-m2c26y4n + 1 + + fr.insee + InterviewerInstructionScheme-m2c26y4n + 1 + + A définir + + + fr.insee + m2c2tvjk + 1 + + help + + + SelfAdministeredQuestionnaire.WebBased + + + SelfAdministeredQuestionnaire.Paper + + + Interview.Telephone.CATI + + + Interview.FaceToFace.CAPIorCAMI + + + + "Declaration of subsequence 1" + + + + + fr.insee + m2c2ozay-OL + 1 + + loop.instanceLabel + + + + "Hello" + + + + + fr.insee + m2c2wfk1 + 1 + + help + + + SelfAdministeredQuestionnaire.WebBased + + + SelfAdministeredQuestionnaire.Paper + + + Interview.Telephone.CATI + + + Interview.FaceToFace.CAPIorCAMI + + + + "Declaration of subsequence 2" + + + + + + fr.insee + ControlConstructScheme-m2c26y4n + 1 + + fr.insee + Sequence-m2c26y4n + 1 + + Eno - Roundabout on subsequence + + template + + fr.insee + m2c2jccv + 1 + Sequence + + + fr.insee + m2c29ajr + 1 + Sequence + + + + fr.insee + m2c2jccv + 1 + + S1 + + + "Sequence" + + module + + fr.insee + m2c2nmv8-QC + 1 + QuestionConstruct + + + fr.insee + m2c2lssx + 1 + Loop + + + fr.insee + m2c2ozay + 1 + Sequence + + + + fr.insee + m2c2ij4g + 1 + + SS1 + + + "Subsequence (with loop)" + + + fr.insee + m2c2tvjk + 1 + Instruction + + submodule + + fr.insee + m2c25w8u-QC + 1 + QuestionConstruct + + + + fr.insee + m2c27pvz + 1 + + SS2 + + + "Subsequence 2 (with roundabout)" + + + fr.insee + m2c2wfk1 + 1 + Instruction + + submodule + + fr.insee + m2c281yl-QC + 1 + QuestionConstruct + + + + fr.insee + m2c29ajr + 1 + + S_LAST + + + "Last sequence" + + module + + fr.insee + m2c296z7-QC + 1 + QuestionConstruct + + + + fr.insee + m2c2ozay + 1 + + "Roundabout on SS2" + + + fr.insee + m2c2ozay-OL + 1 + Instruction + + roundabout + + fr.insee + m2c2ozay-LOOP_SS2 + 1 + Loop + + + + fr.insee + m2c2lssx + 1 + + LOOP_SS1 + + + + vtl + + fr.insee + m2c2lssx-MIN-IP-1 + 1 + + HOW_MANY + + + + + fr.insee + m2c2nmv8-QOP-m2c2oplf + 1 + OutParameter + + + fr.insee + m2c2lssx-MIN-IP-1 + 1 + InParameter + + + m2c2lssx-MIN-IP-1 + + + + + vtl + + fr.insee + m2c2lssx-IP-1 + 1 + + HOW_MANY + + + + + fr.insee + m2c2nmv8-QOP-m2c2oplf + 1 + OutParameter + + + fr.insee + m2c2lssx-IP-1 + 1 + InParameter + + + m2c2lssx-IP-1 + + + + + vtl + 1 + + + + fr.insee + m2c2lssx-SEQ + 1 + Sequence + + + + fr.insee + m2c2lssx-SEQ + 1 + loopContent + + fr.insee + m2c2ij4g + 1 + Sequence + + + + fr.insee + m2c2ozay-LOOP_SS2 + 1 + + LOOP_SS2 + + + fr.insee + m2c2ozay-LOOP_SS2-SEQ + 1 + Sequence + + + + fr.insee + m2c2ozay-LOOP_SS2-SEQ + 1 + loopContent + + fr.insee + m2c27pvz + 1 + Sequence + + + + fr.insee + m2c2nmv8-QC + 1 + + HOW_MANY + + + fr.insee + m2c2nmv8 + 1 + QuestionItem + + + + fr.insee + m2c25w8u-QC + 1 + + Q1 + + + fr.insee + m2c25w8u + 1 + QuestionItem + + + + fr.insee + m2c281yl-QC + 1 + + Q2 + + + fr.insee + m2c281yl + 1 + QuestionItem + + + + fr.insee + m2c296z7-QC + 1 + + Q_LAST + + + fr.insee + m2c296z7 + 1 + QuestionItem + + + + + fr.insee + QuestionScheme-m2c26y4n + 1 + + A définir + + + fr.insee + m2c2nmv8 + 1 + + HOW_MANY + + + fr.insee + m2c2nmv8-QOP-m2c2oplf + 1 + + HOW_MANY + + + + + fr.insee + m2c2nmv8-RDOP-m2c2oplf + 1 + OutParameter + + + fr.insee + m2c2nmv8-QOP-m2c2oplf + 1 + OutParameter + + + + + "How many?" + + + + + 1 + 5 + + Decimal + + fr.insee + m2c2nmv8-RDOP-m2c2oplf + 1 + + + + + fr.insee + m2c25w8u + 1 + + Q1 + + + fr.insee + m2c25w8u-QOP-m2c2x9fm + 1 + + Q1 + + + + + fr.insee + m2c25w8u-RDOP-m2c2x9fm + 1 + OutParameter + + + fr.insee + m2c25w8u-QOP-m2c2x9fm + 1 + OutParameter + + + + + "Question 1" + + + + + fr.insee + m2c25w8u-RDOP-m2c2x9fm + 1 + + + + + + fr.insee + m2c281yl + 1 + + Q2 + + + fr.insee + m2c281yl-QOP-m2c2so5q + 1 + + Q2 + + + + + fr.insee + m2c281yl-RDOP-m2c2so5q + 1 + OutParameter + + + fr.insee + m2c281yl-QOP-m2c2so5q + 1 + OutParameter + + + + + "Question 2" + + + + + fr.insee + m2c281yl-RDOP-m2c2so5q + 1 + + + + + + fr.insee + m2c296z7 + 1 + + Q_LAST + + + fr.insee + m2c296z7-QOP-m2c2q3ne + 1 + + Q_LAST + + + + + fr.insee + m2c296z7-RDOP-m2c2q3ne + 1 + OutParameter + + + fr.insee + m2c296z7-QOP-m2c2q3ne + 1 + OutParameter + + + + + "Last question" + + + + + fr.insee + m2c296z7-RDOP-m2c2q3ne + 1 + + + + + + + fr.insee + CategoryScheme-m2c26y4n + 1 + + A définir + + + fr.insee + INSEE-COMMUN-CA-Booleen-1 + 1 + + + + + + + fr.insee + ENO_ROUNDABOUT_SUBSEQUENCE-CLS + 1 + + ENO_ROUNDABOUT_SUBSEQUENCE + + + fr.insee + INSEE-COMMUN-CL-Booleen + 1 + + Booleen + + Regular + + Ordinal + + + fr.insee + INSEE-COMMUN-CL-Booleen-1 + 1 + + fr.insee + INSEE-COMMUN-CA-Booleen-1 + 1 + Category + + 1 + + + + + fr.insee + VariableScheme-m2c26y4n + 1 + + Variable Scheme for the survey + + + fr.insee + m2c2ij3x + 1 + + HOW_MANY + + + HOW_MANY label + + + fr.insee + m2c2nmv8-QOP-m2c2oplf + 1 + OutParameter + + + fr.insee + m2c2nmv8 + 1 + QuestionItem + + + + + 1 + 5 + + Decimal + + + + + fr.insee + m2c2qr2g + 1 + + Q1 + + + Q1 label + + + fr.insee + m2c25w8u-QOP-m2c2x9fm + 1 + OutParameter + + + fr.insee + m2c25w8u + 1 + QuestionItem + + + + + + + fr.insee + m2c26ack + 1 + + Q2 + + + Q2 label + + + fr.insee + m2c281yl-QOP-m2c2so5q + 1 + OutParameter + + + fr.insee + m2c281yl + 1 + QuestionItem + + + + + + + fr.insee + m2c2k56s + 1 + + Q_LAST + + + Q_LAST label + + + fr.insee + m2c296z7-QOP-m2c2q3ne + 1 + OutParameter + + + fr.insee + m2c296z7 + 1 + QuestionItem + + + + + + + fr.insee + m2c2lssx-vg + 1 + + + fr.insee + m2c2lssx + 1 + Loop + + + fr.insee + m2c2ozay-LOOP_SS2 + 1 + Loop + + + Loop + + LOOP_SS1 + + + fr.insee + m2c2qr2g + 1 + Variable + + + fr.insee + m2c26ack + 1 + Variable + + + + fr.insee + INSEE-Instrument-m2c26y4n-vg + 1 + + + fr.insee + Instrument-m2c26y4n + 1 + Instrument + + + Questionnaire + + ENO_ROUNDABOUT_SUBSEQUENCE + + + fr.insee + m2c2ij3x + 1 + Variable + + + fr.insee + m2c2k56s + 1 + Variable + + + fr.insee + m2c2lssx-vg + 1 + VariableGroup + + + + + fr.insee + INSEE-SIMPSONS-PIS-1 + 1 + + SIMPSONS + + + Processing instructions of the Simpsons questionnaire + + + + fr.insee + INSEE-SIMPSONS-MRS + 1 + + Liste de formats numériques et dates de + l'enquête + Numeric and DateTime list for the survey + + + + + fr.insee + StudyUnit-m2c26y4n + 1 + + + fr.insee + DataCollection-m2c26y4n + 1 + + fr.insee + QuestionScheme-m2c26y4n + 1 + QuestionScheme + + + fr.insee + ControlConstructScheme-m2c26y4n + 1 + ControlConstructScheme + + + fr.insee + InterviewerInstructionScheme-m2c26y4n + 1 + InterviewerInstructionScheme + + + fr.insee + InstrumentScheme-m2c26y4n + 1 + + fr.insee + Instrument-m2c26y4n + 1 + + ENO_ROUNDABOUT_SUBSEQUENCE + + + Eno - Roundabout on subsequence questionnaire + + A définir + + fr.insee + Sequence-m2c26y4n + 1 + Sequence + + + + + + From 91777df7d488ee97f0b1c3942f29dd82f8ea5368 Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Wed, 23 Oct 2024 14:42:52 +0200 Subject: [PATCH 05/19] fix : eno-xforms-zip-incorrect --- .../ws/controller/GenerationCustomController.java | 6 +++--- .../ws/controller/GenerationStandardController.java | 4 ++-- .../ws/controller/utils/EnoXmlControllerUtils.java | 13 +++++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java index e73c3e792..6ce26bf0f 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java @@ -107,7 +107,7 @@ public ResponseEntity generateLunaticCustomParams( "You can get a parameters file by using the endpoint `/parameters/xml/BUSINESS/XFORMS`") @PostMapping(value = "ddi-2-xforms", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public ResponseEntity generateXformsCustomParams( + public ResponseEntity generateXformsCustomParams( @RequestPart(value="in") MultipartFile in, @RequestPart(value="params") MultipartFile params, @RequestPart(value="metadata") MultipartFile metadata, @@ -123,8 +123,8 @@ public ResponseEntity generateXformsCustomParams( addMultipartToBody(multipartBodyBuilder, specificTreatment, "specificTreatment"); // URI uri = xmlControllerUtils.newUriBuilder().path("questionnaire/ddi-2-xforms").build().toUri(); - String outFilename = questionnaireFilename(OutFormat.XFORMS, false); - return xmlControllerUtils.sendPostRequest(uri, multipartBodyBuilder, outFilename); + String outFilename = questionnaireFilename(OutFormat.XFORMS, true); + return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder, outFilename); } @Operation( diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java index 0fb7143d2..0ba18ff57 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java @@ -123,7 +123,7 @@ public ResponseEntity generateLunatic( "If the multi-model option is set to true, the output questionnaire(s) are put in a zip file.") @PostMapping(value = "{context}/xforms", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public ResponseEntity generateXforms( + public ResponseEntity generateXforms( @RequestPart(value="in") MultipartFile in, @RequestPart(value="metadata", required = false) MultipartFile metadata, @RequestPart(value="specificTreatment", required=false) MultipartFile specificTreatment, @@ -150,7 +150,7 @@ public ResponseEntity generateXforms( .queryParam("multi-model", multiModel) .build(context); String outFilename = questionnaireFilename(OutFormat.XFORMS, multiModel); - return xmlControllerUtils.sendPostRequest(uri, multipartBodyBuilder, outFilename); + return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder, outFilename); } @Operation( diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java index 21bf2deed..d4fa6f186 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java @@ -60,6 +60,19 @@ public ResponseEntity sendPostRequest(URI uri, MultipartBodyBuilder mult .body(result); } + public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder multipartBodyBuilder, String outFilename) { + Byte[] result = webClient.post() + .uri(uri) + .accept(MediaType.APPLICATION_OCTET_STREAM) + .contentType(MediaType.MULTIPART_FORM_DATA) + .body(BodyInserters.fromMultipartData(multipartBodyBuilder.build())) + .exchangeToMono(clientResponse -> clientResponse.bodyToMono(Byte[].class)) + .block(); + return ResponseEntity.ok() + .headers(HeadersUtils.with(outFilename)) + .body(result); + } + public ResponseEntity sendPostRequest(URI uri) { String result = webClient.post() .uri(uri) From 2aaa1a4268d28a4f10f077f7bd3139de3506364a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20S=C3=A9nave?= <59770457+nsenave@users.noreply.github.com> Date: Mon, 28 Oct 2024 08:50:43 +0100 Subject: [PATCH 06/19] fix: allow suggester with option responses in tables (#1135) * fix: allow suggester with option responses in tables * test(roundabout): add pogues equivalent of ddi file * test: integration test for option responses in tables --- .../LunaticSuggesterOptionResponses.java | 54 +- .../LunaticSuggesterOptionResponsesTest.java | 35 + .../ddi/ddi-suggester-options-table.xml | 1476 +++++++++++++++++ .../pogues/pogues-roundabout-subsequence.json | 416 +++++ .../pogues-suggester-options-table.json | 487 ++++++ settings.gradle.kts | 2 +- 6 files changed, 2462 insertions(+), 8 deletions(-) create mode 100644 eno-core/src/test/resources/integration/ddi/ddi-suggester-options-table.xml create mode 100644 eno-core/src/test/resources/integration/pogues/pogues-roundabout-subsequence.json create mode 100644 eno-core/src/test/resources/integration/pogues/pogues-suggester-options-table.json diff --git a/eno-core/src/main/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticSuggesterOptionResponses.java b/eno-core/src/main/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticSuggesterOptionResponses.java index 956714aca..49e6e97cb 100644 --- a/eno-core/src/main/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticSuggesterOptionResponses.java +++ b/eno-core/src/main/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticSuggesterOptionResponses.java @@ -86,25 +86,25 @@ static SuggesterResponseExpression unpackSuggesterResponseExpression(String expr public void apply(Questionnaire lunaticQuestionnaire) { // Map suggesterResponseExpressions = mapSuggesterResponseExpressions(lunaticQuestionnaire); - Map suggesterComponents = gatherSuggesterComponents(lunaticQuestionnaire); + Map suggesterComponents = gatherSuggesterComponents(lunaticQuestionnaire); // suggesterResponseExpressions.keySet().forEach(optionResponseName -> { SuggesterResponseExpression suggesterResponseExpression = suggesterResponseExpressions.get(optionResponseName); - Suggester suggester = suggesterComponents.get(suggesterResponseExpression.responseName()); - suggester.getOptionResponses().add(new Suggester.OptionResponse( + List optionResponses = getOptionResponses(suggesterComponents, suggesterResponseExpression.responseName()); + optionResponses.add(new Suggester.OptionResponse( optionResponseName, suggesterResponseExpression.fieldName())); convertOptionResponseVariable(lunaticQuestionnaire, optionResponseName); }); } - private Map gatherSuggesterComponents(Questionnaire lunaticQuestionnaire) { - Map suggesterComponents = new HashMap<>(); + private Map gatherSuggesterComponents(Questionnaire lunaticQuestionnaire) { + Map suggesterComponents = new HashMap<>(); putSuggesterComponents(suggesterComponents, lunaticQuestionnaire.getComponents()); return suggesterComponents; } - private void putSuggesterComponents(Map suggesterComponents, List lunaticComponents) { + private void putSuggesterComponents(Map suggesterComponents, List lunaticComponents) { lunaticComponents.forEach(component -> { - if (component instanceof Suggester suggester){ + if (component instanceof Suggester suggester) { ResponseType suggesterResponse = suggester.getResponse(); if (suggesterResponse == null) throw new MappingException("Suggester '" + suggester.getId() + "' has no response."); @@ -114,9 +114,49 @@ private void putSuggesterComponents(Map suggesterComponents, putSuggesterComponents(suggesterComponents, loop.getComponents()); if (component instanceof Roundabout roundabout) putSuggesterComponents(suggesterComponents, roundabout.getComponents()); + if (component instanceof Table table) + table.getBodyLines().forEach(bodyLine -> putSuggesterComponents( + suggesterComponents, bodyLine.getBodyCells(), table.getId())); + if (component instanceof RosterForLoop rosterForLoop) + putSuggesterComponents( + suggesterComponents, rosterForLoop.getComponents(), rosterForLoop.getId()); }); } + /** + * Inserts the body cells that have the component type "suggester" in the map. + * @param suggesterComponents Map of suggester (regular suggester components or body cells). + * @param bodyCells List of body cells. + * @param tableId Identifier of the table in which the cell belongs for logging purposes. + */ + private void putSuggesterComponents(Map suggesterComponents, List bodyCells, String tableId) { + bodyCells.forEach(bodyCell -> { + if (ComponentTypeEnum.SUGGESTER.equals(bodyCell.getComponentType())) { + ResponseType response = bodyCell.getResponse(); + if (response == null) + throw new MappingException("Suggester cell in table '" + tableId + "' has no response."); + suggesterComponents.put(response.getName(), bodyCell); + } + }); + } + + /** + * Suggester components in table objects are not Suggester objects but BodyCell objects. + * Then, there is no polymorphism for these. + * This method returns the option responses of the suggester with the given response name, whether it is a + * 'regular' suggester component or a body cell. + * @param suggesterComponents Map of suggester components/body cells indexed by response name. + * @param responseName String response name. + */ + private List getOptionResponses(Map suggesterComponents, String responseName) { + Object searched = suggesterComponents.get(responseName); + if (searched instanceof Suggester suggester) + return suggester.getOptionResponses(); + if (searched instanceof BodyCell suggesterCell && ComponentTypeEnum.SUGGESTER.equals(suggesterCell.getComponentType())) + return suggesterCell.getOptionResponses(); + throw new IllegalArgumentException("Component with response '" + responseName + "' is not a suggester."); + } + /** * Maps the information hold by calculated variables that have the magic expression for suggesters, and returns it * in a map designed to make the link between a suggester component, one of its fields and the corresponding diff --git a/eno-core/src/test/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticSuggesterOptionResponsesTest.java b/eno-core/src/test/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticSuggesterOptionResponsesTest.java index ce48192da..17a89a878 100644 --- a/eno-core/src/test/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticSuggesterOptionResponsesTest.java +++ b/eno-core/src/test/java/fr/insee/eno/core/processing/out/steps/lunatic/LunaticSuggesterOptionResponsesTest.java @@ -8,6 +8,7 @@ import fr.insee.eno.core.parameter.EnoParameters; import fr.insee.eno.core.parameter.Format; import fr.insee.eno.core.processing.out.steps.lunatic.LunaticSuggesterOptionResponses.SuggesterResponseExpression; +import fr.insee.eno.core.processing.out.steps.lunatic.table.LunaticTableProcessing; import fr.insee.lunatic.model.flat.*; import fr.insee.lunatic.model.flat.variable.*; import org.junit.jupiter.api.Test; @@ -155,4 +156,38 @@ void integrationTest() throws DDIParsingException { assertInstanceOf(CollectedVariableValues.Array.class, variables.get("ACTIVITY_LABEL").getValues()); } + @Test + void integrationTest_table() throws DDIParsingException { + // + EnoQuestionnaire enoQuestionnaire = DDIToEno.transform( + this.getClass().getClassLoader().getResourceAsStream( + "integration/ddi/ddi-suggester-options-table.xml"), + EnoParameters.of(EnoParameters.Context.DEFAULT, EnoParameters.ModeParameter.CAWI, Format.LUNATIC)); + Questionnaire lunaticQuestionnaire = new Questionnaire(); + new LunaticMapper().mapQuestionnaire(enoQuestionnaire, lunaticQuestionnaire); + new LunaticSortComponents(enoQuestionnaire).apply(lunaticQuestionnaire); + new LunaticLoopResolution(enoQuestionnaire).apply(lunaticQuestionnaire); + new LunaticVariablesDimension(enoQuestionnaire).apply(lunaticQuestionnaire); + + // + new LunaticTableProcessing(enoQuestionnaire).apply(lunaticQuestionnaire); + new LunaticSuggesterOptionResponses().apply(lunaticQuestionnaire); + + // Suggester cells in table + Table table = (Table) lunaticQuestionnaire.getComponents().get(1); + table.getBodyLines().forEach(bodyLine -> { + BodyCell suggesterCell = bodyLine.getBodyCells().get(1); + assertEquals(ComponentTypeEnum.SUGGESTER, suggesterCell.getComponentType()); + assertEquals(1, suggesterCell.getOptionResponses().size()); + assertEquals("label", suggesterCell.getOptionResponses().getFirst().attribute()); + }); + // Suggester cells in dynamic table + RosterForLoop roster = (RosterForLoop) lunaticQuestionnaire.getComponents().get(2); + BodyCell suggesterColumn = roster.getComponents().getFirst(); + assertEquals(ComponentTypeEnum.SUGGESTER, suggesterColumn.getComponentType()); + assertEquals(1, suggesterColumn.getOptionResponses().size()); + assertEquals("label", suggesterColumn.getOptionResponses().getFirst().attribute()); + assertEquals("Q_ROSTER1_LABEL", suggesterColumn.getOptionResponses().getFirst().name()); + } + } diff --git a/eno-core/src/test/resources/integration/ddi/ddi-suggester-options-table.xml b/eno-core/src/test/resources/integration/ddi/ddi-suggester-options-table.xml new file mode 100644 index 000000000..c5bd75e2a --- /dev/null +++ b/eno-core/src/test/resources/integration/ddi/ddi-suggester-options-table.xml @@ -0,0 +1,1476 @@ + + + fr.insee + INSEE-m2km3wwn + 1 + + + Eno - Suggester options in tables + + + + fr.insee + RessourcePackage-m2km3wwn + 1 + + fr.insee + InterviewerInstructionScheme-m2km3wwn + 1 + + A définir + + + + fr.insee + ControlConstructScheme-m2km3wwn + 1 + + fr.insee + Sequence-m2km3wwn + 1 + + Eno - Suggester options in tables + + template + + fr.insee + m2km0d8e + 1 + Sequence + + + fr.insee + m2nh0ouu + 1 + Sequence + + + + fr.insee + m2km0d8e + 1 + + S1 + + + "Sequence" + + module + + fr.insee + m2kmba1j-QC + 1 + QuestionConstruct + + + fr.insee + m2ngzsse-QC + 1 + QuestionConstruct + + + + fr.insee + m2nh0ouu + 1 + + S_LAST + + + "Last sequence" + + module + + fr.insee + m2nh7vkg-QC + 1 + QuestionConstruct + + + + fr.insee + m2kmba1j-QC + 1 + + Q_TABLE + + + fr.insee + m2kmba1j + 1 + QuestionGrid + + + + fr.insee + m2ngzsse-QC + 1 + + Q_ROSTER + + + fr.insee + m2ngzsse + 1 + QuestionGrid + + + + fr.insee + m2nh7vkg-QC + 1 + + Q_LAST + + + fr.insee + m2nh7vkg + 1 + QuestionItem + + + + + fr.insee + QuestionScheme-m2km3wwn + 1 + + A définir + + + fr.insee + m2nh7vkg + 1 + + Q_LAST + + + fr.insee + m2nh7vkg-QOP-m2nhrykn + 1 + + Q_LAST + + + + + fr.insee + m2nh7vkg-RDOP-m2nhrykn + 1 + OutParameter + + + fr.insee + m2nh7vkg-QOP-m2nhrykn + 1 + OutParameter + + + + + "Last question" + + + + + fr.insee + m2nh7vkg-RDOP-m2nhrykn + 1 + + + + + + fr.insee + m2kmba1j + 1 + + Q_TABLE + + + fr.insee + m2kmba1j-QOP-m2kmf9f3 + 1 + + Q_TABLE11 + + + + fr.insee + m2kmba1j-QOP-m2kmg1bf + 1 + + Q_TABLE21 + + + + fr.insee + m2kmba1j-QOP-m2kmeq97 + 1 + + Q_TABLE31 + + + + + fr.insee + m2kmba1j-RDOP-m2kmf9f3 + 1 + OutParameter + + + fr.insee + m2kmba1j-QOP-m2kmf9f3 + 1 + OutParameter + + + + + fr.insee + m2kmba1j-RDOP-m2kmg1bf + 1 + OutParameter + + + fr.insee + m2kmba1j-QOP-m2kmg1bf + 1 + OutParameter + + + + + fr.insee + m2kmba1j-RDOP-m2kmeq97 + 1 + OutParameter + + + fr.insee + m2kmba1j-QOP-m2kmeq97 + 1 + OutParameter + + + + + "Table question" + + + + + + fr.insee + m2kmcbtl + 1 + CodeList + + + + + + + fr.insee + m2kmba1j-secondDimension-fakeCL-1 + 1 + CodeList + + + + + + + suggester + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + fr.insee + m2kmba1j-RDOP-m2kmf9f3 + 1 + + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + + + + + + + + + + + + + suggester + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + fr.insee + m2kmba1j-RDOP-m2kmg1bf + 1 + + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + + + + + + + + + + + + + suggester + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + fr.insee + m2kmba1j-RDOP-m2kmeq97 + 1 + + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + + + + + + + + + + + + + + fr.insee + m2ngzsse + 1 + + Q_ROSTER + + + fr.insee + m2ngzsse-QOP-m2ni0gy2 + 1 + + Q_ROSTER1 + + + + + fr.insee + m2ngzsse-RDOP-m2ni0gy2 + 1 + OutParameter + + + fr.insee + m2ngzsse-QOP-m2ni0gy2 + 1 + OutParameter + + + + + "Dynamic table question" + + + + + + + + + fr.insee + m2ngzsse-secondDimension-fakeCL-1 + 1 + CodeList + + + + + + + suggester + + fr.insee + L_DIPLOMES-2-0-0 + 1 + CodeList + + + fr.insee + m2ngzsse-RDOP-m2ni0gy2 + 1 + + + fr.insee + L_DIPLOMES-2-0-0 + 1 + CodeList + + + + + + + + + + + + + + + + + fr.insee + CategoryScheme-m2kmcbtl + 1 + + TABLE_CODE_LIST + + + fr.insee + CA-m2kmcbtl-1 + 1 + + "Code A" + + + + fr.insee + CA-m2kmcbtl-2 + 1 + + "Code B" + + + + fr.insee + CA-m2kmcbtl-3 + 1 + + "Code C" + + + + + fr.insee + CategoryScheme-m2kmba1j-secondDimension-fakeCL-1 + 1 + + FAKE-CODELIST-m2kmba1j-secondDimension-fakeCL-1 + + + fr.insee + CA-m2kmba1j-secondDimension-fakeCL-1-1 + 1 + + "City suggester" + + + + + fr.insee + CategoryScheme-m2ngzsse-secondDimension-fakeCL-1 + 1 + + FAKE-CODELIST-m2ngzsse-secondDimension-fakeCL-1 + + + fr.insee + CA-m2ngzsse-secondDimension-fakeCL-1-1 + 1 + + "Diploma suggester" + + + + + fr.insee + CategoryScheme-m2km3wwn + 1 + + A définir + + + fr.insee + INSEE-COMMUN-CA-Booleen-1 + 1 + + + + + + + fr.insee + ENO_SUGGESTER_OPTIONS_TABLE-CLS + 1 + + ENO_SUGGESTER_OPTIONS_TABLE + + + fr.insee + m2kmcbtl + 1 + + TABLE_CODE_LIST + + Regular + + Ordinal + + + fr.insee + m2kmcbtl-1 + 1 + + fr.insee + CA-m2kmcbtl-1 + 1 + Category + + A + + + fr.insee + m2kmcbtl-2 + 1 + + fr.insee + CA-m2kmcbtl-2 + 1 + Category + + B + + + fr.insee + m2kmcbtl-3 + 1 + + fr.insee + CA-m2kmcbtl-3 + 1 + Category + + C + + + + fr.insee + L_COMMUNES-2024 + 1 + + SuggesterConfiguration + + label + [\w]+ + French + 3 + false + + + tokenized + + French + 3 + [\w.]+ + false + + + 1]]> + + + L_COMMUNES-2024 + + + Communes 2024 + + + urn:ddi:fr.insee:l_communes-2024:1 + CodeList + + Regular + + Ordinal + + + + fr.insee + L_DIPLOMES-2-0-0 + 1 + + SuggesterConfiguration + + label + [\w]+ + French + 3 + false + + + tokenized + + French + 3 + [\w.]+ + false + + + 1]]> + + + L_DIPLOMES-2-0-0 + + + Diplomes + + + urn:ddi:fr.insee:l_diplomes-2-0-0:1 + CodeList + + Regular + + Ordinal + + + + fr.insee + m2kmba1j-secondDimension-fakeCL-1 + 1 + + FAKE-CODELIST-m2kmba1j-secondDimension-fakeCL-1 + + Regular + + Ordinal + + + fr.insee + m2kmba1j-secondDimension-fakeCL-1-1 + 1 + + fr.insee + CA-m2kmba1j-secondDimension-fakeCL-1-1 + 1 + Category + + 1 + + + + fr.insee + m2ngzsse-secondDimension-fakeCL-1 + 1 + + FAKE-CODELIST-m2ngzsse-secondDimension-fakeCL-1 + + Regular + + Ordinal + + + fr.insee + m2ngzsse-secondDimension-fakeCL-1-1 + 1 + + fr.insee + CA-m2ngzsse-secondDimension-fakeCL-1-1 + 1 + Category + + 1 + + + + fr.insee + INSEE-COMMUN-CL-Booleen + 1 + + Booleen + + Regular + + Ordinal + + + fr.insee + INSEE-COMMUN-CL-Booleen-1 + 1 + + fr.insee + INSEE-COMMUN-CA-Booleen-1 + 1 + Category + + 1 + + + + + fr.insee + VariableScheme-m2km3wwn + 1 + + Variable Scheme for the survey + + + fr.insee + m2ngr0no + 1 + + Q_TABLE11_LABEL + + + "City label of code A" + + + fr.insee + m2ngr0no-VROP + 1 + + + + fr.insee + m2ngr0no-GI + 1 + GenerationInstruction + + + fr.insee + m2ngr0no-GOP + 1 + OutParameter + + + fr.insee + m2ngr0no-VROP + 1 + OutParameter + + + + + + + + fr.insee + m2ngto13 + 1 + + Q_TABLE21_LABEL + + + "City label of code B" + + + fr.insee + m2ngto13-VROP + 1 + + + + fr.insee + m2ngto13-GI + 1 + GenerationInstruction + + + fr.insee + m2ngto13-GOP + 1 + OutParameter + + + fr.insee + m2ngto13-VROP + 1 + OutParameter + + + + + + + + fr.insee + m2ngmao4 + 1 + + Q_TABLE31_LABEL + + + "City label of code C" + + + fr.insee + m2ngmao4-VROP + 1 + + + + fr.insee + m2ngmao4-GI + 1 + GenerationInstruction + + + fr.insee + m2ngmao4-GOP + 1 + OutParameter + + + fr.insee + m2ngmao4-VROP + 1 + OutParameter + + + + + + + + fr.insee + m2ngv63r + 1 + + Q_ROSTER1_LABEL + + + "Diploma label" + + + fr.insee + m2ngv63r-VROP + 1 + + + + fr.insee + m2ngv63r-GI + 1 + GenerationInstruction + + + fr.insee + m2ngv63r-GOP + 1 + OutParameter + + + fr.insee + m2ngv63r-VROP + 1 + OutParameter + + + + + + + + fr.insee + m2km49uq + 1 + + Q_TABLE11 + + + Code A-City suggester + + + fr.insee + m2kmba1j-QOP-m2kmf9f3 + 1 + OutParameter + + + fr.insee + m2kmba1j + 1 + QuestionGrid + + + + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + + + + fr.insee + m2kmctf1 + 1 + + Q_TABLE21 + + + Code B-City suggester + + + fr.insee + m2kmba1j-QOP-m2kmg1bf + 1 + OutParameter + + + fr.insee + m2kmba1j + 1 + QuestionGrid + + + + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + + + + fr.insee + m2klz161 + 1 + + Q_TABLE31 + + + Code C-City suggester + + + fr.insee + m2kmba1j-QOP-m2kmeq97 + 1 + OutParameter + + + fr.insee + m2kmba1j + 1 + QuestionGrid + + + + + fr.insee + L_COMMUNES-2024 + 1 + CodeList + + + + + + fr.insee + m2ngugy8 + 1 + + Q_ROSTER1 + + + Diploma suggester + + + fr.insee + m2ngzsse-QOP-m2ni0gy2 + 1 + OutParameter + + + fr.insee + m2ngzsse + 1 + QuestionGrid + + + + + fr.insee + L_DIPLOMES-2-0-0 + 1 + CodeList + + + + + + fr.insee + m2ngzmgg + 1 + + Q_LAST + + + Q_LAST label + + + fr.insee + m2nh7vkg-QOP-m2nhrykn + 1 + OutParameter + + + fr.insee + m2nh7vkg + 1 + QuestionItem + + + + + + + fr.insee + m2ngzsse-vg + 1 + + + fr.insee + m2ngzsse + 1 + QuestionGrid + + + Loop + + Q_ROSTER + + + fr.insee + m2ngv63r + 1 + Variable + + + fr.insee + m2ngugy8 + 1 + Variable + + + + fr.insee + INSEE-Instrument-m2km3wwn-vg + 1 + + + fr.insee + Instrument-m2km3wwn + 1 + Instrument + + + Questionnaire + + ENO_SUGGESTER_OPTIONS_TABLE + + + fr.insee + m2ngr0no + 1 + Variable + + + fr.insee + m2ngto13 + 1 + Variable + + + fr.insee + m2ngmao4 + 1 + Variable + + + fr.insee + m2km49uq + 1 + Variable + + + fr.insee + m2kmctf1 + 1 + Variable + + + fr.insee + m2klz161 + 1 + Variable + + + fr.insee + m2ngzmgg + 1 + Variable + + + fr.insee + m2ngzsse-vg + 1 + VariableGroup + + + + + fr.insee + INSEE-SIMPSONS-PIS-1 + 1 + + SIMPSONS + + + Processing instructions of the Simpsons questionnaire + + + fr.insee + m2ngr0no-GI + 1 + + fr.insee + m2kmba1j + 1 + QuestionGrid + + + fr.insee + m2km49uq + 1 + Variable + + + + vtl + + fr.insee + m2ngr0no-IP-1 + 1 + + Q_TABLE11 + + + + fr.insee + m2ngr0no-GOP + 1 + + + + fr.insee + m2kmba1j-QOP-m2kmf9f3 + 1 + OutParameter + + + fr.insee + m2ngr0no-IP-1 + 1 + InParameter + + + left_join(m2ngr0no-IP-1, "COMMUNES-2024" using id, label) + + + + fr.insee + Sequence-m2km3wwn + 1 + Sequence + + + + fr.insee + m2ngto13-GI + 1 + + fr.insee + m2kmba1j + 1 + QuestionGrid + + + fr.insee + m2kmctf1 + 1 + Variable + + + + vtl + + fr.insee + m2ngto13-IP-1 + 1 + + Q_TABLE21 + + + + fr.insee + m2ngto13-GOP + 1 + + + + fr.insee + m2kmba1j-QOP-m2kmg1bf + 1 + OutParameter + + + fr.insee + m2ngto13-IP-1 + 1 + InParameter + + + left_join(m2ngto13-IP-1, "COMMUNES-2024" using id, label) + + + + fr.insee + Sequence-m2km3wwn + 1 + Sequence + + + + fr.insee + m2ngmao4-GI + 1 + + fr.insee + m2kmba1j + 1 + QuestionGrid + + + fr.insee + m2klz161 + 1 + Variable + + + + vtl + + fr.insee + m2ngmao4-IP-1 + 1 + + Q_TABLE31 + + + + fr.insee + m2ngmao4-GOP + 1 + + + + fr.insee + m2kmba1j-QOP-m2kmeq97 + 1 + OutParameter + + + fr.insee + m2ngmao4-IP-1 + 1 + InParameter + + + left_join(m2ngmao4-IP-1, "COMMUNES-2024" using id, label) + + + + fr.insee + Sequence-m2km3wwn + 1 + Sequence + + + + fr.insee + m2ngv63r-GI + 1 + + fr.insee + m2ngzsse + 1 + QuestionGrid + + + fr.insee + m2ngugy8 + 1 + Variable + + + + vtl + + fr.insee + m2ngv63r-IP-1 + 1 + + Q_ROSTER1 + + + + fr.insee + m2ngv63r-GOP + 1 + + + + fr.insee + m2ngzsse-QOP-m2ni0gy2 + 1 + OutParameter + + + fr.insee + m2ngv63r-IP-1 + 1 + InParameter + + + left_join(m2ngv63r-IP-1, "L_DIPLOMES-2-0-0" using id, label) + + + + fr.insee + m2ngzsse-QC + 1 + QuestionConstruct + + + + + fr.insee + INSEE-SIMPSONS-MRS + 1 + + Liste de formats numériques et dates de + l'enquête + Numeric and DateTime list for the survey + + + + + fr.insee + StudyUnit-m2km3wwn + 1 + + + fr.insee + DataCollection-m2km3wwn + 1 + + fr.insee + QuestionScheme-m2km3wwn + 1 + QuestionScheme + + + fr.insee + ControlConstructScheme-m2km3wwn + 1 + ControlConstructScheme + + + fr.insee + InterviewerInstructionScheme-m2km3wwn + 1 + InterviewerInstructionScheme + + + fr.insee + InstrumentScheme-m2km3wwn + 1 + + fr.insee + Instrument-m2km3wwn + 1 + + ENO_SUGGESTER_OPTIONS_TABLE + + + Eno - Suggester options in tables questionnaire + + A définir + + fr.insee + Sequence-m2km3wwn + 1 + Sequence + + + + + + diff --git a/eno-core/src/test/resources/integration/pogues/pogues-roundabout-subsequence.json b/eno-core/src/test/resources/integration/pogues/pogues-roundabout-subsequence.json new file mode 100644 index 000000000..fa312795f --- /dev/null +++ b/eno-core/src/test/resources/integration/pogues/pogues-roundabout-subsequence.json @@ -0,0 +1,416 @@ +{ + "id": "m2c26y4n", + "Name": "ENO_ROUNDABOUT_SUBSEQUENCE", + "Child": [ + { + "id": "m2c2jccv", + "Name": "S1", + "type": "SequenceType", + "Child": [ + { + "id": "m2c2nmv8", + "Name": "HOW_MANY", + "type": "QuestionType", + "Label": [ + "\"How many?\"" + ], + "depth": 2, + "Control": [], + "Response": [ + { + "id": "m2c2ddwd", + "Datatype": { + "Unit": "", + "type": "NumericDatatypeType", + "Maximum": "5", + "Minimum": "1", + "Decimals": "", + "typeName": "NUMERIC" + }, + "mandatory": false, + "CollectedVariableReference": "m2c2ij3x" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + }, + { + "id": "m2c2ij4g", + "Name": "SS1", + "type": "SequenceType", + "Child": [ + { + "id": "m2c25w8u", + "Name": "Q1", + "type": "QuestionType", + "Label": [ + "\"Question 1\"" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "m2c2tzvk", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "m2c2qr2g" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "\"Subsequence (with loop)\"" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [ + { + "id": "m2c2tvjk", + "Text": "\"Declaration of subsequence 1\"", + "position": "AFTER_QUESTION_TEXT", + "DeclarationMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "declarationType": "HELP" + } + ], + "FlowControl": [], + "genericName": "SUBMODULE" + }, + { + "id": "m2c2ozay", + "Loop": { + "Name": "LOOP_SS2", + "MemberReference": [ + "m2c27pvz", + "m2c27pvz" + ], + "IterableReference": "m2c2lssx" + }, + "Name": "ROUNDABOUT_SS2", + "type": "RoundaboutType", + "Label": [ + "\"Roundabout on SS2\"" + ], + "depth": 2, + "Locked": false, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "OccurrenceLabel": "\"Hello\"", + "OccurrenceDescription": "" + }, + { + "id": "m2c27pvz", + "Name": "SS2", + "type": "SequenceType", + "Child": [ + { + "id": "m2c281yl", + "Name": "Q2", + "type": "QuestionType", + "Label": [ + "\"Question 2\"" + ], + "depth": 3, + "Control": [], + "Response": [ + { + "id": "m2c2hsjv", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "m2c26ack" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "\"Subsequence 2 (with roundabout)\"" + ], + "depth": 2, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [ + { + "id": "m2c2wfk1", + "Text": "\"Declaration of subsequence 2\"", + "position": "AFTER_QUESTION_TEXT", + "DeclarationMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "declarationType": "HELP" + } + ], + "FlowControl": [], + "genericName": "SUBMODULE" + } + ], + "Label": [ + "\"Sequence\"" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "m2c29ajr", + "Name": "S_LAST", + "type": "SequenceType", + "Child": [ + { + "id": "m2c296z7", + "Name": "Q_LAST", + "type": "QuestionType", + "Label": [ + "\"Last question\"" + ], + "depth": 2, + "Control": [], + "Response": [ + { + "id": "m2c2lyyr", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "m2c2k56s" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "\"Last sequence\"" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "idendquest", + "Name": "QUESTIONNAIRE_END", + "type": "SequenceType", + "Child": [], + "Label": [ + "QUESTIONNAIRE_END" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + } + ], + "Label": [ + "Eno - Roundabout on subsequence" + ], + "final": false, + "owner": "ENO-INTEGRATION-TESTS", + "agency": "fr.insee", + "CodeLists": { + "CodeList": [] + }, + "Variables": { + "Variable": [ + { + "id": "m2c2ij3x", + "Name": "HOW_MANY", + "type": "CollectedVariableType", + "Label": "HOW_MANY label", + "Datatype": { + "Unit": "", + "type": "NumericDatatypeType", + "Maximum": "5", + "Minimum": "1", + "Decimals": "", + "typeName": "NUMERIC" + } + }, + { + "id": "m2c2qr2g", + "Name": "Q1", + "type": "CollectedVariableType", + "Label": "Q1 label", + "Scope": "m2c2lssx", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "m2c26ack", + "Name": "Q2", + "type": "CollectedVariableType", + "Label": "Q2 label", + "Scope": "m2c2lssx", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "m2c2k56s", + "Name": "Q_LAST", + "type": "CollectedVariableType", + "Label": "Q_LAST label", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + } + ] + }, + "flowLogic": "FILTER", + "Iterations": { + "Iteration": [ + { + "id": "m2c2lssx", + "Name": "LOOP_SS1", + "Step": "1", + "type": "DynamicIterationType", + "Maximum": "$HOW_MANY$", + "Minimum": "$HOW_MANY$", + "MemberReference": [ + "m2c2ij4g", + "m2c2ij4g" + ] + } + ] + }, + "TargetMode": [ + "CAPI", + "CATI", + "CAWI", + "PAPI" + ], + "FlowControl": [], + "genericName": "QUESTIONNAIRE", + "ComponentGroup": [ + { + "id": "m2c2s4px", + "Name": "PAGE_1", + "Label": [ + "Components for page 1" + ], + "MemberReference": [ + "m2c2jccv", + "m2c2nmv8", + "m2c2ij4g", + "m2c25w8u", + "m2c2ozay", + "m2c27pvz", + "m2c281yl", + "m2c29ajr", + "m2c296z7", + "idendquest" + ] + } + ], + "DataCollection": [ + { + "id": "s2106-dc", + "uri": "http://ddi:fr.insee:DataCollection.s2106-dc", + "Name": "Enquête capacité à innover et stratégie 2022" + } + ], + "lastUpdatedDate": "Thu Oct 24 2024 18:04:56 GMT+0200 (heure d’été d’Europe centrale)", + "formulasLanguage": "VTL", + "childQuestionnaireRef": [] +} \ No newline at end of file diff --git a/eno-core/src/test/resources/integration/pogues/pogues-suggester-options-table.json b/eno-core/src/test/resources/integration/pogues/pogues-suggester-options-table.json new file mode 100644 index 000000000..4f0568037 --- /dev/null +++ b/eno-core/src/test/resources/integration/pogues/pogues-suggester-options-table.json @@ -0,0 +1,487 @@ +{ + "id": "m2km3wwn", + "Name": "ENO_SUGGESTER_OPTIONS_TABLE", + "Child": [ + { + "id": "m2km0d8e", + "Name": "S1", + "type": "SequenceType", + "Child": [ + { + "id": "m2kmba1j", + "Name": "Q_TABLE", + "type": "QuestionType", + "Label": [ + "\"Table question\"" + ], + "depth": 2, + "Control": [], + "Response": [ + { + "id": "m2kmf9f3", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1, + "visualizationHint": "SUGGESTER" + }, + "CodeListReference": "L_COMMUNES-2024", + "CollectedVariableReference": "m2km49uq" + }, + { + "id": "m2kmg1bf", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1, + "visualizationHint": "SUGGESTER" + }, + "CodeListReference": "L_COMMUNES-2024", + "CollectedVariableReference": "m2kmctf1" + }, + { + "id": "m2kmeq97", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1, + "visualizationHint": "SUGGESTER" + }, + "CodeListReference": "L_COMMUNES-2024", + "CollectedVariableReference": "m2klz161" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "PAPI", + "CAWI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "TABLE", + "ResponseStructure": { + "Mapping": [ + { + "MappingSource": "m2kmf9f3", + "MappingTarget": "1 1" + }, + { + "MappingSource": "m2kmg1bf", + "MappingTarget": "2 1" + }, + { + "MappingSource": "m2kmeq97", + "MappingTarget": "3 1" + } + ], + "Attribute": [], + "Dimension": [ + { + "dynamic": "0", + "dimensionType": "PRIMARY", + "CodeListReference": "m2kmcbtl" + }, + { + "Label": "\"City suggester\"", + "dynamic": "0", + "dimensionType": "MEASURE" + } + ] + }, + "ClarificationQuestion": [] + }, + { + "id": "m2ngzsse", + "Name": "Q_ROSTER", + "type": "QuestionType", + "Label": [ + "\"Dynamic table question\"" + ], + "depth": 2, + "Control": [], + "Response": [ + { + "id": "m2ngz0rf", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1, + "visualizationHint": "SUGGESTER" + }, + "CodeListReference": "L_DIPLOMES-2-0-0", + "CollectedVariableReference": "m2ngugy8" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "PAPI", + "CAWI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "TABLE", + "ResponseStructure": { + "Mapping": [ + { + "MappingSource": "m2ngz0rf", + "MappingTarget": "1 1" + } + ], + "Attribute": [], + "Dimension": [ + { + "dynamic": "1-5", + "dimensionType": "PRIMARY" + }, + { + "Label": "\"Diploma suggester\"", + "dynamic": "0", + "dimensionType": "MEASURE" + } + ] + }, + "ClarificationQuestion": [] + } + ], + "Label": [ + "\"Sequence\"" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "PAPI", + "CAWI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "m2nh0ouu", + "Name": "S_LAST", + "type": "SequenceType", + "Child": [ + { + "id": "m2nh7vkg", + "Name": "Q_LAST", + "type": "QuestionType", + "Label": [ + "\"Last question\"" + ], + "depth": 2, + "Control": [], + "Response": [ + { + "id": "m2nh0s7d", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + }, + "mandatory": false, + "CollectedVariableReference": "m2ngzmgg" + } + ], + "TargetMode": [ + "CAPI", + "CATI", + "PAPI", + "CAWI" + ], + "Declaration": [], + "FlowControl": [], + "questionType": "SIMPLE" + } + ], + "Label": [ + "\"Last sequence\"" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "PAPI", + "CAWI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + }, + { + "id": "idendquest", + "Name": "QUESTIONNAIRE_END", + "type": "SequenceType", + "Child": [], + "Label": [ + "QUESTIONNAIRE_END" + ], + "depth": 1, + "Control": [], + "TargetMode": [ + "CAPI", + "CATI", + "PAPI", + "CAWI" + ], + "Declaration": [], + "FlowControl": [], + "genericName": "MODULE" + } + ], + "Label": [ + "Eno - Suggester options in tables" + ], + "final": false, + "owner": "ENO-INTEGRATION-TESTS", + "agency": "fr.insee", + "CodeLists": { + "CodeList": [ + { + "id": "m2kmcbtl", + "Code": [ + { + "Label": "\"Code A\"", + "Value": "A", + "Parent": "" + }, + { + "Label": "\"Code B\"", + "Value": "B", + "Parent": "" + }, + { + "Label": "\"Code C\"", + "Value": "C", + "Parent": "" + } + ], + "Label": "TABLE_CODE_LIST" + }, + { + "id": "L_COMMUNES-2024", + "Urn": "urn:ddi:fr.insee:l_communes-2024:1", + "Name": "L_COMMUNES-2024", + "Label": "Communes 2024", + "SuggesterParameters": { + "fields": [ + { + "min": 3, + "name": "label", + "rules": [ + "[\\w]+" + ], + "stemmer": false, + "language": "French" + } + ], + "version": 1, + "queryParser": { + "type": "tokenized", + "params": { + "min": 3, + "pattern": "[\\w.]+", + "stemmer": false, + "language": "French" + } + } + } + }, + { + "id": "L_DIPLOMES-2-0-0", + "Urn": "urn:ddi:fr.insee:l_diplomes-2-0-0:1", + "Name": "L_DIPLOMES-2-0-0", + "Label": "Diplomes", + "SuggesterParameters": { + "fields": [ + { + "min": 3, + "name": "label", + "rules": [ + "[\\w]+" + ], + "stemmer": false, + "language": "French" + } + ], + "version": 1, + "queryParser": { + "type": "tokenized", + "params": { + "min": 3, + "pattern": "[\\w.]+", + "stemmer": false, + "language": "French" + } + } + } + } + ] + }, + "Variables": { + "Variable": [ + { + "id": "m2ngr0no", + "Name": "Q_TABLE11_LABEL", + "type": "CalculatedVariableType", + "Label": "\"City label of code A\"", + "Formula": "left_join($Q_TABLE11$, \"COMMUNES-2024\" using id, label)", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "m2ngto13", + "Name": "Q_TABLE21_LABEL", + "type": "CalculatedVariableType", + "Label": "\"City label of code B\"", + "Formula": "left_join($Q_TABLE21$, \"COMMUNES-2024\" using id, label)", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "m2ngmao4", + "Name": "Q_TABLE31_LABEL", + "type": "CalculatedVariableType", + "Label": "\"City label of code C\"", + "Formula": "left_join($Q_TABLE31$, \"COMMUNES-2024\" using id, label)", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "m2ngv63r", + "Name": "Q_ROSTER1_LABEL", + "type": "CalculatedVariableType", + "Label": "\"Diploma label\"", + "Scope": "m2ngzsse", + "Formula": "left_join($Q_ROSTER1$, \"L_DIPLOMES-2-0-0\" using id, label)", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + }, + { + "id": "m2km49uq", + "Name": "Q_TABLE11", + "type": "CollectedVariableType", + "Label": "Code A-City suggester", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1 + }, + "CodeListReference": "L_COMMUNES-2024" + }, + { + "id": "m2kmctf1", + "Name": "Q_TABLE21", + "type": "CollectedVariableType", + "Label": "Code B-City suggester", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1 + }, + "CodeListReference": "L_COMMUNES-2024" + }, + { + "id": "m2klz161", + "Name": "Q_TABLE31", + "type": "CollectedVariableType", + "Label": "Code C-City suggester", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1 + }, + "CodeListReference": "L_COMMUNES-2024" + }, + { + "id": "m2ngugy8", + "Name": "Q_ROSTER1", + "type": "CollectedVariableType", + "Label": "Diploma suggester", + "Scope": "m2ngzsse", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 1 + }, + "CodeListReference": "L_DIPLOMES-2-0-0" + }, + { + "id": "m2ngzmgg", + "Name": "Q_LAST", + "type": "CollectedVariableType", + "Label": "Q_LAST label", + "Datatype": { + "type": "TextDatatypeType", + "Pattern": "", + "typeName": "TEXT", + "MaxLength": 249 + } + } + ] + }, + "flowLogic": "FILTER", + "TargetMode": [ + "CAPI", + "CATI", + "PAPI", + "CAWI" + ], + "FlowControl": [], + "genericName": "QUESTIONNAIRE", + "ComponentGroup": [ + { + "id": "m2km38c4", + "Name": "PAGE_1", + "Label": [ + "Components for page 1" + ], + "MemberReference": [ + "m2km0d8e", + "m2kmba1j", + "m2ngzsse", + "idendquest", + "m2nh0ouu", + "m2nh7vkg" + ] + } + ], + "DataCollection": [ + { + "id": "s2106-dc", + "uri": "http://ddi:fr.insee:DataCollection.s2106-dc" + } + ], + "lastUpdatedDate": "Thu Oct 24 2024 17:34:07 GMT+0200 (heure d’été d’Europe centrale)", + "formulasLanguage": "VTL", + "childQuestionnaireRef": [] +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index a07a69117..3a7e8ed72 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,7 +8,7 @@ pluginManagement { dependencyResolutionManagement { versionCatalogs { create("libs") { - version("lunatic-model", "3.15.0") + version("lunatic-model", "3.15.1") version("pogues-model", "1.3.14") library("lunatic-model", "fr.insee.lunatic", "lunatic-model").versionRef("lunatic-model") library("pogues-model", "fr.insee.pogues", "pogues-model").versionRef("pogues-model") From cc0cf46489a175f9eb3090e940332166d799d11a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 08:52:34 +0100 Subject: [PATCH 07/19] chore(deps): update all minor dependencies (#1138) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f4809dc50..4c5c1ec67 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:21.0.4_7-jre +FROM eclipse-temurin:21.0.5_11-jre ENV PATH_TO_JAR=/opt/eno-ws/eno-ws.jar WORKDIR /opt/eno-ws/ diff --git a/build.gradle.kts b/build.gradle.kts index 52d8f37b1..f7bae3d11 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ import org.sonarqube.gradle.SonarTask plugins { - id("org.springframework.boot") version "3.3.4" apply false + id("org.springframework.boot") version "3.3.5" apply false id("io.spring.dependency-management") version "1.1.6" apply false id("application") id("jacoco-report-aggregation") From 53b3e105e4c9f1178291633371f90b83cc902d28 Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Mon, 28 Oct 2024 11:25:05 +0100 Subject: [PATCH 08/19] fix(eno-xforms-zip-incorrect) --- .../insee/eno/ws/controller/GenerationCustomController.java | 2 +- .../eno/ws/controller/GenerationStandardController.java | 2 +- .../eno/ws/controller/utils/EnoXmlControllerUtils.java | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java index 6ce26bf0f..507214355 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java @@ -107,7 +107,7 @@ public ResponseEntity generateLunaticCustomParams( "You can get a parameters file by using the endpoint `/parameters/xml/BUSINESS/XFORMS`") @PostMapping(value = "ddi-2-xforms", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public ResponseEntity generateXformsCustomParams( + public ResponseEntity generateXformsCustomParams( @RequestPart(value="in") MultipartFile in, @RequestPart(value="params") MultipartFile params, @RequestPart(value="metadata") MultipartFile metadata, diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java index 0ba18ff57..ef26075db 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java @@ -123,7 +123,7 @@ public ResponseEntity generateLunatic( "If the multi-model option is set to true, the output questionnaire(s) are put in a zip file.") @PostMapping(value = "{context}/xforms", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public ResponseEntity generateXforms( + public ResponseEntity generateXforms( @RequestPart(value="in") MultipartFile in, @RequestPart(value="metadata", required = false) MultipartFile metadata, @RequestPart(value="specificTreatment", required=false) MultipartFile specificTreatment, diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java index d4fa6f186..139d98fc5 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java @@ -60,13 +60,13 @@ public ResponseEntity sendPostRequest(URI uri, MultipartBodyBuilder mult .body(result); } - public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder multipartBodyBuilder, String outFilename) { - Byte[] result = webClient.post() + public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder multipartBodyBuilder, String outFilename) { + byte[] result = webClient.post() .uri(uri) .accept(MediaType.APPLICATION_OCTET_STREAM) .contentType(MediaType.MULTIPART_FORM_DATA) .body(BodyInserters.fromMultipartData(multipartBodyBuilder.build())) - .exchangeToMono(clientResponse -> clientResponse.bodyToMono(Byte[].class)) + .exchangeToMono(clientResponse -> clientResponse.bodyToMono(byte[].class)) .block(); return ResponseEntity.ok() .headers(HeadersUtils.with(outFilename)) From f78faa06b30c26cbfd45b39d28b5fdbd0b360d27 Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Mon, 28 Oct 2024 15:26:27 +0100 Subject: [PATCH 09/19] chore: bump version --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index f7bae3d11..be2f4ce06 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ java { allprojects { group = "fr.insee.eno" - version = "3.27.2-SNAPSHOT" + version = "3.27.3-SNAPSHOT" } subprojects { From ce6051303b7e127fccd8ab84b32604bae601803d Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Wed, 13 Nov 2024 15:18:58 +0100 Subject: [PATCH 10/19] fix: Eno-Wrong-zip-name --- .../GenerationCustomController.java | 8 +++--- .../GenerationStandardController.java | 3 +-- .../utils/EnoXmlControllerUtils.java | 26 ++++++++++++++++--- .../eno/ws/controller/utils/HeadersUtils.java | 8 ++++++ 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java index 507214355..adad9e2a0 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java @@ -123,8 +123,7 @@ public ResponseEntity generateXformsCustomParams( addMultipartToBody(multipartBodyBuilder, specificTreatment, "specificTreatment"); // URI uri = xmlControllerUtils.newUriBuilder().path("questionnaire/ddi-2-xforms").build().toUri(); - String outFilename = questionnaireFilename(OutFormat.XFORMS, true); - return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder, outFilename); + return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder); } @Operation( @@ -136,7 +135,7 @@ public ResponseEntity generateXformsCustomParams( "You can get a parameters file by using the endpoint `/parameters/xml/{context}/FO`") @PostMapping(value = "ddi-2-fo", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public ResponseEntity generateFOCustomParams( + public ResponseEntity generateFOCustomParams( @RequestPart(value="in") MultipartFile in, @RequestPart(value="params") MultipartFile params, @RequestPart(value="metadata") MultipartFile metadata, @@ -152,8 +151,7 @@ public ResponseEntity generateFOCustomParams( addMultipartToBody(multipartBodyBuilder, specificTreatment, "specificTreatment"); // URI uri = xmlControllerUtils.newUriBuilder().path("questionnaire/ddi-2-fo").build().toUri(); - String outFilename = questionnaireFilename(OutFormat.XFORMS, false); - return xmlControllerUtils.sendPostRequest(uri, multipartBodyBuilder, outFilename); + return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder); } } diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java index ef26075db..7a8dbd7b6 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java @@ -149,8 +149,7 @@ public ResponseEntity generateXforms( .path("/questionnaire/{context}/xforms") .queryParam("multi-model", multiModel) .build(context); - String outFilename = questionnaireFilename(OutFormat.XFORMS, multiModel); - return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder, outFilename); + return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder); } @Operation( diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java index 139d98fc5..15a0a0100 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java @@ -4,17 +4,20 @@ import fr.insee.eno.ws.legacy.parameters.OutFormat; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ByteArrayResource; +import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.http.client.MultipartBodyBuilder; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.reactive.function.BodyInserters; +import org.springframework.web.reactive.function.client.ClientResponse; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.util.UriComponentsBuilder; import java.io.IOException; import java.net.URI; +import java.util.Objects; /** * Class to factorize code in Eno Xml controllers' (which consist in redirection to the legacy Xml web-service) @@ -60,16 +63,33 @@ public ResponseEntity sendPostRequest(URI uri, MultipartBodyBuilder mult .body(result); } - public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder multipartBodyBuilder, String outFilename) { + public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder multipartBodyBuilder) { byte[] result = webClient.post() .uri(uri) .accept(MediaType.APPLICATION_OCTET_STREAM) .contentType(MediaType.MULTIPART_FORM_DATA) .body(BodyInserters.fromMultipartData(multipartBodyBuilder.build())) - .exchangeToMono(clientResponse -> clientResponse.bodyToMono(byte[].class)) + .retrieve() + .bodyToMono(byte[].class) .block(); + + // Récupération du header Content-Disposition + String contentDisposition = Objects.requireNonNull(webClient.head() + .uri(uri) + .retrieve() + .toEntity(String.class) + .block()) + .getHeaders() + .getFirst(HttpHeaders.CONTENT_DISPOSITION); + + // Extraction du filename + String fileName = HeadersUtils.extractFileName(contentDisposition); + + // Création des headers avec le filename extrait + HttpHeaders headers = HeadersUtils.with(fileName); + return ResponseEntity.ok() - .headers(HeadersUtils.with(outFilename)) + .headers(headers) .body(result); } diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/HeadersUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/HeadersUtils.java index 6302a45bc..6f1a1c324 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/HeadersUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/HeadersUtils.java @@ -14,4 +14,12 @@ public static HttpHeaders with(String fileName) { return headers; } + public static String extractFileName(String contentDisposition) { + if (contentDisposition != null && contentDisposition.contains("filename=")) { + return contentDisposition.substring(contentDisposition.indexOf("filename=") + 9) + .replace("\"", ""); + } + return null; + } + } From 5544d59734c83b55decf9c6c56a294cd60f8ba2c Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Wed, 20 Nov 2024 14:38:17 +0100 Subject: [PATCH 11/19] Eno-wrong-zip-name --- .../utils/EnoXmlControllerUtils.java | 23 ++----------------- .../eno/ws/controller/utils/HeadersUtils.java | 9 -------- 2 files changed, 2 insertions(+), 30 deletions(-) diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java index 15a0a0100..8f5cbb723 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java @@ -64,33 +64,14 @@ public ResponseEntity sendPostRequest(URI uri, MultipartBodyBuilder mult } public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder multipartBodyBuilder) { - byte[] result = webClient.post() + return webClient.post() .uri(uri) .accept(MediaType.APPLICATION_OCTET_STREAM) .contentType(MediaType.MULTIPART_FORM_DATA) .body(BodyInserters.fromMultipartData(multipartBodyBuilder.build())) .retrieve() - .bodyToMono(byte[].class) + .toEntity(byte[].class) .block(); - - // Récupération du header Content-Disposition - String contentDisposition = Objects.requireNonNull(webClient.head() - .uri(uri) - .retrieve() - .toEntity(String.class) - .block()) - .getHeaders() - .getFirst(HttpHeaders.CONTENT_DISPOSITION); - - // Extraction du filename - String fileName = HeadersUtils.extractFileName(contentDisposition); - - // Création des headers avec le filename extrait - HttpHeaders headers = HeadersUtils.with(fileName); - - return ResponseEntity.ok() - .headers(headers) - .body(result); } public ResponseEntity sendPostRequest(URI uri) { diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/HeadersUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/HeadersUtils.java index 6f1a1c324..03ccf3623 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/HeadersUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/HeadersUtils.java @@ -13,13 +13,4 @@ public static HttpHeaders with(String fileName) { headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); return headers; } - - public static String extractFileName(String contentDisposition) { - if (contentDisposition != null && contentDisposition.contains("filename=")) { - return contentDisposition.substring(contentDisposition.indexOf("filename=") + 9) - .replace("\"", ""); - } - return null; - } - } From 7e631b1620dc9d92da090806b0093ed2e7e8973a Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Thu, 21 Nov 2024 14:24:53 +0100 Subject: [PATCH 12/19] fix: Eno-Wrong-name-standard-parameters --- .../ws/controller/GenerationStandardController.java | 10 ++++------ eno-ws/src/main/resources/application.properties | 3 ++- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java index 7a8dbd7b6..c939e62af 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationStandardController.java @@ -163,7 +163,7 @@ public ResponseEntity generateXforms( "If the multi-model option is set to true, the output questionnaire(s) are put in a zip file." ) @PostMapping(value = "{context}/fo", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public ResponseEntity generateFO( + public ResponseEntity generateFO( @RequestPart(value="in") MultipartFile in, @RequestPart(value="metadata", required = false) MultipartFile metadata, @RequestPart(value="specificTreatment", required=false) MultipartFile specificTreatment, @@ -191,8 +191,7 @@ public ResponseEntity generateFO( .queryParam("Capture", capture) .queryParam("multi-model", multiModel) .build(context); - String outFilename = questionnaireFilename(OutFormat.FO, multiModel); - return xmlControllerUtils.sendPostRequest(uri, multipartBodyBuilder, outFilename); + return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder); } @Operation( @@ -202,7 +201,7 @@ public ResponseEntity generateFO( "context.") @PostMapping(value = "{context}/fodt", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public ResponseEntity generateFODT( + public ResponseEntity generateFODT( @RequestPart(value="in") MultipartFile in, @PathVariable Context context) throws EnoControllerException { // @@ -210,8 +209,7 @@ public ResponseEntity generateFODT( addMultipartToBody(multipartBodyBuilder, in, "in"); // URI uri = xmlControllerUtils.newUriBuilder().path("/questionnaire/{context}/fodt").build(context); - String outFilename = questionnaireFilename(OutFormat.FODT, false); - return xmlControllerUtils.sendPostRequest(uri, multipartBodyBuilder, outFilename); + return xmlControllerUtils.sendPostRequestByte(uri, multipartBodyBuilder); } } diff --git a/eno-ws/src/main/resources/application.properties b/eno-ws/src/main/resources/application.properties index f4f018936..1d6ebb6a7 100644 --- a/eno-ws/src/main/resources/application.properties +++ b/eno-ws/src/main/resources/application.properties @@ -21,7 +21,8 @@ eno.ws.url= eno.release.note.url= # URL of a Eno "xml" web-service where some requests are redirected -eno.legacy.ws.url=https://eno-url.insee.fr +#eno.legacy.ws.url=https://eno-url.insee.fr +eno.legacy.ws.url=http://localhost:8082 # Flag to allow the direct Pogues to Lunatic transformation eno.direct.pogues.lunatic=false From 5818b660378273608fabac065149b403af53226a Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Fri, 22 Nov 2024 16:04:59 +0100 Subject: [PATCH 13/19] feat: Exception-without-campagne --- .../GenerationCustomController.java | 1 - .../exception/EnoExceptionController.java | 12 ++++++---- .../utils/EnoXmlControllerUtils.java | 22 ++++++++++++++----- .../ws/exception/EnoRedirectionException.java | 12 ++++++++++ 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java index adad9e2a0..93d7ab65b 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationCustomController.java @@ -28,7 +28,6 @@ import static fr.insee.eno.ws.controller.utils.EnoXmlControllerUtils.addMultipartToBody; import static fr.insee.eno.ws.controller.utils.EnoXmlControllerUtils.questionnaireFilename; - @Tag(name = "Generation of questionnaire (custom parameters)") @Controller @RequestMapping("/questionnaire") diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/exception/EnoExceptionController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/exception/EnoExceptionController.java index 75f467ca1..485e24852 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/exception/EnoExceptionController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/exception/EnoExceptionController.java @@ -3,10 +3,7 @@ import fr.insee.eno.core.exceptions.business.EnoParametersException; import fr.insee.eno.treatments.exceptions.SpecificTreatmentsDeserializationException; import fr.insee.eno.treatments.exceptions.SpecificTreatmentsValidationException; -import fr.insee.eno.ws.exception.ContextException; -import fr.insee.eno.ws.exception.MetadataFileException; -import fr.insee.eno.ws.exception.ModeParameterException; -import fr.insee.eno.ws.exception.MultiModelException; +import fr.insee.eno.ws.exception.*; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -59,6 +56,13 @@ public ResponseEntity exception(IOException ioException) { return new ResponseEntity<>("I/O error: " + ioException.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); } + @ExceptionHandler(EnoRedirectionException.class) + public ResponseEntity exception(EnoRedirectionException enoRedirectionException) { + String message = enoRedirectionException.getMessage(); + log.error(message, enoRedirectionException); + return new ResponseEntity<>(message, enoRedirectionException.getHttpStatusCode()); + } + @ExceptionHandler(value = Exception.class) public ResponseEntity exception(Exception exception) { log.error("Unhandled exception thrown in controller: ", exception); diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java index 8f5cbb723..3a1a7fdc2 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java @@ -1,12 +1,12 @@ package fr.insee.eno.ws.controller.utils; +import fr.insee.eno.core.exceptions.business.EnoParametersException; import fr.insee.eno.ws.exception.EnoControllerException; +import fr.insee.eno.ws.exception.EnoRedirectionException; import fr.insee.eno.ws.legacy.parameters.OutFormat; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ByteArrayResource; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.http.client.MultipartBodyBuilder; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -14,10 +14,10 @@ import org.springframework.web.reactive.function.client.ClientResponse; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.util.UriComponentsBuilder; +import reactor.core.publisher.Mono; import java.io.IOException; import java.net.URI; -import java.util.Objects; /** * Class to factorize code in Eno Xml controllers' (which consist in redirection to the legacy Xml web-service) @@ -64,12 +64,24 @@ public ResponseEntity sendPostRequest(URI uri, MultipartBodyBuilder mult } public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder multipartBodyBuilder) { - return webClient.post() + return webClient.post() .uri(uri) .accept(MediaType.APPLICATION_OCTET_STREAM) .contentType(MediaType.MULTIPART_FORM_DATA) .body(BodyInserters.fromMultipartData(multipartBodyBuilder.build())) .retrieve() + .onStatus( + HttpStatusCode::is4xxClientError, + clientResponse -> clientResponse.bodyToMono(String.class) + .flatMap(responseBody -> Mono.error(new EnoRedirectionException( + responseBody, clientResponse.statusCode()))) + ) + .onStatus( + HttpStatusCode::is5xxServerError, + clientResponse -> clientResponse.bodyToMono(String.class) + .flatMap(responseBody -> Mono.error(new EnoRedirectionException( + "Server error: " + responseBody, clientResponse.statusCode()))) + ) .toEntity(byte[].class) .block(); } diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/exception/EnoRedirectionException.java b/eno-ws/src/main/java/fr/insee/eno/ws/exception/EnoRedirectionException.java index 45a0ae71a..10189c713 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/exception/EnoRedirectionException.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/exception/EnoRedirectionException.java @@ -1,9 +1,21 @@ package fr.insee.eno.ws.exception; +import lombok.Getter; +import org.springframework.http.HttpStatusCode; + +@Getter public class EnoRedirectionException extends RuntimeException { + private final HttpStatusCode httpStatusCode; + public EnoRedirectionException(String message) { super(message); + httpStatusCode = null; + } + + public EnoRedirectionException(String message, HttpStatusCode httpStatusCode) { + super(message); + this.httpStatusCode = httpStatusCode; } } From 3de498122ad5dbece3efe8722346e36676e6038c Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Fri, 22 Nov 2024 18:13:52 +0100 Subject: [PATCH 14/19] chore: bump version --- build.gradle.kts | 2 +- eno-ws/src/main/resources/application.properties | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index ac5f47f4d..21c29fc9b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ java { allprojects { group = "fr.insee.eno" - version = "3.29.2-SNAPSHOT" + version = "3.29.2-SNAPSHOT.1" } subprojects { diff --git a/eno-ws/src/main/resources/application.properties b/eno-ws/src/main/resources/application.properties index 1d6ebb6a7..f4f018936 100644 --- a/eno-ws/src/main/resources/application.properties +++ b/eno-ws/src/main/resources/application.properties @@ -21,8 +21,7 @@ eno.ws.url= eno.release.note.url= # URL of a Eno "xml" web-service where some requests are redirected -#eno.legacy.ws.url=https://eno-url.insee.fr -eno.legacy.ws.url=http://localhost:8082 +eno.legacy.ws.url=https://eno-url.insee.fr # Flag to allow the direct Pogues to Lunatic transformation eno.direct.pogues.lunatic=false From ae80f900c30704dbd40a7d1a79f072b6bbd5eaae Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Tue, 26 Nov 2024 08:21:26 +0100 Subject: [PATCH 15/19] chore: bump version --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 21c29fc9b..21838b058 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ java { allprojects { group = "fr.insee.eno" - version = "3.29.2-SNAPSHOT.1" + version = "3.29.2-SNAPSHOT.2" } subprojects { From c5ee467aa6cb81641e9fbf88bba375a965c9e005 Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Fri, 29 Nov 2024 11:45:32 +0100 Subject: [PATCH 16/19] fix: wrong_zip_name --- .../eno/ws/controller/GenerationWithMappingController.java | 2 +- .../fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationWithMappingController.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationWithMappingController.java index eae89f0af..abcf7a7f1 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationWithMappingController.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/GenerationWithMappingController.java @@ -61,7 +61,7 @@ public ResponseEntity generate( addMultipartToBody(multipartBodyBuilder, mapping, "mapping"); // URI uri = xmlControllerUtils.newUriBuilder().path("questionnaire/in-2-out").build().toUri(); - String outFilename = multiModel ? "questionnaire.zip" : "questionnaire.txt"; + String outFilename = multiModel ? "questionnaires.zip" : "questionnaire.txt"; return xmlControllerUtils.sendPostRequest(uri, multipartBodyBuilder, outFilename); } diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java index 3a1a7fdc2..dc85d32c7 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java @@ -1,6 +1,5 @@ package fr.insee.eno.ws.controller.utils; -import fr.insee.eno.core.exceptions.business.EnoParametersException; import fr.insee.eno.ws.exception.EnoControllerException; import fr.insee.eno.ws.exception.EnoRedirectionException; import fr.insee.eno.ws.legacy.parameters.OutFormat; @@ -11,7 +10,6 @@ import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.reactive.function.BodyInserters; -import org.springframework.web.reactive.function.client.ClientResponse; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.util.UriComponentsBuilder; import reactor.core.publisher.Mono; From 46acf6e1283a42d4c0ea95bcc6647ebcea4da4cb Mon Sep 17 00:00:00 2001 From: Remi Verriez Date: Fri, 29 Nov 2024 11:53:36 +0100 Subject: [PATCH 17/19] chore: bump version --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 21838b058..90cf018f8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ java { allprojects { group = "fr.insee.eno" - version = "3.29.2-SNAPSHOT.2" + version = "3.29.2-SNAPSHOT.3" } subprojects { From 4c616805ddf77f428a00e506746ca94d40ac659e Mon Sep 17 00:00:00 2001 From: Nicolas Senave Date: Fri, 29 Nov 2024 17:23:51 +0100 Subject: [PATCH 18/19] fix: web client byte responses --- .../utils/EnoXmlControllerUtils.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java index dc85d32c7..6b5271436 100644 --- a/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java +++ b/eno-ws/src/main/java/fr/insee/eno/ws/controller/utils/EnoXmlControllerUtils.java @@ -5,14 +5,15 @@ import fr.insee.eno.ws.legacy.parameters.OutFormat; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ByteArrayResource; -import org.springframework.http.*; +import org.springframework.http.HttpStatusCode; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.http.client.MultipartBodyBuilder; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.util.UriComponentsBuilder; -import reactor.core.publisher.Mono; import java.io.IOException; import java.net.URI; @@ -62,7 +63,7 @@ public ResponseEntity sendPostRequest(URI uri, MultipartBodyBuilder mult } public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder multipartBodyBuilder) { - return webClient.post() + ResponseEntity responseEntity = webClient.post() .uri(uri) .accept(MediaType.APPLICATION_OCTET_STREAM) .contentType(MediaType.MULTIPART_FORM_DATA) @@ -71,17 +72,23 @@ public ResponseEntity sendPostRequestByte(URI uri, MultipartBodyBuilder .onStatus( HttpStatusCode::is4xxClientError, clientResponse -> clientResponse.bodyToMono(String.class) - .flatMap(responseBody -> Mono.error(new EnoRedirectionException( - responseBody, clientResponse.statusCode()))) + .map(responseBody -> + new EnoRedirectionException(responseBody, clientResponse.statusCode())) ) .onStatus( HttpStatusCode::is5xxServerError, clientResponse -> clientResponse.bodyToMono(String.class) - .flatMap(responseBody -> Mono.error(new EnoRedirectionException( - "Server error: " + responseBody, clientResponse.statusCode()))) + .map(responseBody -> + new EnoRedirectionException("Server error: " + responseBody, clientResponse.statusCode())) ) .toEntity(byte[].class) .block(); + if (responseEntity == null) + throw new EnoRedirectionException("null result from Eno Xml call."); + String fileName = responseEntity.getHeaders().getContentDisposition().getFilename(); + return ResponseEntity.ok() + .headers(HeadersUtils.with(fileName)) + .body(responseEntity.getBody()); } public ResponseEntity sendPostRequest(URI uri) { From f4c5909d94b02a3e404406beff21e86efef436f1 Mon Sep 17 00:00:00 2001 From: Nicolas Senave Date: Fri, 29 Nov 2024 17:25:16 +0100 Subject: [PATCH 19/19] chore: new snapshot version --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 90cf018f8..a8233c340 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ java { allprojects { group = "fr.insee.eno" - version = "3.29.2-SNAPSHOT.3" + version = "3.29.2-SNAPSHOT.4" } subprojects {