Pb trivial : déplacer une ressource d'un cours à un autre

Pb trivial : déplacer une ressource d'un cours à un autre

par Valery Fremaux,
Nombre de réponses : 13

Ca semble très couillon, mais je ne vois pas le moyen pour déplacer un article HTML d'un cours à un autre que de recopier le texte et déplacer les images (recomposer le document à l'identique dans un autre cours).

Trouver une solution rapide à ça intéresserait-il quelqu'un ? ou ai-je loupé une façon de faire ?

Moyenne des évaluations  -
En réponse à Valery Fremaux

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Moodle, comme beaucoup de plateforme, est orienté cours, ce qui signifie que l'enseignant peut tout faire dans son cours.

Par contre, le déplacement d'éléments d'un cours à un autre n'est pas vraiment prévu...

Il serait également intéressant à mon sens de pouvoir supprimer un thème de cours, avec tous les éléments (ressources et activités) contenus, en un seul clic (+ confirmation).
En réponse à Séverin Terrier

Re: Pb trivial : déplacer une ressource d'un cours à un autre

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

Cette question revient souvent dans les forums du Moodle international/anglais. Ce qui à mon avis fait cruellement défaut à Moodle c'est la reconnaissance d'un niveau hiérarchique Enseignant (à côté du niveau de "catégories" de cours). En effet, en tant qu'enseignant de plusieurs cours sur la plateforme moodle, il m'est impossible de partager des ressources entre mes propres cours (glossaire, questions de tests, fichiers HML, images, etc.). Je dois à chaque fois tout recréer, comme l'indique Valery, ce qui m'amène à avoir présents sur le serveur de l'université pas mal de fichiers en double. La question revient souvent, mais aucune réponse satisfaisante n'a jamais été donnée et j'en suis arrivé à la conclusion que l'architecture actuelle de Moodle ne permet pas de répondre... ou bien que le nombre d'utilisateurs concernés par ce défaut n'est pas encore suffisant pour que le problème devienne une priorité.

La fonctionnalité évoquée par Séverin (supression d'un seul clic de tout le contenu d'un thème (que je préfère appeler "section" de cours) serait également fort utile, par exemple en ce début d'année. Je ne compte plus le nombre de clics que j'ai dû effectuer pour supprimer une à une des ressources de sections de cours, faut de pouvoir le faire d'un seul clic. C'est à se demander si moodle est réellement utilisé dans de vraies situations de cours, parfois, tellement certaines fonctionnalités de bases manquent encore, au bout de plusieurs années de développement et de nouvelles versions qui se succèdent à un rhythme soutenu sans apporter ce type de réponse.

Joseph

En réponse à Joseph Rézeau

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par André GUYOMAR,

Bonjour,

Tout à fait d'accord avec Joseph sur le fait qu'il est vraiment dommage qu'il n'existe pas de possibilité de partager un/des dossiers entre plusieurs  cours. Lors de nos premiers tests Moodle, en 2004, je pensais (naïvement) que les dossiers référencés dans le lien " Fichier du site" (Page de connexion en administrateur) pouvaient être atteints de tous les cours. Ce n'est pas le cas...Dommage, ça m'aurait rendu service. Nous avons donc installé l'extension "Dossiers Partagés" développée par Toulouse (cette option ne fonctionne pas sur des serveurs Windows) . Ce partage de dossiers entre les différents cours a permis la création d'un "centre de ressources", espace Moodle ou tous les polys, documents de cours (TP,TD,BE, annales d'examens ou de contrôles continus) sont accessibles par l'ensemble des élèves (quelquesoient leurs niveaux, options ou filières) et enseignants de l'école. Les documents à publier dans plusieurs cours sont déposés, par l'enseignant, dans un dossier spécifique du cours. Ce dossier est créé et paramétré par l'administrateur de la pf. C'est un espace utile pour la recherche d'infos complémentaires pour les élèves et les stats de fréquentations sont impressionnantes: c'est, de loin, l'espace le plus fréquenté mais le partage/paramétrage des dossiers n'est pas très aisé à mettre en oeuvre. Ceci pour dire qu'une option de partage de dossiers (directement accessible de l'administration du cours) entre plusieurs cours serait la bienvenue...Et, bien sûr, l'option de réinitialisation globale d'un thème/section (économisons les clics sourire).

Bonne fin de journée

André

En réponse à Joseph Rézeau

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Étienne Rozé,
Bonsoir !

J'avais fait, il y a un certain temps, un petit développement expérimental qui revenait à ajouter un nouveau type de ressource intitulé "lien". Cela permet d'utiliser la même ressource dans plusieurs cours ( comme, en gros, un lien sous unix ). Malheureusement cela ne pouvait fonctionner pour les ressources "fichier" ou "Dossier", uniquement pour les textes html, txt, lien web. Ou alors il aurait fallu modifier le coeur de Moodle.
Ce petit truc est passé inapercu (disons que j'ai rien fait pour le promouvoir plus que cela et aussi pour rétablir la vraie vérité qu'il y a eu une petite poussée de développement dans laquelle Valery n'était pas étranger : j'ai même pas fait de fiche dans Bdd) alors que le concept me semble, modestement, génial (langue tirée) Mais qui l'utilise ? ( même pas moi !!! )

Je pense qu'il faudrait considérer le système global des ressources de Moodle comme un système de fichiers unix; Pour faire vite : Une arborescence, des éléments de différents types, des liens symboliques et évidemment un système de droit sur les éléments( ce qui n'est pas le plus simple...). Mais je pense ( sans avoir approfondis plus que cela le problème) que l'on en est pas très loin....et qu'il ne faudrait pas bouleverser grand chose pour le faire ( je parle des habitudes des utilisateurs mais aussi du noyaux Moodle)

Ca serait chouette !cool


En réponse à Étienne Rozé

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Valery Fremaux,

Tu es trop modeste, je l'utilise ton lien, même que dans mon souvenir j'avais étendu son principe à toutes les ressources... (le hack du hack grand sourire d'Etienne doit trainer dans un fil de discussion)...

Mais ne nous emballons pas. Pour le partage de fichiers, l'initiative de Toulouse est chouette, mais malheureusement pas universalisable, trop dépendant de Linux et donc pas "institutionnalisable" auprès de Moodle. Implémenter une forme de partage ou de "montage" de volume des fichiers du site dans tous les répertoires de cours devrait être possible dans le code même de Moodle, mai sous sommes d'accord qu'il y a probablement une intervention sur le noyau.

L'idée de la recopie ou du déplacement d'une seule ressource vers un autre cours, une réaffectation en somme , est quelque chose de plus "léger" à mettre en oeuvre :

  • réindexation des enregistrements dans la base (un peu de merdier j'en conviens) :
    • translation de l'enregistrement de course module, réassignation d'une position de section "acceptable", l'id de l'enregistrement principal de l'instance de module ne doit pas changer, en principe.
  • déplacement des répertoires attachés à l'instance d'activité dépacée (moodledata/<oldcourseid>/moddata/<modid>/...) vers (moodledata/<newcourseid>/moddata/<translatedmodid>/...)
  • réindexation des logs (on sait faire à partir de restore.php)
  • trouver un endroit où implanter le départ de cet outil
  • trouver la liste des cours cibles (forcément les cours où je suis enseignant éditeur, à moins que je ne sois admin...)
  • trouver les capacités qui empêchent cette copie

Dites moi si j'oublie quelque chose... ?

En réponse à Valery Fremaux

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Étienne Rozé,
Dans mon souvenir aussi tu avais étendu les fonctionnalités mais je crois que tu avais été obligé de toucher au coeur de Moodle... Quoiqu'il en soit je ne retrouve pas cette contribution de ta part.
Et le module que j'ai trouvé pour 1.7 ne fonctionne pas en 1.8... triste Je vais tâcher de regarder ce qui ne va pas et quand les choses seront OK, je ferrais une fiche.

En réponse à Étienne Rozé

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Valery Fremaux,

Exact, car le lien suppose un petit transcodage à la volée des "id" de modules dans le code de chaque module de Moodle.

Sinon, à part ça : you wanted it, you get it !! Telle commence à être ma devise sur Moodle !!

Bonne nouvelle pour ceux qui souhaitent pouvoir déplacer n'importe quelle activité d'un cours à un autre : c'est dans le tuyau et en (très) bonne voie.

Par contre, celà modifie les fichiers de l'ensemble "course". La modif prévoit :

  • gérer deux capacités nouvelles course:exportmodule et course:importmodule. Pour pouvoir déplacer une activité, il faut avoir les deux capacités (exportmodule pour le cours de départ, et importmodule pour le cours d'arrivée. (si ça choque quelqu'un je change, ya pas problem !!)
  • Evidemment, lorsqu'on déplace une activité, on ne peut la déplacer QUE dans des cours où on a une fonction d'éditeur (compatible 1.8).
  • le déplacement se fait au niveau du module de cours, l'activité reste intacte. C'est son enregistrement en tant que module qui change.
  • les ressources physiques liées à cette activité se déplacent. Attention : il s'agit des ressources et fichiers "dûment" stockées dans le répertoire <moodledata>/<courseid>/moddata/<modulename>/<modinstance> comme tout module "normé" Moodle devrait utiliser.
  • Pour les ressources contenant du texte rédigé (HTML, texte, wiki), reste le problème des liens sur des ressources intégrées ou images insérées. A priori, les images stockées dans un répertoire "images" ne se déplacent pas, sauf si vous avez pris le soin de les mettre dans un répertoire qui répond à la "norme" ci-dessus. Mais je ne prévois pas encore le recodage des URL à l'intérieur du rédactionnel. (problème à régler, probablement).
  • Si il existe des modules exotiques, je prévois la détection d'une fonction (c'est très Moodle, ça clin d’oeil)  de "callback" dans le module (on augmente donc l'API standard d'un module d'une fonction <modulename>_change_course($modid, $destcourseid). Cette fonction ne prend le dessus sur le transport "standard" des ressources physiques éventuelles QUE si elle existe. Elle doit se débrouiller à tranporter et modifier tout ce qui est nécessaire à la place de l'opération "standard".
  • Au moment du choix du cours destinataire, on peut choisir d'être redirigé vers le nouveau cours.
  • Les activités sont ajoutées au bloc d'en-tête du nouveau cours. Il doit être possible de donner le choix de les y coller à la fin.
  • Cette modif n'est probablement pas extensible pour envisager simplement une "copie" complète d'une ressource (clonage), mais d'ici que je puisse mobiliser une petite équipe d'étudiants... 

Discussion : les activités déplacées doivent elles être visibles ou non ?

Profitez-en que je sois sur ce problème pour toute suggestion.

Tant que j'y suis, comme je suis une buse en graphisme et icones et companie, si quelqu'un a de l'inspiration pour une icone "changer l'activité de cours"... j'achète. 

En réponse à Valery Fremaux

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Marie David,

Bonjour,

Réponses à ta question:

- Du point de vue logique Moodle, je dirais qu'il faut garder le même principe qu'avec la fonctionnalité d'importation qui restitue l'activité ou la ressource dans son état initial (visible ou non visible).

- Du point de vue pratique, je dirais qu'il faut poser la question à l'utilisateur grand sourire Histoire de satisfaire ceux qui ont des étudiants déjà inscris à l'espace de cours de destination et pour lequel il souhaite retoucher à l'activité avant publication...

Par contre, je ne comprends pas pourquoi une icône "changer l'activité de cours" pour cette fonctionnalité. C'est une fonction pour dupliquer ou exporter, non?

Autre question, cette fonctionnalité ne permettra que de dupliquer l'activité à l'instant t?

Peut-on envisager une option de synchronisation entre des activités de cours différent originaire d'une seule et même activité?

Exemples :

- J'ai un glossaire que je duplique dans un espace de cours destiné à des étudiants d'un niveau différent. Lorsqu'il y a de nouveau article dans l'un puis-je avoir une descente des articles dans l'autre (sans utiliser le glossaire global)?

- J'ai une base de donnée qui liste des contacts pour les recherches de stages. Je souhaite centraliser toutes les fiches des différentes bases par département afin mutualiser tous les contacts pour l'établissement.

A bientôt

Marie





En réponse à Marie David

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Valery Fremaux,

Merci Marie pour tes réflexions.

Sur la visibilité : Je pense que la logique Moodle doit l'emporter "par défaut". Mais comme nous passons par un formulaire de confirmation, rien ne m'empêche de donner le choix.

La commande en question déplace l'activité, elle ne la recopie pas (ce qui est un autre problème, celui du clonage). Le but est de pouvoir ranger des ressources, articles ou autres activités et les rerépartir dans des cours différents.

La synchronisation que tu demandes est déjà possible avec l'astuce du Lien d'Etienne. Je vais repasser un peu de temps pour republier proprement une solution générale pour cette ressource "lien" qui permet de produire un "raccourci" vers une activité quelconque à partir d'un cours quelconque (pourvu que les capacités de le faire soient acquises). Avec cette solution les ressources et activités sont réellement partagées entre plusieurs cours, mais seule la première inscription crée la vraie ressource. 

Merci encore de réfléchir avec moi.

En réponse à Joseph Rézeau

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par BONNET Jean-François,
Bonjour,

je ne crois pas complètement répondre à la question, mais pour ne pas avoir des ressources en double, pasqu'elles sont utilisées dans plusieurs cours, nous avons ouvert un métacours "Ressources communes". Tous les utilisateurs des cours concernés sont descendus dans ce métacours. On pointe ensuite, dans les cours, vers les "Ressources communes".

@+

JF Bonnet


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

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Éric Bugnet,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Traducteurs
Perso... je cache la section, et je supprime à temps perdu...
Moyenne des évaluations Utile (1)
En réponse à Valery Fremaux

Re: Pb trivial : déplacer une ressource d'un cours à un autre

par Valery Fremaux,

Nouvelles du développement :

Lepatch de course est quasiment terminé : il touche deux fichiers course/mod.php, course/lib.php et ajoute un formulaire course/form_change_course.html

Le formulaire existe en deux versions, suivant que ajax est activé ou non :

Sans ajax :

permet de déplacer toute ressource vers un autre cours, au tout début de celui-ci ou comme dernière ressource indexée dans la dernière section.

Avec ajax :

permet de déplacer toute ressource vers n'importe quelle section d'un autre cours, en plaçant cette ressource en queue de section.

Le déplacement fonctionne au jour d'aujourd'hui parfaitement bien sur une étiquette.

Ce W.E. : tests sur les autres activités (avec modèle de données simple/complexe, avec/sans fichiers attachés).

Etude à terminer pour l'upgrade et le déploiement sur une 1.8. Ne touche pas aux tables.