Comment supprimer tous les utilisateurs d'un groupe ?

Comment supprimer tous les utilisateurs d'un groupe ?

par jean baptiste graveline,
Nombre de réponses : 10
Je souhaite supprimer tous les utilisateurs d'un groupe de la plateforme moodle. Je vais dans: Compte > Actions en lots sur les utilisateurs. Mais je n'arrive pas à filtrer les participents d'un groupe. Comment dois-je procéder ?
Moyenne des évaluations  -
En réponse à jean baptiste graveline

Re: Comment supprimer tous les utilisateurs d'un groupe ?

par Paula CATERINO,
Avatar Moodleurs particulièrement utiles
Bonjour
Les utilisateurs dans les groupes sont gérés au sein même du cours. C'est directement dans le cours que l'on gère ces désinscriptions ... A moins que vous ne parliez pas de "groupe" au sens Moodle ?
En réponse à Paula CATERINO

Re: Comment supprimer tous les utilisateurs d'un groupe ?

par jean baptiste graveline,
Je ne veux pas les désinscrire mais les supprimer complètement de l'administration.
En réponse à jean baptiste graveline

Re: Comment supprimer tous les utilisateurs d'un groupe ?

par Paula CATERINO,
Avatar Moodleurs particulièrement utiles

ah .... incertain la, comme ca, je dirais qu'à part une requête dans les base MySQL (ce qui est fortement deconseillé ...) je ne vois pas comment lier l'information entre l'utilisateur au niveau plateforme ET l'utilisateur au sein d'un groupe. Mais peut-être que quelqu'un aurait une bonne idée ou un super plug-in à proposer ?

En réponse à Paula CATERINO

Re: Comment supprimer tous les utilisateurs d'un groupe ?

par Rudy Potdevin,
Avatar Moodleurs particulièrement utiles

Avec une liste des membres du groupe sous forme de script on peut réaliser une importation d'utilisateurs en utilisant le champ "deleted". Les utilisateurs dont ce champ vaut 1 seront supprimés. En fait, on n'aurait besoin que du champ "username" dans ce script.

En réponse à Rudy Potdevin

Re: Comment supprimer tous les utilisateurs d'un groupe ?

par Paula CATERINO,
Avatar Moodleurs particulièrement utiles
Bonjour Rudy,
certes mais comment obtiens-tu facilement une liste des membres du groupe sans faire une requête SQL (je n'ai rien pour exporter la liste des groupes moi ! ;-().
Bon week-end
Moyenne des évaluations Utile (1)
En réponse à Rudy Potdevin

Re: Comment supprimer tous les utilisateurs d'un groupe ?

par Patrick Pollet,

@rudy,

Oui mettre deleted=1 pour ces utilisateurs devraient effectivement donner l'illusion temporaire qu'ils ne sont plus la dans la liste des utilisateurs , mais la BD sera encore encombrée de données (grades, cohorts, preferences, lastaccess, autres groupes, logs ....) les concernant et qui pourraient perturber d'autres rapports. De plus comme leur 'username',email' sera encore  en BD, il sera impossible plus tard de créer un homonyme ou tout simplement de les récreer en cas d'erreur.

La 'bonne façon' de virer un utilisateur est d'appeler la fonction API  lib/moodlelib.php@delete_user($user)  qui fait beaucoup plus de choses que de mettre simplement mdl_user.deleted à 1 ...

Donc je crains que ca ne soit pas possible à ce jour, sauf en écrivant un script spécifique passant par les Web Services (demander la liste des membres d'un groupe par son id puis pour chacun demander sa suppression)  ou peut-être par l'outil Advanced bulk user actions http://moodle.org/mod/data/view.php?d=13&rid=3637

 

A+

En réponse à Patrick Pollet

Re: Comment supprimer tous les utilisateurs d'un groupe ?

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

Bonjour,

je pense, vu la formulation, que Rudy parlait plutôt de la façon de supprimer "proprement" des utilisateurs, en utilisant la fonctionnalité d'importation des utilisateurs sourire

En effet, il est expliqué dans le mode de fonctionnement, et dans la documentation en anglais (celle en français n'est pas à jour sur point), que l'on peut supprimer des utilisateurs en définissant un champ "deleted" à 1 clin d’œil

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

Re: Comment supprimer tous les utilisateurs d'un groupe ?

par Patrick Pollet,

oups, j'ai parlé un peu trop vite ;-(

On dirait bien (au vu du code de admin/uploaduser.php et de la doc en anglais ) que c'est possible en passant par un CSV avec deux colonnes (username et deleted) .  Jamais testé. Reste à trouver le moyen d'exporter les 'username' des membres d'un groupe dans un cours.

Désolé Rudy.

En réponse à Patrick Pollet

Re: Comment supprimer tous les utilisateurs d'un groupe ?

par Rudy Potdevin,
Avatar Moodleurs particulièrement utiles

Pas de souci sourire Dans ce contexte, je n'aurais pas du employer le mot "script" qui peut avoir une autre conotation pour les informaticiens.

Pour exporter les membres du groupe depuis le cours en ligne, c'est effectivement une autre histoire.

On peut faire une exportation des membres d'un groupe depuis le carnet de notes par exemple (possible par un menu déroulant si le cours est configuré en "groupes visibles" ou "groupes séparés"). Mais ça n'exportera pas le champ username malheureusement.

J'ai déjà eu l'occasion de tripoter le module sondage pour exporter d'autres informations vers Excel si ça vous tente. Voici donc la solution que je propose via cette activité qui exporte déjà par défaut le nom du groupe : Remplacer le champ "idnumber" plutôt inutile par le champ "username". Voici comment faire :

mod\choice\report.php
Ligne 125 à remplacer par :
$myxls->write_string(0,2,get_string("username"));
Ligne 140 à remplacer par :
$myxls->write_string($row,2,$user->username);

mod\choice\lib.php
Ligne 725 ou il faut ajouter u.username dans la liste des champs à extraires :
$allresponses[0] = get_users_by_capability($context, 'mod/choice:choose', 'u.id, u.picture, u.firstname, u.lastname, u.idnumber, u.username', 'u.lastname ASC,u.firstname ASC', '', '', $currentgroup, '', false, true); 

Lors de l'exportation Excel depuis une activité sondage (même si c'est un sondage bidon auquel personne n'a répondu) on aura récupéré le nom du groupe et le nom d'utilsateur de chaque étudiant. Il n'y aura plus qu'à filtrer les noms d'utilsateurs qu'on veut supprimer selon le groupe, changer le titre de la colonne "Nom d'utilisateur" en "username" et supprimer toutes les autres, ajouter la colonne "deleted" en fixant toutes les valeurs à 1. Ensuite : exportation en CSV et importation d'utilisateurs dans Moodle. Fin du match.