Comment minimiser la banque de questions lors d'une sauvegarde/restauration d'un cours

De MoodleDocs
Aller à :navigation, rechercher

Remarque : la traduction de cette page n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.


Problématique

Cette problématique apparaît lorsque votre banque de questions devient trop grande, au-delà d'un millier de questions ou d'une taille de 30 à 50 Mo.

Les grandes banques de questions ont généralement vocation à être partagées au niveau d'un site complet et sont alors stockées au niveau le plus haut, le niveau système.

Lorsque vous sauvegardez un cours ou un test et que ce cours ou test utilise des questions qui sont dans un contexte extérieur au cours (niveau catégorie de cours ou niveau système), l'archive inclut l'ensemble de la banque de questions même si les questions ne sont pas utilisées. Cela génère une archive de grosse taille pouvant poser des problèmes à la restauration :

  • archive refusée, car de taille supérieure à celle autorisée par le site ;
  • requête php interrompue, car dépassant le temps limite défini sur le serveur ;
  • temps d'import devenant extrêmement long.
  • duplication indésirable de questions
  • surpoids inutile du site Moodle
  • perte de lisibilité de la banque de questions
  • perte de lisibilité des liens des tests du cours avec la banque de questions

Actuellement, lors d'une sauvegarde d'un cours vous n'avez le choix qu'entre inclure ou non la banque de questions. La possibilité d'inclure uniquement les questions utilisées dans le cours ou le test n'existe pas.

Cette demande d'amélioration de Moodle est signalée depuis 2007 dans le Tracker : MDL-12403 puis MDL-41924. Voir la documentation anglaise (lien en bas de page) pour l'historique de ces demandes.

En attendant une évolution, voici des conseils d'organisation et des stratégies de contournement de ce problème.

Comprendre le fonctionnement de la sauvegarde/restauration d'un cours

Situation

Beaucoup de Moodleurs travaillent sur un site de développement pour produire leurs ressources puis sauvegardent/restaurent le cours sur le site de fonctionnement.

Notez que le mot "catégorie" peut désigner une catégorie de questions dans une banque de questions ou une catégorie de cours dans Moodle. Une catégorie de cours représente le contexte dans lequel se trouve une catégorie de questions.

Considérons sur le site de développement un cours rangée dans une sous-catégorie de cours contenant un test incluant des questions se trouvant dans la catégorie du cours, dans la catégorie supérieur et au niveau système.

Exemple

Les listes ci-dessous représentent les déplacement des banques lors d'une sauvegarde/restauration d'un site vers un autre.

Site de développement

Niveau Système

  • Catégorie de questions niveau site (2)
    • Une question utilisée dans le test
    • Une question inutilisée dans le test
  • Catégorie de cours A
    • Catégorie de questions A (2)
      • Une question utilisée dans le test
      • Une question inutilisée dans le test
    • Catégorie de questions inutilisée (1)
      • Une question inutilisée dans le test
    • Catégorie de questions vide (0)
    • Catégorie de cours A1
      • Catégorie de questions A1 (2)
        • Une question utilisée dans le test
        • Une question inutilisée dans le test
      • Cours
        • Test

Sauvegarde puis restauration sur le site de fonctionnement

Niveau Système

  • Catégorie a de questions niveau site (2)
    • Une question utilisée dans le test
    • Une question inutilisée dans le test
  • Catégorie de cours A
    • Catégorie de cours A1
      • Cours
        • Catégorie de questions A (2)
          • Une question utilisée dans le test
          • Une question inutilisée dans le test
        • Catégorie de questions A1 (2)
          • Une question utilisée dans le test
          • Une question inutilisée dans le test
        • Catégorie de questions inutilisées (1)
          • Une question inutilisée dans le test
        • Catégorie de questions vide (0)
        • Test

A savoir

  • Toutes les questions d'une catégorie de questions sont importées (même celle inutilisées)
  • Les questions au niveau système se retrouvent au niveau système
  • Les questions au niveau d'une catégorie de cours se retrouvent dans le cours
  • Du moment qu'une seule question est utilisée dans le test, toutes les catégories de questions d'un contexte sont intégrées dans la sauvegarde
    • Même les catégories ne contenant aucune question utilisée dans le test
    • Même les catégories vides
  • Les points précédents sont valables même si les catégories de cours portent les mêmes noms sur les deux sites.

Ce fonctionnement a été constaté sur Moodle 3.1 et n'a pas été testé sur des versions antérieures.

Organiser sa banque de questions

Objectifs :

  • partager au maximum les banques de questions
  • minimiser les questions externes à un cours ou un test pour faciliter l'export/import du cours ou du test
  • faciliter la recherche des questions partagées

Notez que le mot "catégorie" peut désigner une catégorie de questions dans une banque de questions ou une catégorie de cours dans Moodle.

Questions à usage unique

C'est le cas de questions formant un problème. Elles sont liées entre elles et n'ont pas beaucoup d'intérêt prises séparément. -> Dans ce cas, créer vos questions directement au niveau du test et partager le test (son archive avec une description sur un dépôt partagé)

C'est aussi le cas de tests très spécifiques.

Questions à usages multiples

C'est le cas des questions créer dans un cadre disciplinaire ou/et de cursus.

Dans ce cas il faut adopter plusieurs règles :


Stratégie pour réduire la banque de question d'un cours lors d'un export

This workaround strategy is based on the design of the question bank which only includes questions in a backup that are in the same category or a higher level category.

Thus System Level questions are included in every backup on the site.

Stratégie 1

  • Les questions existent déjà au niveau d'une catégorie de cours ou au niveau sytème.
  • Les tests du cours sont déjà composés
  • Meilleure solution pour des cours contenant beaucoup de test et/ou des tests avec beaucoup de questions

Il s'agit d'isoler le cours et les catégories de questions dans une catégorie de cours temporaire avant de faire l'export

  1. Move all questions from System Level and other upper level Categories in your question bank to lower category levels--down to course level categories. (this makes it difficult to view and share, but is necessary).
  2. Move the course (or a copy of the course) to a temporary Course Category somewhere on your site where there are no other courses.
  3. Make a backup of your course and restore this backup in the same Course Category. (Moodle will automatically push all upper level category questions into course level categories--you will see this happen on the screen).
  4. Go into the newly restored course and open the Question Bank. You will see all questions are at the course level.
  5. Prune (delete) all unneeded questions in your newly restored course. Do not worry about deleting here, because you are only deleting course level copies of the questions. The original questions on your site are not affected.
  6. As you delete groups of questions, Moodle will list and confirm the questions you wish to delete. If you mistakenly try to delete a question that is being used in your course, Moodle will mark that one with an asterisk. Then cancel the deletion, and try selecting again. Note those questions and cancel the deletion and choose only unneeded questions. (in the case of thousands of questions, this deletion process can take a long time).
  7. After you have minimized the questions manually by deletion at these course level categories, you can now make a another backup file and when you restore it, only the remaining questions you selected will be included.

Stratégie 2

  • Les questions existent déjà au niveau de la catégorie du cours ou au niveau sytème.
  • Le test est déjà composé.
  • Meilleure solution dans la cas d'export d'un ou deux tests de tailles petites à moyennes.

Il s'agit de reconstruire le test à partir des catégories de questions importées au niveau de ce nouveau test

  1. Accéder à la composition du test (Administration du test -> Modifier le test)
  2. Pour chaque question, repérer les catégories utilisées
  3. Exporter toutes ces catégories
  4. Créer un nouveau test
  5. Importer les catégories de question au niveau du test
  6. Recomposer le test
  7. Supprimer les questions inutilisées

Stratégie 3

  • Les questions existent déjà au niveau de la catégorie du cours ou au niveau sytème.
  • Le test n'existe pas encore ou n'est pas encore composé.
  • Meilleure solution pour des tests de tailles petites à moyennes.
  • Meilleure solution par anticipation.

Il s'agit d'importer dans le test un double des questions avant de composer le test.

  1. Repérer les catégories de questions que vous allez utiliser dans votre test
  2. Exporter ces catégories de questions une à une
    • Veiller à cocher "Exporter la catégorie dans le fichier" et décocher "Exporter le contexte dans le fichier"
  3. Créer votre test
  4. Importer les catégories de questions au niveau de la banque de questions du test
  5. Composer votre test
  6. Exporter le cours ou le test.


In addition, you can encourage Moodle HQ to tackle this issue by voting, watching, and commenting in these two tracker issues: MDL-41924 and MDL-12403.