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

Remarque : la rédaction de cette page est terminée. Elle nécessite encore une relecture. N'hésitez pas. Merci

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 contextes des questions utilisées dans un test.

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, vous trouverez plus bas dans cette page 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é 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érieure et au niveau système.

Exemple

Les listes ci-dessous représentent les différents contextes du cours et des questions lors d'une sauvegarde/restauration.

Observez bien les changements d'emplacements des catégories de questions après une restauration.

Site de développement avec droit d'administrateur

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 avec droits d'administrateur

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

Sauvegarde puis restauration sur le site de fonctionnement avec droits limités (créateur, enseignant)

Niveau Système

  • Catégorie de cours A
    • Catégorie de cours A1
      • Cours
        • 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 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

Lors d'une sauvegarde/restauration d'un cours contenant un ou plusieurs tests :

  • Toutes les questions d'une catégorie de questions sont importées (même celles inutilisées).
  • Les questions au niveau système se retrouvent au niveau système si vous avez les droits, au niveau du cours sinon.
  • 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 du même 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.

restauration categories questions.png

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 ou de cours très spécifiques. C'est à dire qu'il est plus intéressant de partager le cours et les tests que la banque de questions seule.

Questions à usages multiples

C'est le cas des questions créées dans un cadre disciplinaire ou/et de cursus. La banque de questions est conçue et partagée par une équipe

Dans ce cas il faut adopter plusieurs règles.

Ce chapitre se poursuit sur une page dédiée : Propositions d'organisation d'une grande banque de questions

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

Ces stratégies sont des pis-aller.

Dans tous les cas il vaut mieux anticiper la gestion des questions avant de créer un test.

Stratégie 1

  • Les questions se trouvent au niveau d'une catégorie de cours mais pas niveau système.
  • Les tests du cours sont déjà composés
  • Meilleure solution pour des cours contenant beaucoup de tests 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. Sauvegarder le cours.
  2. Restaurer le cours dans une catégorie de cours temporaire qui ne contient aucun autre cours.
    • Toutes les catégories de questions sont alors incluses (dupliquées) dans le cours restauré.
  3. Supprimer les questions (celles dans le cours) non utilisées.
    • C'est le gros travail.
  4. Faire une sauvegarde de ce nouveau cours.

Stratégie 2

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

En restaurant le cours à partir d'un compte enseignant, les questions au niveau système seront intégrées dans le cours

  1. Sauvegarder le cours.
  2. Prévoir une catégorie de cours vide accessible par le compte enseignant que vous allez utiliser pour la restauration.
  3. Connectez-vous sur le site avec un compte Créateur de cours ou Gestionnaire de catégorie.
  4. Restaurer le cours dans une catégorie de cours temporaire qui ne contient aucun autre cours.
    • Toutes les catégories de questions sont alors incluses (dupliquées) dans le cours restauré.
  5. Supprimer les questions (celles dans le cours) non utilisées.
    • C'est le gros travail.
  6. Faire une sauvegarde de ce nouveau cours.

Stratégie 3

  • Les questions existent déjà au niveau de la catégorie du cours ou au niveau système.
  • Le test est déjà composé.
  • Meilleure solution dans le 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 questions au niveau du test
  6. Recomposer le test
  7. Supprimer les questions inutilisées
  8. Supprimer l'ancien test
  9. Sauvegarder le test ou le cours

Stratégie 4

  • Les questions existent déjà au niveau de la catégorie du cours ou au niveau systè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. Sauvegarder le cours ou le test.

_______

En complément, vous pouvez encourager Moodle HQ (le quartier général des développeurs) de prendre en compte cette demande d'amélioration en votant pour la rendre prioritaire sur le Tracker (il faut créer un compte) : MDL-41924 and MDL-12403.