Index de cours ne se charge pas

Index de cours ne se charge pas

par Olivier Valentin,
Nombre de réponses : 9
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Bonjour tout le monde !

A la suite de bidouilles sur un Moodle de test (heureusement !), je rencontre un souci pour lequel je cherche des pistes.

Contexte
Je cherche à me séparer du format de cours Vue image (Grid) sur mon Moodle 4.1.3+ en prod avec un thème enfant basé sur Boost, que je souhaite remplacer par le format Tiles. Seulement, beaucoup de personnes utilisent le format Grid, qui est là depuis un sacré moment.
Le format Tuiles est intéressant, car si un enseignant souhaite passer de Grid à Tiles, le code de Tiles prévoit une fonction de récupération des images ! Il se charge d'aller vérifier si des images avaient été uploadées avec Grid pour les sections, les récupèrent et les enregistrent avec les paramètres propres au format Tiles.

Ma première idée était de juste faire une requête SQL sur la table des cours, pour passer la valeur du champ "format" de "grid" à "tiles". Impossible : ça ne fonctionne que si on le fait dans les paramètres du cours, sinon la fonction n'est pas appelée ! 
J'ai alors changé de façon : j'ai récupéré le code de la fonction Tiles, mis une requête pour récupérer tous les cours en format Grid, appliqué la fonction à chaque cours, et rajouté une simple requête à la fin pour modifier la valeur de la table course et lancer ce code.

Ca a marché !
Sauf que...

Problème
A présent, les cours qui étaient créés AVANT le lancement de ce code ont tous le même souci : l'index ne se charge pas, de même que la navigation principale (dans la barre supérieure de Boost) et la navigation du cours (cours, participants, notes...).

En plus de cela, il y a des choses que je n'explique pas :
  • la navigation a bien disparue, mais pourtant, les éléments de navigation sont en place ! En survolant aux bons endroits, je vois qu'il y a des liens, qui renvoient bien aux bons endroits ;
  • l'index ne se génère pas, et pourtant toutes les sections apparaissent, ainsi que les activités et ressources. Et je peux tout à fait cliquer dessus ;
  • si je me loggue en tant qu'étudiant, tout fonctionne !! Ce n'est qu'avec un rôle au minimum Enseignant que le problème se déclare !
  • si je crée un nouveau cours, tout fonctionne correctement. Seuls les cours déjà créés auparavant (même sous un format Thématique ou Hebdomadaire) sont impactés.
J'ai l'impression que quelque chose n'arrive pas à se charger, peut-être au niveau de l'index, et que cela empêche de le générer correctement, ce qui bloque la navigation... mais uniquement pour un rôle capable de modifier.

La console de navigateur n 'affiche rien de spécial.
Si je change de template, c'est aléatoire... Classic affiche tout, Boost ne fonctionne pas tout comme Adaptable.
Dans la base de données, j'ai regardé du coté des tables de cours, des sections, des paramètres de section... je n'ai pas l'impression de rater quelque chose.

Ce que je cherche
J'ai bien conscience de cet exposé assez technique, et qu'il est clair que tout cela résulte bien de ma bidouille, et non d'un bug de Moodle.

Ce que je cherche surtout à savoir, c'est si quelqu'un a déjà rencontré un problème similaire pour trouver une autre piste de recherche. Si quelqu'un en sait plus sur comment se génère l'index et/ou la navigation, pour comprendre pourquoi elle ne s'affiche pas alors que tout fonctionne chez un rôle Etudiant.

A nouveau, je rencontre ce problème sur une plateforme de test, ce qui n'a donc aucune grande importance. Mais si je veux déployer cela en prod, vaudrait mieux que ça fonctionne un peu mieux !!

Merci d'avance pour vos idées !

Olivier

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

Re: Index de cours ne se charge pas

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

Question bête, et je suppose que c'est fait vu tout ce que tu as essayé : tu as bien vidé tous les caches ?

Et peut-être essayé de lancer en ligne de commande les différents scripts de vérification situés dans admin/cli ?

Sinon, je n'ai pas vraiment d'autre idée, désolé.

Séverin
En réponse à Séverin Terrier

Re: Index de cours ne se charge pas

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

je savais que je pouvais compter sur tes connaissances ! :D
J'ai bien tenté en effet de vider les caches, rien à signaler. Je ne l'ai pas prisé, mais le mode debug n'a rien donné non plus.

Par contre, qu'est-ce que c'est, ces scripts de vérification dont tu parles ? On touche à une partie de Moodle que je connais très mal voire pas du tout....

Olivier
En réponse à Olivier Valentin

Re: Index de cours ne se charge pas

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

Tu auras plus de détails sur la documentation sur l'administration en ligne de commande sourire

Séverin
Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: Index de cours ne se charge pas

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Merci Séverin !
Bon, après plusieurs essais sur les différents fichiers CLI, rien de probant. Le plus intéressant aurait été le fix_course_sequence, mais il n'a rien trouvé à réparer.
Cela aurait été étonnant, puisque connecté en tant qu'étudiant, toutes les navigations s'affichent bien !
Il doit y avoir quelque chose lorsqu'on a la capacité de modifier un cours qui bloque... mais quoi ?? Je sens que ce problème va rester dans mon carton des "pas résolu et c'est bien dommage"... triste
Olivier
En réponse à Olivier Valentin

Re: Index de cours ne se charge pas

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
OK. Stop.
Le problème semble du à un plugin défectueux... Très bizarre d'autant plus qu'avant, tout fonctionnait à la perfection !

Mon plugin Course Manager injecte du JS pour faire apparaitre les rapports dans le cours. Dans mon travail de normalisation du code, il semble que les sauts de ligne à certains endroits posent des soucis, ce qui n'était pas le cas avant.
En gros, le code que j'injecte pour les rapports étaient très longs, et je faisais des sauts de lignes pour que ce soit plus lisibles. Cela a passé la vérification au Code Checker, mais étrangement, cela poste à présent des soucis car le JS ne semble pas apprécier les sauts de ligne.

Ce qui signifie donc que ma bidouille fonctionne parfaitement, le souci était ailleurs. sourire

Je ferme le problème, c'est résolu !
Olivier
Moyenne des évaluations Utile (1)
En réponse à Olivier Valentin

Re: Index de cours ne se charge pas

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
A toute fin utile, pour celles et ceux qui voudraient tester : ci-joint le fichier qui effectue la conversion du format Vue image vers le format Tiles.
Je l'ai initialement hébergé à la racine de Moodle dans un sous-dossier quelconque, et j'ai juste tapé l'adresse pour y accéder (en l'occurence pour moi, https://localhost/grid2tiles/convert.php).

Mon idée maintenant est, en temps utile, de lancer cette conversion puis de désinstaller définitivement le format Vue Image, dont le suivi de mise à jour mais aussi certains aspects d'accessibilité semblent problématiques.

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

Re: Index de cours ne se charge pas

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Le nouvel Index est très « sensible » au JavaScript (JS) qui sont présents dans d'autres plugins. Tu aurais peut-être pu avoir un indice en cherchant dans la console de ton navigateur ?

Patrick
Moyenne des évaluations Utile (1)
En réponse à Patrick Lemaire

Re: Index de cours ne se charge pas

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles
Patrick > c'est en effet dans la console que j'ai enfin eu un indice après une étude plus attentive ! J'avais une erreur concernant la ligne et une histoire de sauts de ligne, ce qui m'a permis de mieux comprendre. Mais Firefox et Chrome ne réagissent pas de la même façon, et c'est en changeant de navigateur que j'ai enfin eu l'indice...
Je fais un fil à part pour le partage concernant ma bidouille.
Olivier