Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tables - Substitution for variables marked as not collected #745

Closed
romaintailhurat opened this issue Mar 19, 2024 · 8 comments · Fixed by #755
Closed

Tables - Substitution for variables marked as not collected #745

romaintailhurat opened this issue Mar 19, 2024 · 8 comments · Fixed by #755
Assignees

Comments

@romaintailhurat
Copy link
Collaborator

romaintailhurat commented Mar 19, 2024

Currently we support this only by modifying the DDI, but a simple modification could support it in Pogues:

image

Here:

  • when "Collected" is unchecked, the "Substitution" field appears
  • it accepts a VTL expression, but mainly we want a variable or a text here

@BulotF we need to discuss that

@BulotF
Copy link
Contributor

BulotF commented Mar 22, 2024

Contextualisation, proposition alternative et extension :
A l'heure actuelle, dans Pogues, l'unique cas qu'il est possible de spécifier que l'on ne souhaite pas forcément collecter toutes les variables est la case non collectée, sans texte.

Ce cas a d'ailleurs des défauts de conception :

  • l'action est à effectuer dans l'onglet "Variables collectées" en décochant la case "Collectée". Cette action serait plus légitime dans l'onglet "Format des réponses"
  • Alors qu'aucune variable n'est collectée, cet état génère néanmoins dans le json Pogues une réponse et une variable collectée inutiles.

Les besoins auxquels on souhaite répondre :

  • spécifier un texte comme alternative de la variable collectée (texte en VTL : pour gérer le texte comme dur aussi bien que la valeur d'une variable externe qui sert à initialiser le tableau dynamique)
  • appuyer sur un filtre le choix de collecter la variable ou non. Par exemple, dans un tableau dynamique personnalisé, pour les colonnes personnalisées, on a une variable collectée sur lignes ajoutées ; dans un tableau dynamique avec Suggester multiple, une colonne de la nomenclature peut permettre d'indiquer si l'on souhaite collecter une des variables du tableau (ex : montant de la sous-traitance)

Proposition d'UX :
Déplacement de la notion de "Collectée" de l'onglet "Variables collectées" à l'onglet "Format des réponses" et enrichissement de l'interface pour les cas autres que "Collectée" :

  • évolution de l'onglet Variables collectées :

    • suppression de la case à cocher "Collectée"
    • restriction de la liste des variables générées à celles qui sont effectivement collectées
  • évolution de l'onglet "Format des réponses" :

    • Cas des tableaux dynamiques :

      • Ajout d'un bouton radio "Collecté ?" avec 3 modalités : "Toujours" (valeur par défaut) ; "Jamais" ; "Sous condition"
      • Sélectionner "Toujours" ne fait rien apparaître de plus
      • Sélectionner "Jamais" fait apparaître une zone de libellé "Libellé de substitution"
      • Sélectionner "Sous condition" fait apparaître une zone de formule "Condition de collecte" et une zone de libellé "Libellé de substitution"
    • Cas des tableaux normaux :

      • Ajout d'une case à cocher "Tout collecter" cochée par défaut.
      • Décocher cette case fait apparaître pour chaque modalité de la liste de codes de l'axe d'information principal :
        • le libellé de la modalité
        • le bouton radio "Collecté ?" décrit dans le cas des tableaux dynamiques (avec les comportements associés)

Evolution de Pogues-model :

  • Ajouter un AttributeLabel de type xs:string (comme les autres Label) avec un minOccurs = 0
  • Ajouter une enumeration à FlowControlTypeEnum, qui ne peut actuellement valoir que CLARIFICATION : COLLECTCELL

Evolution du DDI

  • Pour le libellé sur case non collectée, l'utilisation de d:CellLabel est déjà documenté et utilisé dans la transformation ddi2xforms
  • Ce d:CellLabel permet aussi de rajouter un libellé sur une case collectée. Néanmoins, le système de filtre interne à un d:QuestionGrid, utilisé dans le cadre de la question de clarification à une réponse (d:GridResponseDomainInMixed / d:ResponseAttachmentLocation / d:DomainSpecificValue / @attachmentDomain de la réponse de précision a la même valeur que d:GridResponseDomainInMixed / @attachmentBase pour la réponse qui peut être "Autre"), restreint les possibilités de filtre à une liste de valeurs d'une réponse. Et là, on souhaiterait faire porter le filtre sur une variable calculée ou externe, voire une formule... Détails : [DDI] Filter inside QuestionGrid Bowie#87

@romaintailhurat romaintailhurat changed the title Substitution for variables marked as not collecte Substitution for variables marked as not collected Mar 22, 2024
@romaintailhurat romaintailhurat changed the title Substitution for variables marked as not collected Tables - Substitution for variables marked as not collected Mar 26, 2024
@BulotF
Copy link
Contributor

BulotF commented Apr 17, 2024

L'UI est plus compliquée à rendre claire que prévu.
Dans les sujets : quel est le format de réponse des colonnes dont aucune case n'est collectée ? (on peut avoir le cas au moins pour des tableaux dynamiques)
Sachant que lors de l'import des questionnaires présents en base, cette information est calculée à partir du formats de la variable dans la première case de la colonne...

A l'enregistrement en base, toutes les variables sont créées avec le format de la colonne et associées à des réponses, mais une information complémentaire permet d'indiquer qu'elles sont inutiles...
Est-ce que c'est le bon moment de refondre la gestion case à case des tableaux dans Pogues ?

@BulotF
Copy link
Contributor

BulotF commented Apr 25, 2024

Au final, évolution de l'UI uniquement sur l'onglet "Variables collectées" avec clarification du contenu.
L'évolution principale concerne la case à cocher "Collecté"

  • elle est remplacée par un bouton radio qui prend 3 valeurs : "Oui" (sélectionné par défaut), "Non", "Sous condition"

  • elle est toujours affiché uniquement pour les tableaux et les QCM

  • lorsqu'elle est affichée, elle est affichée en premier

  • ses évolutions ont des effets sur l'affichage de la suite

  • Modalité "Oui" ou non affichée (réponses simples)

    • Comme auparavant : Nom et libellé de la variable ; Caractéristiques du format
    • évolution : "Liste de codes" n'apparaît que lorsqu'elle a du sens
  • Modalité "Non" :

    • Apparition d'un champ nouveau : "Libellé alternatif"
    • disparition des champs : "Nom", "libellé" et champs en lien avec le format
    • le lien dans la liste des variables comporte les coordonnées puis [nom collecté] au lieu du nom inutile de la variable
  • Modalité "Sous condition" :

    • Champs nouveaux :
      • "Condition d'affichage"
      • "Libellé alternatif"
    • puis tous les champs que l'on a avec la réponse "Oui"

Au niveau des données :

  • si "Non" : "AlternativeLabel" rajouté dans l'Attribute (informations de non-collecte de la case)
  • si "Sous condition" : "Condition" et "AlternativeLabel" rajoutés dans le "MappingSource" qui fait le lien entre la case et la réponse

@BulotF BulotF linked a pull request Apr 25, 2024 that will close this issue
@romaintailhurat
Copy link
Collaborator Author

@BulotF On fait le point à ton retour sur cette fonctionnalité

@romaintailhurat
Copy link
Collaborator Author

romaintailhurat commented May 14, 2024

Validation des devs une fois que la partie Eno est faite pour un test de bout en bout.

Finalement, on fait quand même une validation d'UI.

Premier élément: le libellé d'une variable dans un tableau est entourée de " ce qui n'est pas le cas pour les variables des autres types de questions. Peut-on revenir à un libellé sans quotes ?

@romaintailhurat
Copy link
Collaborator Author

Deuxième élément: une proposition de retouche de la présentation du bouton pour les cases non-collectées, avec le texte fixe "Case non collectée" en italique, et un début de formule dans la même police que le nom de la variable dans le cas d'une collectée.

image

@BulotF
Copy link
Contributor

BulotF commented May 14, 2024

Remarques sur tes remarques :

  1. Dans le cas des variables collectées, on a libellé de la variable [Nom de la variable]
    Dans le cas des cases non collectées, on a Case non collectée [libellé affiché]
    Ca me fait bizarre d'avoir le libellé hors des crochets dans un cas et dans les crochets dans l'autre cas...
    Peut-être au moins remplacer les crochets (qui pour moi désignent un identifiant) par autre chose... (juste un " : " pour séparer Case non collectée et la formule)

  2. Dans les cas de variables collectées, le libellé de la variable est celui que l'on peut surcharger dans "Libellé" lorsque l'on sélectionne la variable collectée.
    L'initialisation se fait ainsi :

  • Réponse simple / à choix unique / lien 2 à 2 : prend l'identifiant de la question et rajoute " label" derrière. L'identifiant de la question est initialisé à partir du libellé de la question, auquel on enlève tous les caractères hors alphabet et chiffres : donc guillemets, mais aussi espace, caractères accentués, etc., puis tronqué à 10 caractères
  • Réponse à choix multiple : code de la codelist, puis son libellés, séparés par " - "
  • Tableau dynamique : le libellé de l'information mesurée, sans modification
  • Tableau à 1 dimension : le code de la dimension 1 ; "-" ; le libellé de l'information mesurée, sans modification
  • Tableau à 2 dimensions : le code de la dimension 1 ; "-" ; le code de la dimension 2 ; "-" ; le libellé de l'information mesurée, sans modification

Comment souhaites-tu modifier l'initialisation du libellé de chaque variable ?

@romaintailhurat
Copy link
Collaborator Author

Sur le 1, je n'étais pas très satisfait de l'utilisation des crochets, et on a déjà des parenthèses avant... Va pour un :, ou un -.

Pour le 2, je ne souhaite pas modifier le fonctionnement actuel sinon de supprimer les " surnuméraires qu'on ne voit pas ailleurs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants