[H5P] Plantage librairies

[H5P] Plantage librairies

par Olivier Valentin,
Nombre de réponses : 36
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Bonjour à tous,

dans la série des discussions autour d'H5P et de son fonctionnement parfois obscur, parfois inhabituel, voici un nouveau cas...

Notre Moodle tourne sur 3.5.8+
Le plugin H5P est la dernière version existante, 1.20.1 (2019111300)

Lundi, je suis passé sur la page d'administration des librairies du plugin pour faire une manipulation que j'effectue régulièrement et qui ne m'a jamais posé de problèmes jusqu'ici. Cette page offre la possibilité de basculer les modules existants sur une nouvelle librairie, ce qui permet alors de profiter des nouvelles fonctionnalités qu'H5P ajoute régulièrement sur des modules précédemment créés.

Jusqu'ici, tout allait bien... mais là...

Suite à la dernière manœuvre, tous les modules utilisant l'outil Course Presentation plantent. Le plantage est très variable : certains fonctionnent entièrement, certains refusent de s'afficher, certains affichent 3 diapos puis la navigation se bloque... Bref, les symptômes sont tous très différents !
Le plus grand point commun est l'absence d'accès à l'interface d'administration. A la place du cadre où apparaissent les outils de modifications, j'obtiens le message [field:group:coursepresentation:presentation].
Mais à noter que pour les autres outils, tout est ok ! Les objets fonctionnent, j'accède à l'interface d'admin. Mis à part Branching Scenario, tout est ok.

Je pense donc qu'il y a eu un souci au moment de la mise à jour et de la bascule des bibliothèques... mais comment réparer cela ??

J'ai essayé d'aller directement dans la table mdl_hvp : dans cette table sont listés tous les modules H5P, avec un champ main_library_id qui indique la bibliothèque utilisée. J'ai essayé de mettre un id d'une librairie précédente. Il y a du mieux, l'interface d'admin réapparait, mais impossible d'enregistrer le travail ! Certains modules réapparaissent, mais tout n'est pas optimal. Au mieux, cette manœuvre me permet juste de confirmer qu'il semble y avoir un souci de bibliothèque. A noter que pour l'outil Course Presentation, il semble y avoir à la fois des librairies pour le fonctionnement de l'outil, et aussi une bibliothèque pour l'éditeur. C'est peut-être à ce niveau que cela pèche plus.

J'ai bien sûr essayé de contacter H5P via leur forum, mais je n'obtiens strictement aucune réponse. triste

Peut-on revenir sur une ancienne bibliothèque ? Si oui, comment ?
Peut-on désinstaller une bibliothèque ?
Auriez-vous éventuellement d'autres pistes à explorer ?

Sinon, il me restera peut-être encore la possibilité de sauvegarder les modules contenant des Course Presentation, désinstaller et réinstaller le plugin et réimporter le tout... Ou de compter sur une hypothétique mise à jour coté H5P qui résoudrait cela...

Bref, j'espère un miracle de Noël d'H5P ou de votre part !!!

Olivier
Moyenne des évaluations  -
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Hello Olivier,

Je ne suis pas le père Noël mais je vais tenter de t'aider...

Tu as quelles versions des librairies de CP (Course Presentation) ? Actuellement les plus récentes sont: Course Presentation (1.21.4)
et Course Presentation Editor (1.21.3).

OV.- "Le plantage est très variable : certains fonctionnent entièrement, certains refusent de s'afficher, certains affichent 3 diapos puis la navigation se bloque..."

Quel est exactement le contenu des instances de CP qui marchent ? et de celles qui ne marchent pas ? Enfin, pour celles qui ne marchent pas, on ne peut pas en voir le contenu. Je suppose que le pb "aléatoire" vient du contenu, c'est-à-dire des pages (diapos) qui ne contiennent que du texte ou des images d'une part et des pages qui contiennent d'autres activités H5P qui y auraient été insérées d'autre part ?

Si tu utilisais H5P sous WordPress ou Drupal, il serait bien plus facile d'y voir clair. Malheureusement l'intégration de H5P dans Moodle est --- à mon avis --- un vrai cauchemar. C'est en partie la faute de Moodle qui a décidé de chiffrer les ressources, si bien qu'on n'y retrouve plus ses billes. Le pb a été signalé par Patrick ici : https://moodle.org/mod/forum/discuss.php?d=377299#p1521229

OV.- "Peut-on désinstaller une bibliothèque ?"

Dans Moodle, la réponse est "non".

Sur le site H5P, le 19/09/2016 - 10:04 icc a écrit The option to delete libraries currently isn't supported in Moodle. However, it will be added to the plugin soon. If you have libraries that you don't wish should be used in courses your only option is currently to 'restrict' them.

Sur le forum H5P cette question posée cet été n'a toujours pas eu de réponse : https://h5p.org/comment/29269#comment-29269

Important : est-il maintenant possible de créer des instances de CP qui marchent correctement ?

Joyeux Noël,

Joseph

Moyenne des évaluations Utile (2)
En réponse à Joseph Rézeau

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Cher Papa Noël, sourire

merci déjà pour ta réponse ! J'ai été très sage, alors j'espère que mon Moodle refonctionnera...

Pour reprendre les différents éléments demandés :

  • j'ai bien les dernières versions des bibliothèques les plus récentes pour Course Presentation et son éditeur, à savoir 1.21.4 et  1.21.3.
  • sur les contenus plantés : à nouveau, c'est variable ! Je pensais que cela pouvait provenir du fait que certains contenaient en plus des petits quizs, des flashcards... même pas. Certains slides ne contiennent que du texte à la base, mais plantent complètement, alors que d'autres fonctionnent entièrement ou partiellement. Bref, le contenu même du slide ne donne pas de résultats différents, d'où ma qualification de "très variable".
  • pour la création de nouvelles instances : là non plus ça ne fonctionne pas. L'éditeur n'affiche que le message d'erreur.
l'intégration de H5P dans Moodle est --- à mon avis --- un vrai cauchemar

Sur ce point, maintenant que je me heurte à un gros problème, je fais mieux que m'en douter, je l'expérimente... triste
Et l'impossibilité de désinstaller une bibliothèque - ce que j'avais aussi cru comprendre dans mes recherches - me bloque encore plus.

Donc ce matin, voilà où en sont mes réflexions. Pour m'aider, j'ai repris l'intervention très intéressante qui a eu lieu au MoodleMoot de Rennes:
Au vu des problèmes, il semble donc que les librairies de Course Presentation (et/ou son éditeur) ont rencontré un problème lors de la mise à jour et de la bascule d'une version à l'autre. Pour preuve : mon instance de test, qui tourne avec les mêmes versions (de Moodle, du plugin et des librairies) fonctionne parfaitement !

Comme les librairies sont stockées dans le MoodleData, et non dans le dossier système, je ne peux pas remplacer facilement les fichiers.
Comme les librairies ne sont pas désinstallables, je ne peux pas espérer enlever les fichiers problématiques.

Quand je modifie la table mdl_hvp et son champ main_library_id, l'interface réapparait mais sans possibilité d'enregistrer.  Mais attention : dans ce champ main-library_id, l'identifiant correspond à la librairie Course Presentation, et non à Course Presentation Editor ! Je commence donc à me demander si, quelque part, il n'y a pas une référence au fait que ces deux librairies sont liées, et que même si j'appelle la librairie précédente, il continue à m'appeler la dernière version pour l'éditeur...

Bref, beaucoup de questions...
Au final, j'en viens à me dire qu'il va peut-être falloir passer par une solution plus radicale : sauvegarder TOUS les modules créés, désinstaller H5P et le réinstaller en croisant les doigts pour que tout refonctionne.
Sinon, je ne peux compter que sur le miracle de Noël avec une potentielle mise à jour de l'ensemble du plugin ou des librairies, qui me sortiraient de là... triste

Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Olivier,

Désolé de ne pas pouvoir t'aider sur cette problématique.

Je me dis par contre que, comme indiqué dans la planification, Moodle s'impliquant actuellement dans le développement lié à H5P, avec des développements effectués pour Moodle 3.8 et d'autres à venir pour Moodle 3.9, cela vaudrait sans doute le coup de faire remonter les éléments qui posent problème, en espérant qu'ils puissent être pris en compte dans le cadre de ces développements.

Séverin

En réponse à Séverin Terrier

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Séverin,
directement dans le tracker, tu penses ?
Le souci principal selon moi, c'est l'idée de stocker les librairies dans le moodledata, car cela paralyse potentiellement tout le plugin s'il y a plantage ou si une librairie a un souci. J'ai regardé la BDD de Moodle 3.8, qui intègre à présent des tables mdl_h5p, et qui sont identiques aux tables mdl_hvp qu'on obtient en installant le plugin. Donc pour la 3.8, Moodle ne semble pas remettre en cause ce fonctionnement de stockage des librairies !! triste
Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
A mon sens, tout ce qui tourne autour d'H5P, et de cas réels d'usage peut donner des informations intéressantes et du grain à moudre aux décideurs et développeurs.

Et c'est toujours mieux si les informations sont disponibles en amont, et peuvent être gérées rapidement dans le processus, plutôt que devoir tout modifier après coup.
Pour autant, comme ils risquent fortement de se baser sur l'existant, pas sûr que tout soit remis en cause...

Séverin
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Valery Fremaux,
Avatar Développeurs de plugins
Il y a plus problématique encore :

Je me suis rendu compte que lorsque H5P modifie ses librairies, certaines activités se mettent à dysfonctionner si on ne remet pas à jour le plugin moodle et ses librairies. Il semble (je n'ai pas confirmé) que certains éléments utiliseraient des ressources en ligne qui viennent de chez H5P directement et pas des librairies locales. Et donc conséquence ; laisser un moodle tranquille sans maintenance histoire de garder un volume de formation "stabilisé" pourrait être impossible avec certains plugins H5P.

Je l'ai constaté sur nos sites académiques, mais cela reste l'interprétation de l'apparition soudaine de défauts de fonctionnements tels que rapportés ici, sans aucune modification du code local.
Valery
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,

Salut Olivier,

As-tu réalisé une sauvegarde avant, comme je le conseille dans la vidéo à -18:55 ?

Si oui, le mieux c'est sans doute de procéder par backup/restore des parcours touchés depuis cette sauvegarde. En plus, un parcours dans son état antérieur nous permettrait de tenter de reproduire ce qui est arrivé.

Sinon, je te propose de tester la méthode suivante :

  • Sous une activité qui déconne, clique sur Reuse/Réutiliser pour obtenir le .h5p ;
  • Importe le fichier sur h5p.org ;
  • Réexporte-le pour le remettre en place dans le parcours.
Si l'option Reuse/Réutiliser ne s'affiche pas dans la petite barre d'état grise de l'activité h5p, il faut modifier les paramètres H5P du plugin. Je te donnerai les détails si besoin.

Bon courage,

Rémi

En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Rémi "Sous une activité qui déconne, clique sur Reuse/Réutiliser pour obtenir le .h5p ;
Importe le fichier sur h5p.org ;
Réexporte-le pour le remettre en place dans le parcours."

Ou alors, plutôt que de déposer le fichier sur h5p.org, tu pourrais le déposer sur ton instance de test, dont tu as dit qu'elle fonctionnait normalement.
En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Rémi,
Bonjour Joseph,

en ce début d'année 2020, je reviens frais (??) et dispo (moué...) pour résoudre mon problème H5P.

As-tu réalisé une sauvegarde avant, comme je le conseille dans la vidéo à -18:55 ?

évidemment non... Déjà c'est pas malin. Mais en même temps, depuis que j'ai installé H5P, c'est la première fois que j'ai un souci. J'ai toujours mis à jour les librairies et actualisé les contenus via l'interface Moodle. Il y a clairement eu un souci au moment où j'ai lancé l'actualisation de contenu, quelque chose s'est mal déroulé, un incident réseau...

Utiliser le bouton Reuse et importer un contenu

Une fois encore, on voit le coté aléatoire du problème :
  • sur les activités qui refusent d'apparaitre : je peux aller dans l'admin, demander à afficher la barre avec le bouton Réutiliser, mais vu que rien ne s'affiche... le bouton n'apparait pas non plus, donc impossible de télécharger !
  • sur les activités qui veulent bien apparaitre, 2 cas :
    • je peux accéder à l'admin, mais impossible d'enregistrer la modification. Donc non exploitable.
    • je peux accéder à l'admin et afficher le bouton Reuse : c'est donc le seul cas où j'ai pu faire un test.
J'ai essayé de l'importer sur mon instance de test, mais pour le moment, je rencontre une erreur 413 qui semble plutôt due au navigateur. Pas encore résolu pour le moment...

Mais plus important : j'ai importé un ficher que j'ai réussi à extraire et à l'importer sur le site d'H5P ! Et là, ho bonheur, tout fonctionne !!!!!!
Je ne suis pas encore au bout du tunnel, mais dans le pire des cas, cela signifierait que je peux exporter un à un tous mes modules H5P pour les sauvegarder, et pourquoi pas désinstaller le plugin puis le réinstaller proprement, en espérant que les bibliothèques se remettent à zéro ! Mais bon, on en est pas là, et rien n'indique que cela fonctionnerait pour autant...

En attendant, j'en suis toujours au même point (mais c'est mon premier jour de boulot) : de manière assez erratique, mes modules affichent des problèmes.
Plus de tests dans les journées à venir...

Allez, bonne année quand même... 🎆🎉✨

Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,
Bonjour Olivier,

Mes vœux les meilleurs pour ce problème mais surtout pour le reste clin d’œil

As-tu tenté d'activer le mode développeur de ta plateforme (à partir du compte admin) pour visualiser le détail de l'erreur qui se produit ?
- Pour ce faire, tu vas dans Administration du site -> Développement -> Débogage et tu places "Messages de débogage" à la valeur "Développeur..." ;
- Ensuite tu vas voir une activité H5P qui déconne et tu accèdes maintenant aux détails de l'erreur ;
- Vu que c'est une plateforme de production, tu n'oublies pas de remettre l'option à sa valeur initiale tout de suite après.

Si tu veux ensuite nous transmettre ce que tu auras vu, fais bien attention d'abord aux données qui s'y trouvent (dans le doute, on passera par mail) clin d’œil

Bonne rentrée,
Rémi
En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Rémi,

j'avais déjà tenté le mode debug de Moodle : rien de probant. Les messages qui sont affichés sont uniquement relatifs à d'autres éléments qui n'ont rien à voir avec H5P (mon template, certains dev spécifiques de ma plateforme etc.).

L'endroit où je rencontre plus de renseignements, c'est dans la console Firefox. Lorsque je l'active, il y a 2 messages qui reviennent souvent :

  • TypeError: XXX is undefine (XXX se rapporte aléatoirement à H5P.Question, H5P.Title, s, instance.....)
  • Unable to find constuctor for: H5P.CoursePresentation 1.21 h5p.js:976:13 (mais c'est plus rare).
Après un coup d'oeil dans la table mdl_hvp_libraries_cachedassets, j'ai vu qu'on trouvait, pour chaque librairie, le hash du fichier auquel il se rapporte dans le dossier moodledata. J'ai vérifié, a priori les fichiers sont en place.
Une idée pourrait peut-être consister à tenter de récupérer les fichiers de mon instance de test et de les remplacer sur la prod... Un peu hasardeux.

Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,

En effet, pas étonnant qu'il y ait plus à voir dans la console JS vu que le plugin H5P fait grand usage des requêtes AJAX...

La version 1.21 de Course Présentation est-elle la version la plus récente disponible sur ta plateforme pour ce type de contenu ?

Lorsque tu as réalisé l'action de mise à jour des bibliothèques qui a mal tournée, as-tu eu une erreur ou bien un message du style "Vous avez mis à jour avec succès X instance(s) d'activité(s). Retour" ?

Te souviens-tu du numéro de version de Course Presentation pour lequel tu as cliqué sur une flêche verte en bout de ligne dans le tableau des types de contenu ?

Tu t'es ensuite retrouvé sur une page du style /mod/hvp/upgrade_content_page.php?library_id= mais quelle était alors la version d'arrivée proposée sur la page ? Cette version était contenue dans une liste déroulante après une phrase du style "Vous êtes sur le point de mettre à jour X instance(s) d'activité(s). Merci de sélectionner la version de la mise à jour."

Rémi

En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
@Rémi,
Tes questions sont bien intéressantes, mais elles supposent qu'avant de procéder à la mise à jour de ses librairies H5P notre ami Olivier aurait mis en route une capture vidéo de son écran de sa plateforme Moodle pour enregistrer une vidéo de toutes ses manipulations. Qui fait ça ? (à moindre d'être parano).clin d’œil
En réponse à Joseph Rézeau

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,

@Joseph,

Sauf erreur de ma part, Olivier a trouvé une manière de résoudre son problème (voir "Mais plus important [...]" dans son premier message de janvier). Seulement cette solution va être lourde à mettre en œuvre...

Mes nouvelles questions visent à comprendre ce qui s'est passé de manière à reproduire puis alerter l'équipe H5P et/ou trouver une solution plus simple pour Olivier. Il est évident qu'il n'aura sans doute pas toutes les réponses à mes questions mais ça ne me semble pas être une bonne raison pour ne pas les poser.

Les deux premières ne devraient pas poser problème même si aucune trace n'a été conservée. En ce qui concerne les deux suivantes, il faudrait qu'il ait pris note sur papier du détail de ses actions, là je suis bien d'accord. S'il ne l'a pas fait, on doit pouvoir déduire les réponses de ses actions : a-t-il réalisé la mise à jour du plugin H5P puis cliqué sur toutes les flèches vertes régulièrement ? Si oui, il suffit de regarder la liste des bibliothèques disponibles pour obtenir les réponses à mes questions. Si non, on se débrouillera autrement s'il souhaite continuer l'exploration...

Bonne journée,
Rémi

En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour à tous,

alors effectivement, je vais peut-être avoir du mal à me souvenir de précisément tout ce qui s'est passé... Mais globalement, ça devrait aller puisqu'en effet ce sont des infos que je peux trouver directement dans l'admin.

Donc dans mes souvenirs, le plugin H5P était bien à jour depuis un bon moment. La dernière version date du 13 novembre 2019 ; je ne l'ai pas mis à jour "day one", mais en tout cas, je n'ai pas tardé à le faire. Donc le plugin a été mis à jour courant novembre. Bien avant mon souci...

  • Te souviens-tu du numéro de version de Course Presentation pour lequel tu as cliqué sur une flêche verte en bout de ligne dans le tableau des types de contenu ?
Facile : la version précédente à celle actuellement, à savoir il s'agissait de la version Course Presentation (1.20.4). Pour répondre également à d'autres questions, je consulte régulièrement la page des bibliothèques pour faire les bascules à l'aide des flèches vertes. Et lorsque j'avais cliqué sur la flèche, je suis effectivement tombé sur une page qui me demandait si je voulais basculer X instances sur la nouvelle bibliothèque. Par rapport à ma manip habituelle, je n'ai rien remarqué d'autre à ce niveau.

  • Lorsque tu as réalisé l'action de mise à jour des bibliothèques qui a mal tournée, as-tu eu une erreur ou bien un message du style "Vous avez mis à jour avec succès X instance(s) d'activité(s). Retour" ?
C'est là qu'il y a eu souci. En reprenant mes souvenirs, je me demande s'il n'y a pas eu un souci réseau, un plantage ou un truc comme ça. Car d'habitude, j'ai bien ce message, mais là la mise à jour des modules a ramé pendant un très long moment, ce qui était inhabituel. A un tel point que mon navigateur était même gelé ou quelque chose comme ça, bloqué sur cette page qui tournait indéfiniment. Mon Moodle ne répondait plus.
C'est pour cela que je pense à un souci au niveau de la / des bibliothèques H5P, mais pour le moment, tous mes tests ne me donnent pas plus d'indices ! Je m'étais dit par exemple que le fichier dans le moodledata aurait peut-être un souci de poids ou de nom par exemple si la mise à jour s'était mal passée. Mais a priori, même pas !

Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Re,
au fait, par ailleurs, une question qui me titille et que j'oublie à chaque fois de demander...
Dans l'admin du plugin, il y a la possibilité de "Déposer des bibliothèques" au format H5P pour la mise à jour. C'est très bien... mais où peut-on les trouver ??? J'ai passé un temps incroyable à chercher ces bibliothèques quelque part sur le site d'H5P, sans aucun résultat. Est-ce que cette interface est utile ? Peut-on vraiment uploader les bibliothèques par ce moyen ? Si oui, où les récupère-t-on ?
Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonne question,
La réponse est : ça ne sert à rien ! Je crois que c'est un reste d'une façon maintenant périmée d'installer des bibliothèques.
Joseph
Moyenne des évaluations Utile (1)
En réponse à Joseph Rézeau

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,

Salut tous les deux,

Ça fonctionne toujours et c'est même indispensable pour installer certaines bibliothèques comme celle qui permet d'écrire en LaTeX dans tous les types de contenu (https://h5p.org/mathematical-expressions).

Malgré tout, ce qui est confondant c'est qu'H5P ne distribue pas les bibliothèques disponibles via le hub (seulement quelques autres). Pour ces premières il y a tout de même une méthode, il suffit d'importer l'exemple du type de contenu qui t'intéresse à partir de cette page : https://h5p.org/content-types-and-applications

Pour installer Course Presentation sans passer par le hub, tu peux donc déposer - via la page d'administration - le fichier .h5p suivant : https://h5p.org/sites/default/files/h5p/exports/course-presentation-21-21180.h5p

Pour obtenir ce lien, je suis allé à la page https://h5p.org/presentation et j'ai cliqué sur "Reuse" dans la barre d'état de l'activité (juste en dessous).

Bonne soirée,

Rémi

Moyenne des évaluations Utile (1)
En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Merci pour les explications. A part cette bibliothèque qui permet d'écrire en LaTex, y-a-t-il d'autres bibliothèques H5P qui doivent s'installer indépendamment des autres types de contenu ?
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,

Salut Olivier,

Vu tes réponses il est possible que ce soit un timeout côté serveur ou un arrêt des requêtes AJAX en cours de route... Je vais regarder dans le détail le processus et je reviens vers toi !

En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,

Salut Olivier,

J'ai parcouru le code du plugin pour voir comment il réalise la mise à jour derrière les flèches vertes :

  1. Une requête AJAX unique (navigateur -> serveur) est transmise pour récupérer tous les JSON (d'un seul coup) des activités à mettre à jour (en gros ça contient toutes les informations rentrées par l'utilisateur à la création de l'activité) ;
  2. Une requête AJAX s'occupe ensuite de récupérer les "semantics" (ça décrit la structure du JSON attendu) du module dans sa version récente (pour toi Course Presentation en version 1.21) ;
  3. Une requête pour récupérer le fichier upgrades.js du module que tu cherches à mettre à jour (ce fichier contient une fonction par mise à jour subie par le module depuis ses débuts et c'est donc la fonction 21 du fichier /pluginfile.php/1/mod_hvp/libraries/H5P.CoursePresentation-1.21/upgrades.js dans ton cas, voir code si après) ;
  4. Le navigateur lance des workers (des instances de calcul indépendantes pour faire simple) pour appliquer la fonction de mise à jour sur chaque JSON du point n°1 ;
  5. Une requête AJAX unique retourne l'ensemble des nouveaux JSON au serveur et celui-ci stocke tout en BDD aux lieux et places des JSON précédents (donc sans sauvegarde) de la table mdl_hvp (une requête par activité sans transaction).

/**
 * Asynchronous content upgrade hook.
 * Upgrades content parameters to support CP 1.21.
 *
 * Set bgcolor hard to old default bgcolor if not set and no global background set
 *
 * @param {Object} parameters
 * @param {function} finished
 */
21: function (parameters, finished) {
    if (parameters && parameters.presentation) {
        const presentation = parameters.presentation;

        // Check for global background
        const globalBackground = presentation && presentation.globalBackgroundSelector &&
            (presentation.globalBackgroundSelector.fillGlobalBackground || presentation.globalBackgroundSelector.imageGlobalBackground);

        if (globalBackground === undefined && presentation.slides) {
            const slides = presentation.slides;
            slides.forEach(function (slide) {
                if (slide.slideBackgroundSelector) {
                    // Old CPs should keep the previous default bgcolor
                    const bg = slide.slideBackgroundSelector;
                    if (!bg.fillSlideBackground && !bg.imageSlideBackground) {
                        bg.fillSlideBackground = '#e8e6e7';
                    }
                }
            });
        }
    }

    // Done
    finished(null, parameters);
}
Moyenne des évaluations Utile (2)
En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Rémi,
encore une fois, merci pour toutes tes recherches qui permettent d'éclairer le fonctionnement de ce plugin ! sourire

Je comprends à présent mieux le fonctionnement de cette "mise à jour" des modules. Et cela me conforte donc dans ce que je pense, après les petites manips que j'ai tenté de mon coté... En effet, je suis allé directement dans la BDD de mon Moodle de prod (et de test aussi), et j'ai tenté de faire des copier/coller du champ "json_content" de la table mdl_hvp. Résultat : si je prends le code coté prod (qui ne fonctionne pas pour certains modules) et que je le colle coté test (qui fonctionne), je ne note aucun changement. Traduit en clair pour moi : mes contenus ne sont pas impactés, ce sont bien les librairies qui ne vont pas !

A ce stade, cela ne résout pas grand chose, mais cela conforte mon scénario de sortie de crise : pouvoir faire une sauvegarde des modules, avant de désinstaller totalement le plugin puis de faire sa réinstallation et de réimporter les contenus. J'en conviens que c'est dommage, mais je ne peux pas rester comme ça en attendant qu'une hypothétique mise à jour résolve mes problèmes... triste  L'idéal serait éventuellement que je voie avec mon service info pour que ma prod actuelle soit dupliquée sur mon instance de test pour que je puisse étudier le problème plus sérieusement.

Reste à fixer concrètement ce que je sauvegarde et comment je procède...

  • choix 1 :  sauvegarder individuellement chaque module H5P.
    • avantages : cela me fait une vraie sauvegarde locale complète que je peux réimporter, et je suis sûr que rien n'est perdu.
    • inconvénients : il faut tout faire un à un, et la désinstallation peut me faire perdre autre chose dans mes cours (notamment s'il y a des restrictions de disponibilités etc).
  • choix 2 : sauvegarder toutes les tables H5P, désinstaller le module puis le réinstaller, puis réimporter les tables
    • avantages : plus rapide pour la sauvegarde !
    • inconvénients : si le problème est quand même en partie dans la BDD, j'embarque  les ennuis... et cela ne résout pas le problème des cours scénarisés.
Le scénario de sauvegarde des tables me plait le plus, mais est-ce que je ne vais pas avoir d'autres soucis par rapport à d'autres tables (mdl_context, mdl_course_modules...) ?

Je suis bien sûr preneur pour toute remarque, avertissement ou conseil !

Olivier
En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,
Vu ce que j'ai décrit juste au-dessus, je ne comprends pas comment cette fonctionnalité a pu mener à ta situation.

Tu as dit que le processus avait gelé ce qui semblerait indiquer que ce sont les workers qui ont traînés des pieds. Mais dans ce cas, le serveur n'aurait jamais reçu les modifications à enregistrer...

Ou alors c'est le serveur qui - recevant la requête finale - a traîné (ça sous-entendrait que tu as de très nombreuses activités de type Course Presentation sur ta plateforme) et une timeout c'est produit (vu que le travail n'est pas effectué en CLI)...

Serait-il possible que cette mise à jour se soit finalement bien déroulée ? Et que ce soit le module Course Presentation en version 1.21 qui déconne ? On pourrait alors tenter de le réparer ou on pourrait rattacher tes activités à la version antérieure du module Course Presentation.

Si tu souhaites continuer l'exploration, il faudrait sans doute commencer par s'assurer que toutes les activités Course Presentation sont bien liées à la dernière version du module (sur la page "Bibliothèques H5P" du menu d'administration du site). Si certaines sont restées attachées à une version antérieure, ça pourrait expliquer que certaines fonctionnent et pas d'autres.

Bonne fin de journée,
Rémi
En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Serait-il possible que cette mise à jour se soit finalement bien déroulée ? Et que ce soit le module Course Presentation en version 1.21 qui déconne ?
-> Je ne pense pas, puisque tout fonctionne correctement sur mon instance de test, qui utilise les mêmes versions de bibliothèque ! Mais sur ce point, il y a pas mal de bibliothèques rattachées : c'en est peut-être une autre qui déconne (Image par exemple).

on pourrait rattacher tes activités à la version antérieure du module Course Presentation.
-> J'ai testé, sans succès. Je suis allé dans la table mdl_hvp, et j'ai tenté de modifier le champ main_library_id pour revenir à la version précédente. Sans succès...

il faudrait sans doute commencer par s'assurer que toutes les activités Course Presentation sont bien liées à la dernière version du module
-> C'est une des premières choses que j'ai vérifié, et elles le sont toutes !

Une question me vient à l'esprit : ces fameuses librairies du MoodleData, comment sont-elles mises à jour ? A quelle occasion exactement ? Lorsqu'il y a une nouvelle version du plugin ? On installe dans le dossier mod de Moodle et elles sont ensuite récupérées ?

Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Question subsidiaire : j'ai découvert qu'il y avait une sorte de mode "debug" pour H5P en ajoutant une variable dans le fichier config.php de Moodle. Est-ce que quelqu'un a déjà testé ?
https://h5p.org/comment/18405#comment-18405
Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,
Je ne connaissais pas mais voilà qui est intéressant sourire
En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Rémi > et comment que c'est intéressant.................  CA A MARCHÉ !!! (Désolé, je crie, mais je suis trop content...). 😃

Ce mode debug m'a sauvé la vie !
J'ai suivi les conseils donnés, à savoir :
  1. se rendre au préalable sur le site d'H5P, se rendre dans "Examples and downloads", choisir l'activité souhaitée.
  2. dans l'activité choisie, chercher le bouton "Reuse" qui se trouve sous le module d'activité. Cela permet de télécharger au format .h5p l'activité elle-même. Sauvegarder en local.
  3. dans Moodle, ajouter la ligne suivante dans le config.php de Moodle :
    $CFG->mod_hvp_dev = true;
  4. se rendre dans Administration du site > Plugins > Modules d'activités > H5P >Bibliothèques H5P
  5. dans "Déposer des bibliothèques", déposer le fichier .h5p téléchargé juste avant. Envoyer.

H5P précise toujours que cela permet d'installer les bibliothèques. Mais lorsqu'en plus on rajoute la ligne dans le config.php , cela a pour effet de remplacer les bibliothèques précédemment installées et de (re)mettre les nouvelles !

Cette ligne du config.php est importante : j'avais déjà tenté de réuploader des exemples provenant du site H5P, mais cela n'avait strictement rien donné. Là, le temps de chargement a été bien plus long (une bonne minute voire plus), et un message m'a alors indiqué que 70 bibliothèques avaient été remplacées ! Cette manipulation m'a réellement permis de réinstaller les bibliothèques déjà présentes et qui semblaient bien corrompues suite à mon problème informatique.

Suite à cette manipulation, un module H5P qui jusque là refusait de s'afficher est réapparu ; d'autres qui fonctionnaient à moitié fonctionnent en entier. Et pour ceux qui refusaient d'afficher l'interface de modification, l'interface réapparait...

Tous les problèmes ne semblent toutefois pas réglés, car il me semble que j'ai un ou deux modules qui ne fonctionnent pas totalement. J'ai trouvé et tenté cette manipulation juste avant de partir de mon boulot, donc je verrai demain plus en profondeur si tout est ok. Mais clairement, j'ai fait un gigantesque pas en avant ! Et si ma solution se confirme, il faudrait qu'elle soit mieux expliquée ou automatisée, car elle pourrait régler peut-être d'autres soucis à venir sur H5P dans Moodle !

Je confirmerai le contenu de ce message demain, lorsque j'aurais bien fait tous mes tests et répété si nécessaire l'opération. Là, ça me permet de ne pas oublier tout ce que j'ai fait juste avant de partir ! La suite des aventures demain, en espérant qu'elles se terminent bien ! sourire

Olivier

Moyenne des évaluations Utile (4)
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Rebonjour à tous,

dernier message, couplé avec le précédent, pour confirmer que le problème est à présent entièrement résolu. La manipulation d'hier a parfaitement fonctionné.

En reprenant mes modules ce matin, je me suis par contre rendu compte que certains ne fonctionnaient toujours pas. Hier, je n'ai fait que l'outil Course Presentation, et les modules qui ne fonctionnaient pas étaient un outil différent. J'ai refait la manipulation avec l'outil correspondant, et à présent tout est ok !

J'en profite pour vous joindre quelques captures d'écrans et pour confirmer ou approfondir certaines informations de mon message précédent.

Tout d'abord, une fois le module en question téléchargé sur le site d'H5P, vous devez bien le charger dans la partie "Déposer des bibliothèques" de l'admin du plugin. Par contre, il est inutile de cocher le bouton "Mettre à jour les bibliothèques existantes uniquement". Je n'ai pas noté de différences de résultats. La variable du config.php semble prendre le dessus sur tout le reste.


Ensuite, lorsqu'on lance le dépôt de bibliothèque, le temps de mise à jour est plus long que d'habitude. Et lorsque c'est terminé, on obtient bien un message qui apparait tout en haut de la page d'admin des bibliothèques. Dans l'exemple ci-dessous que j'ai effectué ce matin, j'ai mis à jour le contenu de l'outil Question Set. Celui de Course Presentation a mis à jour plus de 70 bibliothèques si mes souvenirs sont bons !

Si vous testez cette manipulation sans avoir mis au préalable la variable dans le config.php, ce message n'apparaitra pas ! Sans elle, c'est comme si vous souhaitiez installer une activité H5P qui n'existe pas. Le module n'ayant pas l’utilité de faire remonter des bibliothèques (elles sont déjà là !), ce résultat ne donnera rien.


Enfin, précision que je n'ai pas donné hier, n'oubliez pas ensuite dans la même page d'admin de cliquer sur la mise à jour du cache des bibliothèques. Cela permettra de tout purger et de relancer les modules H5P avec les bibliothèques correctement réinstallées.


Après, il faut simplement parcourir les activités H5P existantes et voir celles qui ne fonctionnent pas. Selon l'outil appelé, il peut y avoir des modules qui ne fonctionnent pas, auquel cas il faut recommencer la manipulation en téléchargeant à chaque fois le bon outil sur le site d'H5P. 

Dans mon cas, d'après mes recherches, seuls Course Presentation et Question Set ont du être réuploadés. Mon hypothèse quant à des bibliothèques abimées s'est avéré correcte.
Mais à noter qu'hier, je signalais qu'il m'était également impossible de faire des vidéos interactives car la barre de questions n'apparaissait plus ! On voit bien ici les fortes dépendances entre bibliothèques dans H5P, puisque j'ai remis à flot un outil en résolvant le problème lié à un autre outil.

J'espère que tout cela servira un jour à quelqu'un ! Et à présent, je vais enfin pouvoir fêter la nouvelle année sereinement... :D

Bonne journée, et merci à tous pour votre aide et vos recherches !

Olivier
Moyenne des évaluations Utile (2)
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,
Bravo sourire Très heureux que tu puisses enfin mettre cette affaire derrière toi !

Pour commenter ta remarque : "il faudrait qu'elle soit mieux expliquée ou automatisée". Oui c'est tout à fait possible de l'automatiser si l'investissement en vaut la chandelle. Peut-être devrais-tu proposer la chose à Moodle dans le cadre de leur intégration profonde du plugin...

Bon courage pour terminer le remplacement des bibliothèques,
Rémi
En réponse à Rémi Lefeuvre

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Rémi > ce fut violent, mais très formateur !! sourire Et merci encore pour toute ton aide qui m'a grandement aidé pour résoudre tout cela.

Pour le signalement, est-ce que tu aurais par hasard un exemple de rédaction pour un tel incident ? J'ai très peu utilisé le tracker Moodle en tant que rédacteur, et pour le problème qui nous regarde, j'ai du mal à voir comment je pourrais rédiger et quoi... En fait, il faut surtout attirer l'attention sur le fait que si la mise à jour des bibliothèques rencontre un souci extérieur et corrompt les bibliothèques, cette option doit être accessible plus facilement, c'est cela ? Mais pour reproduire le problème, on va avoir du mal... et je le souhaite à personne ! sourire

En tout cas, je n'ai eu que deux bibliothèques à remplacer, ce qui m'a pris à peine une minute. Donc oui, cela devrait être mieux automatisé car cela constitue une issue de secours primordiale qui devrait être plus facilement utilisable, car je ne pense pas que l'accès au config.php soit forcément aisé pour tous.

Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,
On a appris de nouvelles choses ensemble, c'est bien le but sourire

Je n'ai jamais créé de ticket sur le tracker non plus mais j'imagine que d'autres ici pourront t'aider pour ça.

Rémi
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Rémi Lefeuvre,
Désolé, je n'avais pas encore reçu notification de ta réponse de 15:58 lorsque j'ai publié celle de 16:35 !

À ma question : "Serait-il possible que cette mise à jour se soit finalement bien déroulée ? Et que ce soit le module Course Presentation en version 1.21 qui déconne ? ", tu as en réalité apporté une réponse qui va dans le même sens dans le message qui ici précède : "mes contenus ne sont pas impactés, ce sont bien les librairies qui ne vont pas !".

Ce sont "ces fameuses librairies du MoodleData" dont nous parlons à présent clin d’œil
Elles sont mises à jour lorsque tu cliques sur "Update" dans le hub H5P (que tu vois en cherchant à créer une activité H5P dans un parcours). Par contre, certaines de ces mises à jour sont inaccessibles si tu ne mets pas d'abord à jour le plugin H5P.

En résumé :
1. On met à jour le plugin H5P en modifiant le contenu du dossier /mod/hvp ;
2. On met à jour Moodle (pour que ce changement soit pris en compte en mettant à jour la BDD) ;
3.a. On va dans un parcours, on crée une activité H5P et - dans le hub (là où on choisit un type de contenu) - on "Update" tous les types de contenu qui le nécessite ;
3.b. Variante, on utilise mon script : https://github.com/rizys/h5p-tricks ;
4. Si on veut - mais c'est dangereux comme ta situation le démontre - on va à la page admin des "Bibliothèques H5P" et on clique sur toutes les flèches vertes pour veiller à ce que toutes les activités utilisent la dernière version de chaque module/librairie/bibliothèque.

Il faut maintenant que je réponde aux choix que tu proposais...
- La seconde proposition est tentante mais tu n'as aucune chance selon moi car il n'y a pas que les bibliothèques qui sont dans "moodledata" pour ce plugin, il doit y avoir aussi les images et autre médias ou documents importés dans les activités H5P ?! Enfin je crois mais je commence à fatiguer clin d’œil
- La première proposition me semble envisageable en procédant ainsi (d'abord sur une copie des données de production évidemment) :

1. Vérifier que tout est à jour en suivant le protocole ci-dessus (en résumé de 1 à 4) ;
2. Dans le config.php, ajouter la ligne "$CFG->mod_hvp_backup_libraries = 0;" (cette option permet de ne pas sauvegarder les librairies H5P dans les fichiers MBZ et d'éviter ainsi que trimballer notre problème) ;
3. Tu sauvegardes tous les parcours contenant une activité H5P (en espérant que ça marche aussi pour les parcours en erreur) ;
4. Tu désinstalles le plugin H5P et tu vérifies que ses tables ne sont plus dans la BDD ;
5. Tu réinstalles le plugin, tu cliques dans le hub sur tous les types de contenu H5P pour les télécharger (ou mon script) ;
6. Tu restaures les parcours.

Ça risque d'être long, j'en ai bien conscience...

Sinon on peut continuer à chercher dans d'autres directions comme celle que tu as proposée ici : "Mais sur ce point, il y a pas mal de bibliothèques rattachées : c'en est peut-être une autre qui déconne (Image par exemple)." ?!

Bonne soirée,
Rémi
Moyenne des évaluations Utile (2)
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Christine TUFFENIS-LACROIX,
Bonjour Olivier,
Je suis toujours en train de revoir mes capacités de rôles (cf. nos précédents échanges) et comme,, j'ai évidemment aussi un problème avec mes présentations cours H5P (seule la description s'ouvre), j'avais vu passer ton message. Je viens de tomber sur cette page de doc sur les conséquences de la dernière mise à jour Moodle3.8. Mais je suppose que tu en avais connaissance...

Je n'ai pas encore vérifié si mon problème d'affichage était lié à ça.
Christine
En réponse à Christine TUFFENIS-LACROIX

Re: [H5P] Plantage librairies

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour Christine,
merci pour l'information ! Mais dans mon cas, je ne suis pas concerné, car je tourne sous Moodle 3.5.8+. Donc actuellement, j'ai directement le plugin H5P qui gère l'ensemble des contenus et librairies. Le problème semble, pour moi, vraiment venir d'une mise à jour de bibliothèque qui s'est mal déroulée.
Pour ton problème, n'hésite pas à ouvrir un sujet différent, cela sera plus visible !
Olivier
En réponse à Olivier Valentin

Re: [H5P] Plantage librairies

par Christine TUFFENIS-LACROIX,

Bonsoir Olivier,

Je ne saurais pas t'expliquer ce que j'ai fait mais mes présentations H5P s'affichent parfaitement maintenant ! 💪

Bon courage à toi !

Christine