Impossible de supprimer un cours avec 9192 sections !

Impossible de supprimer un cours avec 9192 sections !

par guillaume crepin,
Nombre de réponses : 14

Bonjour à tous,

Je fais appel à vous car je tombe de ma chaise en découvrant un des cours de la plateforme avec 9192 sections !!!

Un petit historique : je viens de passer en 3.9.2+ et quelques plugins dont le format de cours "Tiles" génial mais qui doit avoir corrompu les cours utilisant ce format dès lors que l'enseignant cherche à modifier ou ajouter des tuiles !

A l'aide de "sharing cart" j'ai copié les sections utiles dans un nouveau cours pour le collègue non sans mal car la plateforme est très fortement ralentie avec un cours avec plus de 9000 sections mais dorénavant je ne peux pas supprimer le cours même en admin.


J'ai plusieurs cours qui ont 2366 ou 5234 tuiles... Je commence à me tirer les cheveux avec les collègues ayant ce problème en espérant rapidement un patch du plugin tuile.


Comment supprimer en masse ces sections surnuméraire ? 

et à défaut 

Comment forcer la suppression de ces cours en ligne de commande ?

Merci grandement pour vos réponses

Bien à vous

Moyenne des évaluations  -
En réponse à guillaume crepin

Re: Impossible de supprimer un cours avec 9192 sections !

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles

Bonjour Guillaume,

J'utilise aussi le format de cours Tuiles et j'ai aussi déjà constaté une numérotation "originale" des sections.

Je n'ai jamais eu à supprimer un tel cours mais je propose deux idées sans les avoir essayées:

- est-ce qu'en passant provisoirement le cours dans un autre format cela ne permettrait-il pas de supprimer les sections incriminées?

- la limite de 53 sections ne viendrait-elle pas du paramètre dans Administration du site>Cours>Réglage par défaut des cours>Nombre maximum de sections? Dans ce cas, peut-être passer ce nombre à 9200 si Moodle l'accepte et supprimer les cours qui posent problème avant de remettre le paramètre par défaut.

En réponse à Jean-Gabriel DEPINOY

Re: Impossible de supprimer un cours avec 9192 sections !

par guillaume crepin,
Merci pour la réponse je n'avais pas pensé augmenter le nombre de sections car dans mon souvenir elles étaient limitées à 52 pour les semaines du format hebdo. Bref j'ai augmenté le nombre de sections à 10000 et j'ai lancé la suppression qui a résulté sur une erreur Internal server Error mais le cours incriminé n'apparaît plus. J'espère que la BDD est propre !
Encore merci
En réponse à guillaume crepin

Re: Impossible de supprimer un cours avec 9192 sections !

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles

Bonjour Guillaume,

Pour nettoyer ta base de données, n'hésites pas de temps en temps à aller dans Administration du site > Développement > Editeur XMLDB > [Vérifier les clés étrangères]

Moodle va te donner les requêtes à lancer pour lister toutes sortes de données "égarées". Souvent , quand Moodle supprime des données de la BDD, il oublie de supprimer les données de certaines tables qui se retrouvent donc inutiles. Tu peux supprimer ces données sans problème.

Je ne dis pas que cette manip va forcément supprimer toutes les données inutiles de tes cours supprimés, mais ça vaut le coup de tenter.

En réponse à Jean-Gabriel DEPINOY

Re: Impossible de supprimer un cours avec 9192 sections !

par guillaume crepin,
Bonjour Jean-Gabriel,
Je n'avais jamais mis le nez dans cet éditeur XMLDB, c'est du jouflu !
J'ai actuellement 10 violations et j'avoue ne pas comprendre ce qu'il faut que je fasse avec tout cela !
Faut-il simplement que je lance la requete sql proposée en mode console ?


Merci pour cette astuce.
J'ai vu que nous n'étions pas trop loin l'un de l'autre, je suis à Tourcoing au lycée Colbert !
En réponse à guillaume crepin

Re: Impossible de supprimer un cours avec 9192 sections !

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles

Bonjour Guillaume, effectivement, nous sommes à quelques kilomètres l'un de l'autre.

Malheureusement, les requêtes ne peuvent pas être lancées directement.

Tu vas dans ta base de données avec PhpMyAdmin.

Pour la première requête, c'est très simple. Tu as "105 violations sur un total de 105 rangées" autrement dit, tu peux supprimer les 105 enregistrements de cette table. Mais cette table ne s'appelle pas réellement tool_dataprivacy_request. Généralement, elle s'appelle mdl_tool_dataprivacy_request (le suffixe (généralement mdl_) est indiqué dans ton fichier config de Moodle.

Vérifie quand même que tu n'as que 105 lignes dans ta table avant de les supprimer mais normalement c'est le cas.

Pour les 3 autres requêtes, c'est un peu plus long. Tu dois reprendre la syntaxe proposée mais utiliser delete au lieu de select.

La syntaxe devient la suivante:

DELETE * FROM mdl_grade_grades LEFT JOIN mdl_user ON mdl_grade_grades.usermodified=mdl_user.id WHERE mdl_grade_grades.usermodified IS NOT NULL AND mdl_user.id IS NULL;

DELETE * FROM mdl_grade_items_history LEFT JOIN mdl_course ON mdl_grade_items_history.courseid=mdl_course.id WHERE mdl_grade_items_history.courseid IS NOT NULL AND mdl_course.id IS NULL;

DELETE * FROM mdl_grade_items_history LEFT JOIN mdl_grade_categories ON mdl_grade_items_history.categoryid=mdl_grade_categories.id WHERE mdl_grade_items_history.categoryid IS NOT NULL AND mdl_grade_categories.id IS NULL

Si le préfixe de tes tables n'est mas mdl_, tu n'as qu'à adapter les requêtes.

Apparemment, ces requêtes ne font pas appel à tes cours au format Tiles. Mais c'est toujours bien de faire un peu de nettoyage...

En réponse à Jean-Gabriel DEPINOY

Re: Impossible de supprimer un cours avec 9192 sections !

par guillaume crepin,
Merci jean-gabriel

Sacré boulot en perspective... je regarde ça de plus près dès que j'ai un peu de temps si ce n'est pas bloquant pour la plateforme.
Pourquoi Moodle ne met pas en place un système cron pour nettoyer ces tables ?

Bonnes vacances
En réponse à guillaume crepin

Re: Impossible de supprimer un cours avec 9192 sections !

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

J'arrive un peu tard dans la discussion, mais comme le message parlait d'impossibilité de sauvegarder ou restaurer, alors que tu cherches à supprimer, je t'aurais suggéré de désactiver les corbeilles (de cours et catégorie) avant de tenter la suppression. Mais peut-être n'était-ce pas la bonne solution...

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

Re: Impossible de supprimer un cours avec 9192 sections !

par guillaume crepin,
Bonjour séverin,

Merci pour le conseil je n'avais pas pensé que la corbeille pouvait aussi interférer avec la suppression. J'ai voulu supprimer le cours en ne récupérant que les 15 sections valides utiles avec sharing cart car impossible de sauvegarder uniquement les 15 premières sections sachant qu'il fallait décocher plus de 9000 autres et que je n'ai pas sur ce cours la possibilité de tout décocher par défaut, ce que je ne comprends pas puisque dans les autres qui n'ont pas ce bug de sections j'ai cette possibilité !
J'espère juste que c'est un bug lié au plugin tiles et qu'il sera rapidement corrigé car de plus en plus de collègues m'interpellent !!

Guillaume
En réponse à guillaume crepin

Re: Impossible de supprimer un cours avec 9192 sections !

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

Bonjour Guillaume,

N'hésites pas à remonter le problème constaté au développeur du plugin, avec un maximum de renseignements précis permettant de répliquer le problème.

Cela pourra ainsi l'aider à comprendre l'origine, et trouver une solution.

Séverin

En réponse à guillaume crepin

Re: Impossible de supprimer un cours avec 9192 sections !

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles
Je viens de vérifier ma version du plugin Tuiles. J'ai une version de 2019. Or, quand je cherche avec ma plateforme Moodle les plugins à mettre à jour, le plugin Tuiles ne m'est pas proposé alors qu'il existe une version du 4 octobre 2020. Or, il est indiqué sur la page du plugin Tuiles que si on a une version Moodle 3.9, il faut ABSOLUMENT installer la dernière version du plugin au risque d'avoir des problèmes de fonctionnement du plugin.
Je viens donc de télécharger le plugin en fichier Zip et je l'ai installé sur ma plateforme. Je n'ai pas encore pu essayer si cette nouvelle version résolvait le problème.
Je te conseille de faire pareil et de regarder si ça résout ton problème.
En réponse à Jean-Gabriel DEPINOY

Re: Impossible de supprimer un cours avec 9192 sections !

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

Concernant le format de cours Tuile, il existe effectivement des versions différentes, dont une prévue pour Moodle 3.8 et 3.9.

Celle-ci n'est pas (encore) proposée automatiquement en téléchargement car elle est en version RC et que ton Moodle ne doit être paramétré pour te prévenir que pour les versions stables, dans "Administration > Serveur > Notifications de mises à jour", paramètre "Maturité de code requise" (updateminmaturity).

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

Re: Impossible de supprimer un cours avec 9192 sections !

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles

Bonjour Séverin,

Effectivement, je n'avais pas fait attention.

Toujours est-il que ça peut peut-être résoudre le problème... À suivre.

En réponse à Jean-Gabriel DEPINOY

Re: Impossible de supprimer un cours avec 9192 sections !

par guillaume crepin,

Bonjour, 

J'ai mis à jour "tiles" en version RC dès que mon problème est apparu, il y avait une alerte de programmeur qui disait qu'il allait publier une version stable au 16 octobre mais toujours pas d'alerte dans Moodle pour mise à jour.

Toujours est il que j'ai modifié les format de cours pour ne plus utiliser "tuiles" et que je n'ose pas remettre celui-ci !!

Il faut que je me penche de plus près sur le nettoyage des tables mais je n'utilise pas phpmyadmin et je fais tout en ligne de commande ce qui est plus long mais ce sont les vacances sourire

Merci pour votre aide

En réponse à guillaume crepin

Re: Impossible de supprimer un cours avec 9192 sections !

par Luiggi Sansonetti,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Titulaires du Moodle Course Creator Certificate Avatar Traducteurs
Bonjour

La verson 3.9.0.6 (2020080606) semble bonne pour ma part (Moodle 3.9.2)