Développement de l'éditeur¶
Choix technique (mars 2012)¶
Note Éric: À part pour le module closure il a été décidé d'utiliser des étiquettes plutôt que des textedit pour pouvoir garder un comportement congru du système. Grâce aux étiquettes il n'est pas possible de sélectionner "un mot et demi" (par exemple) pour un exercice. Le TextEdit pour closure permet justement ce genre de chose et offre à l'utilisateur la possibilité de faire des trous n'importe comment et donc pédagogiquement intéressants :)
Quelques tests m'ont amenés à valider ce choix: dans le cas d'un mot mal orthographié dans le texte initial, la mise à jour du texte ne devrait pas poser de problème à la moulinette des étiquettes. Par contre une modification de la ponctuation provoquerait immanquablement des problèmes dans le nettoyage du texte (risque de décalages non suivi), il me semble donc trop chronophage de gérer ces situations exceptionnelles et remet ça à un prochain développement (version++) si le besoin est exprimé par les utilisateurs de la version 5.0 quand elle sera en production.
Les onglets généraux¶
L'onglet Général¶
Il contient des informations sur le texte, dont une partie sera peut-être basculée par la suite dans l'onglet Propriétés (pour cause de confirmité LOM), ainsi qu'une case à cocher pour chacun des exercices
L'onglet Texte¶
Il contient un QTextEdit qui permet d'afficher le texte. Ce QTextEdit n'est pas modifiable par défaut dans le cas d'un projet existant, mais on peut grâce à un bouton modifier puis enregistrer le texte. Le bouton Nettoyer fait appel à la fonction abetextNettoieText() d'AbulEduTexte.
L'onglet propriété¶
Il contiendra les informations requises par les normes (en 2 mots :P )
Les onglets d'exercice¶
Ils sont actuellement au nombre de sept.Autant que faire se peut (et se peut parfois petit à petit...), ils ont une structure régulière :
- pour toute la séquence
- une case à cocher pour afficher le texte en début d'exercice
- une case à cocher pour afficher d'une façon particulière les éléments réussis au moment de la vérification
- une case à cocher pour afficher une consigne de séquence
- un cadre destiné à recevoir cette consigne de séquence - pour chacun des exercices
- des modes
- une case à cocher pour afficher une consigne à l'exercice
- un cadre destiné à cet exercice
Une boîte déroulante permet de naviguer entre les exercices, un bouton permet de créer un nouvel exercice
L'onglet texteATrous...¶
... correspond à la classe ExerciceClosure
Dans une section de texte bornée par 2 marqueurs, les 3 modes permettent de faire des trous. En mode manuel, ces trous peuvent être un mot, ou plusieurs, ou un morceau quelconque. L'onglet texteATrous a un mode intelligent qui (dans mon esprit) doit permettre d'enlever des mots entiers selon leur nature et niveau.
L'onglet ordreAlphabetique...¶
... correspond de façon unique aux classes ExerciceOrdreAlpha1 et ExerciceOrdreAlpha2
Des mots choisis dans tout le texte (ou écrits directement dans le cadre) en mode manuel sont choisis pour être proposer à remettre en ordre. Le nombre de mots choisis en mode manuel peut être inférieur au nombre total de mots choisis, afin de varier des exercices avec une même "préparation". Le mode intelligent permet de choisir aléatoirement des mots du texte qui répondent à des critères de nature, de niveau, mais aussi de profondeur (nombre de lettres communes en début de mot)
Les onglets motsMelanges, phrasesMelangees et paragraphesMelanges...¶
... correspondent respectivement aux classes ExerciceMotsMelanges, ExercicePhrasesMelangees et ExerciceParagraphesMelanges
Ils n'ont que deux modes : manuel et automatique. On peut pour les deux derniers borner les sélections.
L'onglet phraseSansEspace...¶
... correspond à la classe ExercicePhraseSansEspaces
C'est le premier qui a été développé, il est à reprendre sur le modèle des autres (2 modes, choix manuel dans le texte de la phrase à segmenter ou choix aléatoire dans le mode automatique)
L'onglet rechercheRapide...¶
... correspond à la classe ExerciceRapido
Les 3 modes permettent de choisir les mots qui seront à retrouver dans le texte. Il faudra ajouter des limitations de texte...
Les différents modes¶
Le mode manuel¶
C'est celui qui permet de fixer les paramètres à utiliser de façon précise, dans le but de cerner de plus près son besoin pédagogique. Il contient un bouton de choix qui ouvre une fenêtre dans laquelle on peut choisir les éléments sur lesquels on souhaite que l'exercice porte. Dans certains exercices borner l'affichage des éléments.
Le mode automatique¶
C'est celui qui va fixer les paramètres aléatoirement, permettant par là de créer très vite un exercice, mais sans beaucoup de contrôle...
Le mode intelligent¶
Ce mode intermédiaire entre les deux autres n'est présent que dans certains exercices, et permet de choisir des éléments du texte aléatoirement mais en tenant compte de contraintes, notamment la nature des mots ou le niveau de classe.
Les mots utilisés pour l'exercice seront des mots du texte mais présents également dans le fichier-dictionnaire mot_aller_cycle3.csv.
Pour ce qui concerne les verbes, et en référence au BO HS3 du 19/06/08, on trouvera dans ce dictionnaire :
Avec le tag "CP" : Les infinitifs marqués "CP" + leurs formes conjuguées au présent, au futur simple, et au passé composé de l'indicatif
Avec le tag "CE1" : Les infinitifs marqués "CE1" + leurs formes conjuguées au présent, au futur simple, au passé composé de l'indicatif et à l'imparfait, mais aussi les formes conjuguées à l'imparfait des verbes dont l'infinitif est tagué "CP"
Avec le tag "CE2" : Les infinitifs marqués "CE2" + leurs formes conjuguées au présent, au futur simple, au passé composé de l'indicatif et à l'imparfait.
Avec le tag "CM1" : Les infinitifs marqués "CE1" + leurs formes conjuguées au présent, au futur simple, au passé composé de l'indicatif,à l'imparfait, au passé simple et à l'impératif présent, mais aussi les formes conjuguées au passé simple et à l'impératif présent des verbes dont l'infinitif est tagué "CE2", "CE1" ou "CP"
Avec le tag "CM2" : Les infinitifs marqués "CM2" + leurs formes conjuguées au présent, au futur simple, au passé composé de l'indicatif, à l'imparfait, au passé simple et à l'impératif présent, au futur antérieur, au plus-que-parfait-, au conditionnel présent, les participes présent et passé mais aussi les formes conjuguées au futur antérieur, au plus-que-parfait-, au conditionnel présent, les participes présent et passé des verbes dont l'infinitif est tagué "CM1", "CE2", "CE1" ou "CP"
Les boutons de choix¶
Ils ouvrent pour permettre à l'utilisateur de choisir des éléments dans le texte une structure composée :- d'une QWidget parent des autres éléments, à laquelle on accède par un pointeur qui est une variable membre, afin de pouvoir la fermer d'une autre fonction que celle où on l'a créée.
- d'une QScrollArea,
- d'une fenêtre incluse dans la QScrollArea, qui contiendra les objets permettant l'affichage :
- un QTextEdit unique pour texteATRous, dans lequel on affichera le texte et où on récupèrera des sélections grâce à une QTextCursor,
- des AbulEduTextEditV1 pour ordreAlphabetique, motsMelanges, phrasesMelangees, paragraphesMelanges, rechercheRapide et dans l'avenir phraseSansEspace. Ces étiquettes qui contiennent chacune un élément (mot, phrase ou paragraphe, selon les cas) et sont indexés permettent d'être sûr que la nature de la sélection est bien conforme à celle attendue. - de trois boutons : un bouton Valider qui enregistre la sélection, un bouton Annuler qui reprend si elle existe la sélection qui existait avant le clic sur le bouton Choix, un bouton Effacer tout qui réinitialiserait une sélection en cours.
Voici, en date du lundi 26 mars, les résultats de quelques tests :
Pour Ordre alphabétique:
le clic sur le bouton choix ouvre bien une fenêtre qui contient des étiquettes qui contiennent elles-même les mots, l'arrière plan mis en blanc pour qu'on ne voit pas que ce sont des étiquettes. L'ouverture est un peu lente...
Si on clique dans le texte, on sélectionne des mots (le clic sur une étiquette déjà sélectionnée la dé-sélectionne). Le QTextEdit de l'onglet Ordre alphabétique se met à jour chaque fois qu'on sélectionne un mot. Cela n'est peut être pas malin, il vaudrait sans doute mieux ne mettre à jour qu'au clic sur le bouton valider.
Si on clique sur le bouton Valider, on quitte cette fenêtre de choix et c'est tout puisque le QTextEdit est déjà à jour.
Si on clique sur le bouton Annuler, on quitte cette fenêtre de choix et on remet l'ancien contenu, gardé dans une variable membre m_previousSelection
Si on clique sur le bouton Effacer tout, on reste dans la fenêtre de choix, la QStringList des objets sélectionnés, le QTextEdit sont effacés, tous les objets affichés sont remis à blanc. Si on reclique sur les mots du texte on a un bug : au premier clic le mot reste blanc mais s'écrit dans le cadre texte...
conclusion : https://redmine.ryxeo.com/issues/2068