Versió de CoRubrics per a dominis amb Google apps for Education (GAFE)

corubricsFa uns mesos vaig crear una plantilla d’un full de càlcul fet amb Google Drive que tenia un script associat, CoRubris, que permet automatitzar l’avaluació amb rúbriques. El següent article n’explicava el funcionament: CoRubrics, una plantilla per avaluar amb rúbriques.

Ha tingut força bona acollida i ara n’he fet una versió per als centres que tinguin un domini de Google apps for Education (GAFE), que permet una millora que alguns professors m’han demanat.

Continue reading “Versió de CoRubrics per a dominis amb Google apps for Education (GAFE)”

Creant un Google apps script

Primer de tot cal tenir en compte que els Google apps script es basen en Javascript. No cal ser-ne un expert programador, ans al contrari, però si que s’ha de dominar una mica la sintaxi del llenguatge. Per tant, si no coneixeu la sintaxi del Javascript, jo us recomano que aneu al següent enllaç i realitzeu les activitats que us proposen. Són 16 mòduls que es poden fer en unes 10 hores, però tampoc cal que els feu tots. Amb els 5 o 6 primers ja fareu. http://www.codecademy.com/tracks/javascript

Un cop coneguda la sintaxi del Javscript, centrem-nos en un exemple d’script. En aquest cas, farem un script per aconseguir que un formulari arribi per correu electrònic a la persona que el contesta.

Al web del meu centre tenim un formulari per si algú de la comunitat educativa vol fer arribar a la direcció alguna queixa o suggeriment. És un formulari fet amb Google que només té 4 camps: Nom i Cognoms / Adreça de correu / Curs (només si és alumne o família) / Descripció de la queixa o suggeriment.

El que ha de fer l’script que us vull presentar és enviar una còpia de les respostes a la persona contesti el formulari. Si teniu un GAFE això es pot fer obligant a l’usuari a iniciar sessió, però en aquest cas volem que contestin el formulari persones que no estan al nostre GAFE (famílies, empreses…).

Primer de tot, lògicament, cal crear el formulari de Google i accedir al full de càlcul on aniran a parar les respostes del formulari.

Dins d’aquest full de càlcul, accedirem a Eines / Editor d’script

script1

Crearem un script en blanc i escriurem el següent codi:

script2

/**
* Envia les respostes d'un formulari 
* per mail 
*/ 

function onChange() { 
//Preparem els destinataris i el cos del missatge 
var cap="Heu enviat correctament una queixa o suggeriment a l'INS L'Estatut. A continuació podeu veure les dades que heu indicat:"; 
var titol= "Confirmació queixa o suggeriment"; 

var cosmissatge=cap; 
var dest = ""; 
var camp = ""; 
var llibreActual = SpreadsheetApp.getActiveSpreadsheet(); 
var fullrespostes = llibreActual.getSheets()[0]; 
var rangresp = fullrespostes.getDataRange(); 
var ul_fila= rangresp.getNumRows(); 
var trobat=0; 
//Recollim la darrera fila del full de respostes
for (j=1; j<rangresp.getNumColumns()+1;j++){ 
camp = rangresp.getCell(ul_fila,j).getValue(); 
for (i=0;i<camp.length;i++){ if (camp.charAt(i)==='@'){ 
trobat=1; 
} 
}
if (trobat===1){ 
dest=camp; 
trobat=0; 
} else { 
cosmissatge= cosmissatge+rangresp.getCell(1,j).getValue()+": "+camp+" "; 
}
}
//Enviem els missatges 
GmailApp.sendEmail(dest, titol, '',{ htmlBody: cosmissatge}); 
};

Analitzem una mica aquest codi i veiem enllaços interessants per seguir aprofundint. L’inici només serveix per definir variables (Títol del correu que s’enviarà / Capçalera del correu) i altres variables de programació. Cal fer esment a tres concretes:

var llibreActual = SpreadsheetApp.getActiveSpreadsheet(); 
var fullrespostes = llibreActual.getSheets()[0]; 
var rangresp = fullrespostes.getDataRange();

Per entendre aquestes, ens anirà molt bé l’ajuda de Google. La trobareu a https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app Aquí se’ns mostren tots els objectes propis de les aplicacions de Google i les seves propietats. En les variables que he definit a l’script, la variable llibreActual és un llibre de càlcul sencer. Concretament el llibre actiu. La variable fullrespostes, és el primer full de càlcul del llibre. La variable rangresp és un conjunt de cel·les, totes les que tenen dades. Haguéssim pogut obtenir directament la darrera variable, rangresp, fent

var rangresp = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getDataRange()

però així d’entrada potser hagués estat més difícil d’entendre. Tots els scripts es basen en això, objectes i propietats. Amb l’ajuda de Google, podem trobar qualsevol cosa de les aplicacions de Google (valors cel·les, destinataris de correus, nombre de files, text d¡un document…). Seguint amb l’exemple,

var ul_fila= rangresp.getNumRows(); 
var trobat=0; 
//Recollim la darrera fila del full de respostes
for (j=1; j<rangresp.getNumColumns()+1;j++){ 
camp = rangresp.getCell(ul_fila,j).getValue(); 
for (i=0;i<camp.length;i++){ if (camp.charAt(i)==='@'){ 
trobat=1; 
} 
}
if (trobat===1){ 
dest=camp; 
trobat=0; 
} else { 
cosmissatge= cosmissatge+rangresp.getCell(1,j).getValue()+": "+camp+""; 
}
}

mirem cel·la per cel·la de la darrera fila. Per això definim una variable ul_fila que és el nombre de files del rang amb dades. Justament l’última té la resposta que volem enviar. Fixeu-vos que podem mirar el valor de cada cel·la fent un bucle for, així les mirarem totes. Per accedir al valor, utilitzem les propietats getCell (per fixar la cel·la) i getValue (per obtenir-ne el valor). Com que no sabem en quin camp l’usuari posarà el mail, el que fem és mirar lletra per lletra si aquella cel·la té el símbol @. Per fer-ho, utilitzem un segon for, que va comparant cada lletra amb l’@.

Ja només resta crear el cos del missatge, on hi posarem el nom del camp (que està a la primera fila) i a continuació la resposta.

L’script acaba enviant el correu

//Enviem els missatges 
GmailApp.sendEmail(dest, titol, '',{ htmlBody: cosmissatge});

Per fer-ho utilitzem un altre objecte de Google. No és de fulls de càlcul, sinó de correu. En un altre apartat de la pàgina d’ajuda de Google podem trobar els objectes del Gmail: https://developers.google.com/apps-script/reference/gmail/

Un cop fet l’script i entès el seu funcionament, només ens falta programar que s’executi cada cop que algú respongui el formulari. Això ho farem amb els disparadors.

script4

Configurarem que l’script que acabem de crear, s’executi cada cop que algú respongui el formulari.

script5

Aquí és important quin usuari està activant el disparador, ja que aquest serà l’usuari que enviarà el mail. Si estem creant l’script amb usuari de professor, però volem que el mail l’enviï un usuari de centre, caldrà compartir el full amb l’usuari de centre en mode edició i que aquest activi el disparador.

Si voleu veure com funciona aquest script a la pràctica, a continuació teniu el formulari. Si el contesteu, rebreu un correu meu amb la confirmació.

https://docs.google.com/a/insestatut.cat/forms/d/1k_0VSP6qP0S5f66MWe0vwztw-EzJi4sXVcFRhS14zx8/viewform

Crec que els Google apps scripts són una gran eina, ja que ens pot servir per infinitat d’operacions (copiar dades entre fulls, combinar informació de documets i fulls de càlcul i enviar-ho per mail…).. Si sabeu una mica de programació no us serà gens difícil entrar en la seva forma de funcionar i podreu fer el que vulgueu. Són ideals per automatitzar processos que d’altre manera s’han de fer de forma manual.

Instal·lar aplicacions al navegador Chrome dels alumnes

Anem a veure com ho ha de fer l’Administrador del GAFE. Des del Tauler de Control del domini, ha d’accedir a la part inferior, on indica Més controls.

aplicacions1

Es desplegarà una barra amb més icones i caldrà triar l’opció Altres Serveis de Google.

aplicacions2

A continuació, Administració de Chrome.

aplicacions3

Al final de tot, Configuració Avançada

aplicacions4

I finalment arribem a l’opció per indicar quines aplicacions volem que s’instal·lin automàticament:

aplicacions5

Fent clic a l’enllaç Administrar aplicacions preinstal·lades, s’accedirà al tauler per afegir-ne. Com podeu veure, en el meu domini en tinc 9.

aplicacions6

Un cop afegides, també podeu fixar-les a la barra d’aplicacions. L’opció la trobareu una mica per sota l’opció d’Afegir-les.

Però un cop està configurada la preinstal·lació automàtica, els alumnes (i professors) on poden trobar aquestes aplicacions?

Hi ha diverses maneres, però la que jo utilitzo més és la següent. Dins el Chrome, obrir una pestanya nova:

aplicacions7

i després triar aplicacions

aplicacions8

A l’alumne se li carregarà una pàgina amb totes les aplicacions. Les que l’Administrador li hagi preinstal·lat, i les que ell mateix decideixi instal·lar-se (si l’administrador ha permès la instal·lació d’aplicacions a l’usuari)

aplicacions9

Per mi és una opció molt interessant, ja que no cal que els alumnes cerquin aplicacions pel Chrome Store que no coneixen. A més, permet que fàcilment, dins del centre, tothom utilitzi les mateixes aplicacions, ja que ja les té al seu navegador.

A més, les aplicacions tenen un altre avantatge. No depenen de l’ordinador, si no l’usuari que ha iniciat sessió al Chrome. Per tant, sigui quin sigui l’ordinador des del que s’accedeix, si s’inicia sessió en el Chrome, les aplicacions s’instal·len automàticament i l’usuari les té disponibles per a treballar-hi.