Esportazione elenco utenti

Esportazione elenco utenti

di Alberto Vasciaveo -
Numero di risposte: 9

Avrei necessità di esportare l'elenco degli studenti iscritti ad un corso per poterli importare su di un'altra piattaforma all'interno di un altro corso (chiaramente con tutti i loro dati, compresa la password di accesso).

Ho trovato in Moodle la possibilità di importare gli utenti, ma non la possibilità di esportarli, né gli studenti di un corso e nemmeno gli utenti registrati in piattaforma.

Avete idea di qualche soluzione?

Grazie

Media dei voti:  -
In riposta a Alberto Vasciaveo

Re: Esportazione elenco utenti

di Andrea Cianfanelli -
Cito:

Caricamento degli utenti

Innanzitutto, occorre notare che di solito non è necessario importare utenti in massa. Per ridurre il proprio lavoro di manutenzione bisognerebbe, per prima cosa, esaminare i moduli di autenticazione che non richiedono la manutenzione manuale, come la connessione ad esistenti database esterni o consentire agli utenti la creazione di propri account. Consultare la sezione Autenticazione nei menu dell'amministratore.


Comunque, se gli utenti non sono 800, e' un lavoro che puo' benissimo essere fatto a mano dall'amministratore, ma resta comunque un grosso rischio per la privacy, perche' in teoria la password di un utente deve essere conosciuta solo da l'utente stesso.
Alternativa:
quando si esporta un corso viene creato un file zip con tutte le informazioni scelte - al suo interno c'e' un file moodle.xml che contiene un tag USERS - all'interno di questo tag si trovano tutte le informazioni sugli utenti iscritti al corso (attenzione: anche le informazioni dell'amministratore vengono salvate), compreso l'md5 delle password. Se uno ha tempo e pazienza si puo' mettere sul database ricopiare tutti i dati, campo per campo (esclusi i valori assegnati automaticamente dal db, come gli ID). Occhio: non e' detto che funzioni, ma in questa maniera almeno la password dovrebbe rimanere la stessa e soprattutto dovrebbe rimanere nascosta anche all'amministratore.
In riposta a Andrea Cianfanelli

Re: Esportazione elenco utenti

di Alberto Vasciaveo -
Grazie per la pronta risposta!
In verità, gli studenti non sono tantissimi (circa una cinquantina), ma risulterebbe troppo oneroso doverli reinserire tutti a mano e, forse, ancor + difficoltoso farli reiscrivere tutti sulla nuova piattaforma.
Anche la seconda soluzione, quella di esportare un corso in un file zip, ho provato, impostando l'esportazione dei soli utenti, ma non ha funzionato a dovere, perchè mi ha esportato soltanto i docenti!!
In ogni caso mi sembrava curioso il fatto che sia prevista l'importazione degli utenti (secondo diverse modalità) e nessuna esportazione.
Da ultimo, non mi sarebbe dispiaciuto esportare gli studenti anche solo come elenco (magari da reimportare in un foglio di lavoro) e senza password, per averlo sempre sottomano.

Grazie comunque!
In riposta a Alberto Vasciaveo

Re: Esportazione elenco utenti

di Andrea Cianfanelli -
Mmm per la parte della lista degli utenti c'e' comunque da sporcarsi un po' le mani: puoi visualizzare la lista dei partecipanti a un corso, magari visualizzando piu' dettagli, e salvare direttamente l'html.
Poi con molta pazienza levare tutte le informazioni in piu' (intestazione della pagina, menu' navigazione etc).
Altrimenti ho provato con excel a importare un xml che conteneva solo la parte degli utenti e be'.. ha funzionato, ma anche in questo caso il tutto e' discretamente laborioso: bisogna prendere l'xml generato dal backup del corso, cancellare tutto tranne quello che c'e' all'interno del tag <users>, e all'interno di ogni tag <user> cancellare i tag <ROLES> e <USER_PREFERENCES>. A questo punto risalvare come XML e aprirlo normalmente con excel. Ci saranno un po' di colonne in piu' (tutte informazioni pressoché inutili, come numeri di ICQ e altre piccole opzioni di moodle) ma anche campi piu' importanti come nome cognome e e-mail.
In riposta a Alberto Vasciaveo

Re: Esportazione elenco utenti

di Daniele Cordella -
Ciao. Anche io ho avuto lo stesso problema e l'ho risolto costruendomi una aggiunta.
Sostanzialmente si tratta di modificare due files e di aggiungerne altri due.
Ecco qua come si fa.
1) modifica moodle/user/action_redir.php modificando
'messageselect.php',
'extendenrol.php'
);
in
'messageselect.php',
'downloadtxt.php',
'downloadxls.php',
'extendenrol.php'
);

2) modifica moodle/user/index.php modificando
if (has_capability('moodle/site:readallmessages', $context)) {
$displaylist['messageselect.php'] = get_string('messageselectadd');
}
if ($course->enrolperiod) {
$displaylist['extendenrol.php'] = get_string('extendenrol');
}
in
if (has_capability('moodle/site:readallmessages', $context)) {
$displaylist['messageselect.php'] = get_string('messageselectadd');
}
if (has_capability('moodle/site:uploadusers', $context)) {
$displaylist['downloadtxt.php'] = get_string('downloadtext');
$displaylist['downloadxls.php'] = get_string('downloadexcel');
}
if ($course->enrolperiod) {
$displaylist['extendenrol.php'] = get_string('extendenrol');
}
3) aggiungi i file downloadtxt.php e downloadxls.php alla cartella moodle/user
FINE.

I materiali li trovi compressi in http://tracker.moodle.org/browse/MDL-5669: usernew.zip

Una volta finito il processo accedi al blocco partecipanti, seleziona chi vuoi e scaricane la lista.
La mia modifica attuale funziona in Moodle1.8
In riposta a Daniele Cordella

Re: Esportazione elenco utenti

di Alberto Vasciaveo -

Direi che è ottimo! Funziona bene! L'ho scaricato dall'URL che mi hai segnalato (http://tracker.moodle.org/browse/MDL-5669)!

In verità, però, l'esportazione doveva servirmi per poi reimportare gli studenti in un altro corso in un'altra piattaforma.

Quindi rimane un piccolo problema, però: il file esportato contiene l'ID (che non deve essere reimportato) e mancano dei campi obbligatori, come lo username e la password, in modo da poter effettuare la importazione nella piattaforma di destinazione.

A dire il vero, qualcosa di simile ero riuscito a realizzare: dalla voce Valutazioni (all'interno di un corso), esportando l'elenco, si può ripulirlo delle colonne aggiuntive e si ottiene qualcosa di simile.

Purtroppo non è ancora esattamente ciò che serve.

Davvero mi sembra strano che Moodle accetti l'importazione degli utenti da file CSV (con username, password, nome, cognome,ecc.) e non consenta una analoga esportazione!

Comunque grazie a quanti mi hanno dato suggerimenti!

In riposta a Alberto Vasciaveo

Re: Esportazione elenco utenti

di Lorenzo Nicora -
C'è un problema di base che impedisce di esportare la password di un utente.
In realtà non è un problema, ma una normale misura di privacy/sicurezza usata in tutte le applicazioni (serie).
La password non è salvata nel db in chiaro, ma in forma di hash (una sorta di cifratura monodirezionale). Vale a dire che non è possibile risalire alla password in chiaro inserita dall'utente.

L'import degli utenti da CSV prevede invece che venga passata la password in chiaro.
Quindi qualunque esportazione da db non potrebbe essere usata per reimportare via CSV.

Comunque io ho sempre usato il backup/restore di Moodle per trasferire utenti tra diverse piattaforme e non ho mai avuto problemi, salvo che un piccolo pasticcio con la lingua passando backup della 1.5 sulla 1.6).

In riposta a Lorenzo Nicora

Re: Esportazione elenco utenti

di Andrea Cianfanelli -
Ne approfitto per scusarmi per aver usato un linguaggio un po' tecnico occhio nero, Lorenzo ha spiegato benissimo quello che io tentavo di dire solo con md5...
arrossito