Questions de générateurs

Bonjour
Pour la réalisation d’un POC concernant la gestion d’une banque de questions d’évaluation des enseignements par les étudiants, je me suis lancé dans la création d’un modèle documentaire assez simple avec ScenariBuilder.
Ce modèle permet la création de questionnaires comprenant des rubriques qui elles-mêmes contiennent les questions :

Une question est composée de 2 listes à choix (dimension et type) et d’un champ de texte (libellé) :
image

Le but étant de pouvoir exporter le questionnaire vers les 3 outils à disposition des enseignants ici à l’Université de Strasbourg, à savoir Moodle (module Enquête), Limesurvey et Wooclap. Ces 3 outils permettent l’import d’un simple fichier xml ou txt :

J’en suis maintenant à la phase de la construction des générateurs, c’est là que les réjouissances commencent :grinning_face_with_smiling_eyes:
J’ai tenté d’analyser ce que Stéphane à réaliser pour l’extension d’export Moodle des questions Opale.
Mais c’est beaucoup plus complexe (plus de types de questions et plus d’éléments dans les questions à gérer). Il a employé un webSiteGenerator combiné à des freeXslWebSiteTransf
Dans mon cas un xmlGenerator serait-il suffisant ?
Auriez-vous une méthode ou un exemple assez simple pour la construction de ce générateur ?
Bref, j’aurais besoin d’un peu d’aide pour mettre le pied à l’étrier.
Merci pour vos retours.

Christophe Scherrer
Université de Strasbourg

Salut,

wow, bravo !!! C’est pas souvent qu’on voit des gens se lancer dans scBuilder.
En voyant les sources de l’export moodle Opale, et en éliminant ce qui n’est pas utile pour toi, tu n’arrives pas à obtenir quelque chose ?
tu as pu intégrer les sources de l’export moodle opale dans scBuilder ? Ce serait peut-être plus facile pour toi pour voir ce qui y est fait.

Je n’ai pas de réponse à ta question, à part : « essaie pour voir ce que ça donne ». Je suppose que @sam ou @anp auront une réponse plus pertinente que la mienne.

Sinon, la création de ce modèle m’intéresse beaucoup ! Quand il sera abouti, pensez-vous le rendre disponible à la communauté ?

Bonjour Loïc
Merci pour ta réponse :slightly_smiling_face:
Oui j’ai bien les sources de l’export Moodle dans ScBuilder, c’est comme ça que j’ai vu que c’était bien plus complexe que je me l’imaginais.
J’aurais bien aimé voir un petit exemple d’un transformer Free et d’un fichier Xsl qui récupère des champs et les concatène dans un fichier txt, je continue à creuser.
Bien sûr si le modèle abouti et qu’il peut servir à quelqu’un je le partagerai.

Bonjour
Voici un exemple qui utilise le xmlgenerator pour exporter un fichier xml
Le generateur :


Le template :


Le transf root en navigation:
capture04
Le transf content appelé par le transf root serait un freexslwebtransf qui appelle une xsl de ce type :

<xsl:stylesheet version="1.0" xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive" xmlns:sc="http://www.utc.fr/ics/scenari/v3/core" xmlns:java="http://xml.apache.org/xslt/java" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="sc sp java">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
	<xsl:param name="vDialog"/>
	<xsl:param name="vAgent"/>
	<xsl:template match="*">
	<!--Pour aller chercher un élément déclaré dans le model appelé dans un champ particulier par exemple org-->
	<xsl:value-of select="*/sp:org" />
	<!--Pour appeler le transf d'un sous model appelé par ce model par exemple un model en référence d'un champ sp:ref-->
	<xsl:value-of select="getContent(gotoSubModel(*/sp:ref))" disable-output-escaping="yes"/>
	</xsl:template>
</xsl:stylesheet>

Cordialement,
Nicolas

1 « J'aime »

Bonjour Nicolas
Merci pour les explications, mais je pars de vraiment loin, j’ai bien peur qu’il me manque quelques éléments :

  • le contenu du dossier postbuild.doss
  • le fichier build.xml
  • la structure du transf.transflist

Je n’ai pas saisi non plus le « transf root en navigation… » et le « transf content… »
:face_with_hand_over_mouth:
Merci pour votre aide
Christophe

Bonjour

Aucun besoin du postBuild ni du build.xml, c’était juste inclus sur l’exemple que je vous ai donné. Ce dernier permettait en de zipper le contenu final.

Le transflist contiendra la liste des transf que vous voulez déclarez.
Concernant ma phrase sur les transf en navigation et content … Un transf peut soit poser une page soit du contenu. Je faisais référence à ça.
En réalité à part les éléments que je vous ai fournis. Le reste est du scenari builder « classique ». Je vous invite donc à aller voir les liens suivants si vous ne l’avez pas déjà fait. Ils contiendront ce dont vous avez besoin.
https://doc.scenari.software/SCENARIbuilder@5.0/tutoriel/fr/
https://doc.scenari.software/SCENARIbuilder@5.0/reference/fr/

Cordialement,
Nicolas

1 « J'aime »

Bonjour
J’ai tenté de construire mon générateur sur votre exemple @nicolas.boyer
Si je vais sur l’écran de contrôle de mon .Wspdef, j’obtiens ça :frowning:

Pourtant mon générateur à l’air ok

Mes transformeurs sont là

Le premier en navigation comme votre exemple

le second en content

Dans le XSL, je me suis dit que j’allais mettre du contenu en dur pour commencer à tester le fonctionnement, mais rien à faire.

Où est-ce que je fais une erreur ?
Merci
Christophe

Bonjour
Difficile de vous répondre …
Je dirais à première vues que le transf d’axis root n’est pas bien déclaré.
Le questionnaire.transf déclaré dans le transformerList est celui qui a l’axis root ?

Je pense oui.
Je me permets de vous envoyer les sources de l’atelier, ça sera peut-être plus simple pour diagnostiquer le problème ?
Merci :slightly_smiling_face:
EEE_2022-2-14.scwsp (229,7 Ko)

J’ai regardé

Le wspdef ne peut pas vérifier le controle à cause de l’espace qu’il y a dans votre dossier « Questionnaire EEE »
Si on l’enlève le controle se fait

Quelques remarques :
Pourquoi êtes vous sur scenari 4.2 et pas 5.0 ?
Le transf @query n’a pas besoin d’avoir cet axis @query. Dans votre cas appeler le transf sans axis serait certainement mieux.
Donner le code eee au code au namespace et au targetprefix ne me parait pas être une bonne idée pour s’y retrouver. D’ailleurs en l’état si vous ne modifiez pas ces éléments, vous aurez une erreur lors de la génération.

Cordialement,
Nicolas

2 « J'aime »

Un grand MERCI @nicolas.boyer :star_struck:
Code, namespace et targetprefix renommés et… :+1: ça marche
Enfin presque, lors de la publication, dans révéler, j’ai 2 dossiers co et meta, le fichier xml est présent dans co
Mais quand je veux le télécharger, j’obtiens un zip « vide ».
D’où ma question, comment faire pour télécharger directement le fichier xml ?
Merci encore et désolé de vous accaparer ainsi :blush:

J’ai ajouté « …/ » dans le path, le fichier xml est à la racine et le dossier co n’existe plus.
Mais le zip reste « vide »…

Et pour répondre à votre question « pourquoi la 4.2 et non la 5.0 » :
Parce qu’à l’université nous avons un serveur Scenari encore en version 4.2 et à l’époque où j’ai démarré ce POC je pensais l’aboutir plus rapidement.
Nous passons à la version 5 ou 6 bientôt.
Il existe une procédure de migration pour les modèles comme celle qui existe pour les contenus ?

Pour la gestion de la sortie du dossier co
Le mieux serait de le gérer côté uiframe

1 « J'aime »

Bonjour @nicolas.boyer
Merci pour tout :smiley:
Dans le xmlGenerator, je ne trouve pas la possibilité de gérer un transparentUiframe.
J’ai alors à nouveau regardé le fonctionnement de l’extension Moodle Export et j’ai enfin réussi à tout faire fonctionner :


Je m’attaque maintenant à la partie XSL… suite des réjouissances :yum:
Merci encore et sûrement à bientôt sur ce forum.
Christophe

1 « J'aime »

Oui, SCENARIbuilder migre les sources de modèles comme SCENARIchain migre les sources de contenus documentaires.

1 « J'aime »