Devrois en groupe : patch complet du module assignement

Devrois en groupe : patch complet du module assignement

par Valery Fremaux,
Nombre de réponses : 15

Voilà,

une version assez développée est disponible qui traite les trois types de devoirs principaux : off line, on line et upload multiple.

Je ne surchargerai également le upload simple, car il peut être intéressant de mettre un port de dépot de devoir dans lequel un quelconque du groupe peut déposer (celui qui l'a fait, ou qui a finalisé le devoir).

Le patch :

  • surcharge assignment/lib.php pour prendre en compte des déroutements de traitement des fichiers du module assignment
  • ajoute assignment/libgrouped.php qui contient les versions "groupe" des fonctions principales du module et une classe assignment_grouped qui vient s'intercaler entre les classes assignment_offlinegrouped, assignment_onlinegrouped et assignment_uploadgrouped et la classe de base assignment_base.
  • ajoute un champ locked à la table assignment_submissions pour verrouiller l'éditeur sur le devoir online, en cas d'accès conflictuel à l'édition. => retouche de restorelib, backuplib, db/install.xml, db/upgrade.php et version.php
  • ajoute trois types "surcharges" pour les trois devoirs initiaux.
Moyenne des évaluations  -
En réponse à Valery Fremaux

Re: Devrois en groupe : patch complet du module assignement

par Nicolas Sicard,
Hello,

Premier test du patch :

-1/ Installation sur une version test de Moodle en 1.9beta2+ : pas de problème, mais pas rassuré de changer tous ces fichiers...

0/ Création de deux groupes de deux étudiants chacun. Un étudiant test en plus est inscrit au cours mais à aucun groupe. Le prof dans l'espace est aussi admin du site. Création de deux activités : online et upload. Paramètres par défaut (groupe = aucun).

1/ Edition en ligne et remise de documents par les 3 étudiants (2 pour un groupe et 1 pour l'autre groupe).
OK, RAS

2/ Accès aux remises et notation par le prof (qui est aussi admin du site test)

* document "online" : clic sur le lien du document rédigé par le groupe : nouvelle fenêtre avec erreur "A required parameter (groupid) was missing". Mais en cliquant sur "Note", j'obtiens bien un éditeur avec le texte rédigé par les étudiants (modifiable car en mode commentaires "on").

* document "uploadé" : RAS

3/ Consultation des notes/commentaires par les étudiants : RAS, j'ai même pu synchroniser avec le "gradebook" de la version 1.9.

4/ Changement du paramètre "groupe" pour l'activité "online" en mode "groupes séparés". Là, l'affichage est pas joli : le menu situé à gauche fait déborder le tout à droite (à cause du thème de largeur fixe). Voir image jointe. Tous les groupes sont encore visibles, mais seul celui sélectionné dans le menu contient la liste des nom des étudiants qui en font partie. C'est étrange.

5/ Je me demandais ce qu'il advient des étudiants qui n'appartiennent à aucun groupe. Là, ce n'est pas cohérent : mon étudiant test peut uploader un fichier (pas logique de mon point de vue) mais ne peux pas rédiger un document en ligne (me paraît plus logique, le message d'erreur est clair de ce point de vue). Du côté du prof correcteur, impossible d'accéder au fichier uploadé par l'étudiant test (logique puisque ce dernier n'aurait pas dû être en mesure de l'uploader).

Question : quel est le sens des modes 'groupes séparés', 'groupes visibles' et surtout 'aucun groupe' dans une activité pour laquelle l'utilisateur est un groupe ?

Remarque : serait-ce mal de penser qu'en mode 'groupes visibles', ou 'aucun groupe' tous les étudiants (voire même ceux qui n'appartiennent à aucun groupe) pourraient consulter les travaux des autres groupes ? Je vois
bien au moins une application à cette fonction...

Question au sujet de l'installation. Ne serait-ce pas mieux de proposer carrément un module différent du module "assignment" contenant les devoirs de groupes plutôt que de compléter l'existant ? L'avantage serait de ne pas avoir à modifier des fichiers de base de Moodle.

Ou alors, quitte à les modifier, pourquoi ne pas intégrer cette fonctionnalité comme une option à cocher (cela ne fait qu'ajouter un choix, du style "remise de groupe" ou "remise individuelle" dans les paramètres du module) ? J'imagine que le code devrait alors être revu, mais je pense que cela pourrait être un apport intéressant à la distribution de base.

Nicolas.
Annexe Image_1.png
En réponse à Nicolas Sicard

Re: Devoirs en groupe : patch complet du module assignement

par Valery Fremaux,

Merci Nicolas, Fred et toi me permettez de stabiliser ce dev plus rapidement que ce que je n'avais pensé.

-1 ) Penser à faire une sauvegarde du répertoire où les fichiers changent. En général, j'essaie de faire au maximum des patches "non intrusifs", c'est à dire, qui ajoutent des cas supplémentaires sans modifier les cas existants,mais ce n'est pas toujours possible (dans ce cas par exemple).

2) Je vais voir le pb du lien

4) Sur mon site de test avec le thème formal_white, je n'ai pas vu ce problème. Il faudrait voir si c'est un pb du thème ou si on peut le fixer dans le nouveau code. Je vais chercher.

Ce que tu rapportes m'a étonné aussi, mais c'est un effet de l'ancien code. Je me suis posé la question de savoir ce qu'on pouvait proposer comme comportement intelligent de l'affichage piloté par cette commutation du mode de groupe. Je n'ai pas encore eu l'idée lumineuse. Tout est sous contrôle à ce niveau et peut être modifié.

5) Je vais bloquer tout utilisateur non inscit à un groupe et lui envoyer un message de demande d'adhérer à un groupe.

Autres questions :

Je pense que les idées de gestion des groupes sont exactes. C'est ce que j'aimerais aussi pouvoir obtenir. Je n'ai pour l'instant que repris le code d'origine de l'ensemble qui est assez touffu et qu'on ne peut modifier que délicatement : il y a un paquet de chemins dans le code dont je ne connais pas franchement les cas d'utilisation. J'ai été étonné de la complexité du code, mais une fois que tu analyse chaque séquence, elle finit par montrer son utilité.

C'est ce qui a motivé cette solution de patch, très temporairement, entre la création d'un clone d'assignment complet, par exemple groupedassignment, ou la reprise des types existant en ajoutant complètement la commutation de mode. Les deux sont "théoriquement possibles". La première est probablement plus légère que la seconde. Cette solution de créer des types supplémentaires et un patch de la librairies me semblait être un compromis acceptable : mutliplier le nombre de modules de base ne me semble pas être un politique intéressante : on va finir par avoir des listes d'activités de 3 kilomètres avec des modules qui font plus ou moins la même chose mais pas complètement => bordelisation de l'offre fonctionnelle. Le fait de "finaliser" les modules existants pose évidemment le problème des upgrades tant que ces améliorations ne sont pas retenues par le noyau. Nous devons donc travailler en groupe pour stabiliser correctement ces fonctionnalités puis les pousser dans le tracker une fois que nous savons qu'elles sont opératoires.

En réponse à Valery Fremaux

Re: Devoirs en groupe : patch complet du module assignement

par Valery Fremaux,

Correction rapide du lien du point 2 :

Dans assignment/type/onlinegrouped/assignment.class.php § 220 :

                  link_to_popup_window ('/mod/assignment/type/onlinegrouped/file.php?id='.$this->cm->id.'&userid='.

à remplacer par :

                  link_to_popup_window ('/mod/assignment/type/onlinegrouped/file.php?id='.$this->cm->id.'&groupid='.

Dans assignment/type/onlinegrouped/file.php §29 :

get_records('groups', ...

En réponse à Valery Fremaux

Re: Devoirs en groupe : patch complet du module assignement

par Fr de Thysebaert,

Bonjour

je cherche une solution qui semble s'approcher de ce ce sujet de discutions. Dansle cadre de mes différents cours, les étudiants par goupe de trois ou quatre sont tenus de présenter un travail de "groupe", le déposer sur le site a travers un devoir/atelier, être évalué et permettre aux autres étudiants de la classe d'accéder a ce travail pour le consulter.

Avez vous une évolution de vos développements actuels dans ce sens ? Sinon quelle autre solution m'offrirait moodle

merci encore et toujours pour le dynamisme de votre communauté.. avec le temps j'espères de par mon expérience pouvoir "renvoyer l'ascenseur" ;)

fr

En réponse à Fr de Thysebaert

Re: Devoirs en groupe : patch complet du module assignement

par Valery Fremaux,

Je ne pense pas qu'il y ait pour l'instant d'autres solutions en vue. Le patch est en dernière version à l'adresse donnée en fin de discussion :

http://www.ethnoinformatique.fr/course/view.php?id=126

Un premier retour (je ne sais plus qui) m'a fait état de perturbations sur la visualisation des rendus de devoirs 'normaux' (en simple) qui avaient été faits avant. Je n'ai pas encore pu rechercher à reproduire ce pb. Il faut que je le trouve mais reproduire la situation n'est pas évidente.

En réponse à Fr de Thysebaert

Re: Devoirs en groupe : patch complet du module assignement

par Th V,

Bonsoir,

Moi j'utilise un truc, j'utilise le lien qui permet l'affichage de la contenue d'un dossier, et je le répertoire ou il dépose leur devoir.

@+ Thierry

En réponse à Th V

Re: Devoirs en groupe : patch complet du module assignement

par Valery Fremaux,

Ca reste un truc clin d’œil

Correctif pour le patch qui perturbait un peu (!) les devoirs simples :

Après application du patch :

mod/assignment/lib.php §1070

Remplacer :

        // an ugly hack for keeping flexible_table code identical when passing from
        // ungrouped to grouped assignment context
            $sort = str_replace('name', 'lastname', $sort);
       

par

        // an ugly hack for keeping flexible_table code identical when passing from
        // ungrouped to grouped assignment context
        if (ereg("grouped$", $this->assignment->assignmenttype)){
            $sort = str_replace('name', 'lastname', $sort);       
        }

Tout va bien (mieux) après cette correction.

Il reste encore cependant un type de devoir à traiter pour terminer ce patch.

En réponse à Valery Fremaux

Re: Devoirs en groupe : patch complet du module assignement

par Fr de Thysebaert,

J'ose encore

ce patch fonctionne-t-il sur moodle 1.8.3+ ?

et les sources sont constituées du fichier zip en début de discutions plus les deux correctifs ?

bonne soirée et merci

fr

En réponse à Fr de Thysebaert

Re: Devoirs en groupe : patch complet du module assignement

par Valery Fremaux,

L'adresse sur ethnoinformatique.fr fournit toujours la dernière version complète des modules, blocs et patches en cours de développement ou en release. C'est le meilleur endroit, et c'est celui qui est pointé par les bases de données de plugins de Moodle.org.

Ose donc tant que tu veux !! clin d’œil

En réponse à Valery Fremaux

Re: Devoirs en groupe : patch complet du module assignement

par Fr de Thysebaert,

J'ose ..en fait j'ai une deuxième instance Moodle qui trourne sur le serveur et qui me sert uniquement a ca.

J'ai installé a partir des sources sur ce forum ci, car j'ai pas encore eu accès a ethnoinformatque, mais c'est un autre soucis.

Dans les termes de patche .. "surcharger" signifie ajoutter du code a un fichier déjà existant sans doute ? Il me suffisait donc de déposer tous ces fichiers dans le dossier /assigement en écrasant les autres déjà existants ? Par mesure de prudence backup avant et j'ai désinstaller le module pour être sur que via le menu admin et le choix "notification", la réinstallation se fasse (donc en db aussi si la structure de la base change)

Jusque la tout fonctionne y compris dans l'affichage. En mode groupe visibles des étudiants test peuvent déposer des fichiers ..cela fonctionn. Je peux "noter" les travaux.

Par contre quand je compare les vues que quelqu'un a fournit ici je n'ai pas la colonne "groupe".

J'ai ceci : (image en annexe)

Si dans un même groupe les étudiants membres de ce groupes déposent chacun des documents, la note reste individuelle ?

Les documents sont-ils consultables par les autres membres des autres groupes ?

Merci

Et si je peux "aider" en testant ce module sur ma version de test c'est avec plaisir

fr

Annexe devoirs.png
En réponse à Fr de Thysebaert

Re: Devoirs en groupe : patch complet du module assignement

par Valery Fremaux,

Si dans un même groupe les étudiants membres de ce groupes déposent chacun des documents, la note reste individuelle ?

La note est collective dans ce type de devoir, c'est à dire qu'elle est distribuée à l'identique pour tous les participants au groupe. Je devrai revoir probablement dans quelques mois le dispositif pour tenir compte de l'inversion de "polarité" demandée par le nouveau carnet de notes (>1.9)

Les documents sont-ils consultables par les autres membres des autres groupes ?

Oui, l'accès est commun au container de documents déposés. Les étudiants peuvent même récupérer les brouillons des autres pour les reposter si les paramètres le permettent.

Et si je peux "aider" en testant ce module sur ma version de test c'est avec plaisir

Il est plus que précieux que de nombreux utilisateurs et exploitants testent les propositions de code. Car vu la complexité des dispositifs et le nombre de cas différents qu'il faudrait tester, c'est quasiment impossible pour le développeur. Celui-ci essaie cependant de fournir un module ou une fonctionnalité dans "le meilleur état de marche possible", corrigeant constamment son code et son architecture pour améliorer et "blinder". L'apport des "essuyeurs de plâtres" permet une paralélisation du travail de test et celui de la finalisation qui est TRES PRECIEUSE et permet d'obtenir des fonctionnalités fiables dans un temps optimum.

Pour le cas donné par l'image, je vais voir ce soir. Peux-tu préciser un peu plus le défaut ? pour m'aider à retrouver le bon contexte...

Merci à toi

En réponse à Valery Fremaux

Re: Devoirs en groupe : patch complet du module assignement

par Fr de Thysebaert,

Bonsoir

1) voici donc ce que j'ai fait comme premier test

Un cours test avec trois utilisateurs A B C

dans ce cours j'ai créé deux groupes ,

  • GroupeA avec l'utilisateur A
  • GroupeB avec les utilisateurs B C

je crée un devoirs de dépot de fichiers avec groupes visibles

  • L'utilisateur A dépose avec succès un fichier
  • l'utilisateur B dépose avec succès un fichier
  • L'utilisateur C ne dépose rien mais peut effectivement voir et lire les deux fichiers (dont celui du groupe dont il n'est pas membre..normal je pense)

l'enseignant note les deux devoirs

L'utilisateur A peut consulter sa note

l'utilisateur B aussi

par contre a travers la notion de groupe de travail a rendre, je pensais que la note pour un devoir déposé etait attribuée ou répartie sur tous les utilisateurs du groupe même si un utilisateur (ici dans mon exemple le C) ne rentre pas de devoir.

ici dans mon test l'utilisateur C membre du groupe B ne se voit pas attribué de note ... normal ou pas j'en sais rien ?

dans mon esprit et surtout dans ce que je souhaites, c'est justement qu'un devoir collectif puisse être déposé par un seul membre du groupe et que la note soit attribuée a chaque membre du groupe ..

2) au niveau affichage pas de soucis ni d'erreur par contre quand je regarde la copie d'écran de Nicolas Sicart, je vois qu'il existe une colonne de tri "groupe" qui semble grouper pour chaque groupe les utilisateurs et les fichiers ..de mon coté j'ai l'affichage que j'ai transmis dans mon post précédent, et sans cette colonne de tri.

merci

PS le code que j'ai mis en place est celui que j'ai récupérré ici dans le forum (fichier zip).

 

En réponse à Valery Fremaux

Re: Devoirs en groupe : patch complet du module assignement

par Fr de Thysebaert,

Bonjour,

je reviens un peu sur ce sujet. L'aspect attribution de la note a tous les membres du groupe après évaluation d'un devoir rendu par un seul membre du groupe, ne semble pas fonctionner chez moi.

Et évidemment c'est un aspect important pour moi triste

merci

fr