Abr, 2014

Versión de CoRubrics para dominios con Google apps for Education (GAFE)

corubrics

Hace unos meses creé una plantilla de una hoja de cálculo realizada con Google Drive que tenía un script asociado, CoRubris, que permite automatizar la evaluación con rúbricas . El siguiente artículo explicaba el funcionamiento: CoRubrics , una plantilla para evaluar con rúbricas.

Ha tenido bastante buena acogida y ahora he hecho una versión para los centros que tengan un dominio de Google apps for Education (GAFE), que permite una mejora que algunos profesores me han pedido. (más…)

Creando un Google apps script

Primero hay que tener en cuenta que los Google apps script se basan en Javascript. No hay que ser un experto programador, pero si que hay que dominar un poco la sintaxis del lenguaje. Por lo tanto, si no se conoce la sintaxis del Javascript, yo recomiendo se acceda al siguiente enlace y se realicen las actividades que se proponen. Son 16 módulos que se pueden hacer en unas 10 horas, pero tampoco hay que hacerlos todos. Con los 5 o 6 primeros ya es suficiente. http://www.codecademy.com/tracks/javascript

Una vez conocida la sintaxis del Javscript, centrémonos en un ejemplo de script. En este caso, haremos un script para conseguir que un formulario llegue por correo electrónico a la persona que lo contesta. En la web de mi centro tenemos un formulario por si alguna persona de la comunidad educativa quiere hacer llegar a la dirección alguna queja o sugerencia. Es un formulario hecho con Google que sólo tiene 4 campos: Nombre y Apellidos / Dirección de correo / Curso (sólo si es alumno o familia) / Descripción de la queja o sugerencia. Lo que debe hacer el script que quiero presentar es enviar una copia de las respuestas a la persona que conteste el formulario. Si se tiene un GAFE esto se puede hacer obligando al usuario a iniciar sesión, pero en este caso queremos que contesten el formulario personas que no están en nuestro GAFE (familias, empresas …). Primero, lógicamente, hay que crear el formulario de Google y acceder a la hoja de cálculo donde irán a parar las respuestas del formulario. Dentro de esta hoja de cálculo, accederemos a Herramientas / Editor de script

script1

Crearemos un script en blanco y escribiremos el seguiente código:

script2

/**
* Enviar las respuestas de un formulario 
* por mail 
*/ 

function onChange() { 
//Preparamos el inicio del mail 
var cap="Se ha enviado su sugerencia o queja correctamente. A continuación se adjuntan sus respuestas:"; 
var asunto= "Confirmación queja o sugerencia"; 

var cuerpomensaje=cap; 
var dest = ""; 
var camp = ""; 
var libroActual = SpreadsheetApp.getActiveSpreadsheet(); 
var hojaresp = libroActual.getSheets()[0]; 
var rangresp = hojaresp.getDataRange(); 
var ul_fila= rangresp.getNumRows(); 
var encontrado=0; 
//Miramos la última fila de la hoja de respuestas
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)==='@'){ 
encontrado=1; 
} 
}
if (encontrado===1){ 
dest=camp; 
encontrado=0; 
} else { 
cuerpomensaje= cuerpomensaje+rangresp.getCell(1,j).getValue()+": "+camp+""; 
}
}
//Mandamos el mail 
GmailApp.sendEmail(dest, asunto, '',{ htmlBody: cuerpomensaje}); 
};

Analicemos un poco este código y veamos enlaces interesantes para seguir profundizando. El inicio sólo sirve para definir variables (Asunto del correo que se enviará / Cabecera del correo) y otras variables de programación. Hay que mencionar a tres concretas:

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

Para entender estas variables, nos irá muy bien la ayuda de Google. Se encuentra en https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app
Nos muestran todos los objetos propios de las aplicaciones de Google y sus propiedades. En las variables que he definido en el script, la variable libroActual es un libro de cálculo entero. Concretamente el libro activo. La variable hojaresp, es la primera hoja de cálculo del libro. La variable rangresp es un conjunto de celdas, todas las que tienen datos. Hubiéramos podido obtener directamente la última variable, rangresp, escribiendo

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

pero así de entrada quizás hubiera sido más difícil de entender. Todos los scripts se basan en esto, objetos y propiedades. Con la ayuda de Google, podemos encontrar cualquier cosa de las aplicaciones de Google (valores celdas, destinatarios de correos, número de filas, texto de ¡un documento …). Siguiendo con el ejemplo,

var ul_fila= rangresp.getNumRows(); 
var encontrado=0; 
//Miramos la última fila de la hoja de respuestas
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)==='@'){ 
encontrado=1; 
} 
}
if (encontrado===1){ 
dest=camp; 
encontrado=0; 
} else { 
cuerpomensaje= cuerpomensaje+rangresp.getCell(1,j).getValue()+": "+camp+""; 
}
}

miramos celda por celda de la última fila. Para ello definimos una variable ul_fila que es el número de filas del rango con datos. Justamente la última tiene la respuesta que queremos enviar. Podemos mirar el valor de cada celda haciendo un bucle for, así miraremos todas las celdas. Para acceder a su valor, utilizamos las propiedades getCell (para fijar la celda) y getValue (para obtener el valor). Como no sabemos en qué campo el usuario nos indicará el mail, lo que hacemos es mirar letra por letra si esa celda tiene el símbolo @. Para ello, utilizamos un segundo for, que compara cada letra con la @.

Ya sólo queda crear el cuerpo del mensaje, donde pondremos el nombre del campo (que está en la primera fila) y a continuación la respuesta.

El script termina enviando el correo

//Mandamos el mail 
GmailApp.sendEmail(dest, asunto, '',{ htmlBody: cuerpomensaje});

Para ello utilizamos otro objeto de Google. No es de hojas de cálculo, sino de correo. En otro apartado de la página de ayuda de Google podemos encontrar los objetos de Gmail: https://developers.google.com/apps-script/reference/gmail/

Una vez hecho el script y entendido su funcionamiento, sólo nos falta programar que se ejecute cada vez que alguien responda el formulario. Lo haremos con los disparadores.

script4

Configuraremos que el script que acabamos de crear se ejecute cada vez que alguien responda el formulario.

script5

Aquí es importante qué usuario está activando el disparador, ya que este será el usuario que envía el mail. Si estamos creando el script con usuario de profesor, pero queremos que el mail lo envíe a un usuario de centro, deberemos compartir la hoja con el usuario de centro en modo edición y que éste active el disparador.

Si se desea ver cómo funciona este script en la práctica, a continuación hay el enlace a un formulario. Si se contesta, se recibirá un correo mío con la confirmación.

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

Creo que los Google apps scripts son una gran herramienta, ya que nos puede servir para infinidad de operaciones (copiar datos entre hojas, combinar información de documetos y hojas de cálculo y mandarolo por email…). Si sabe algo de programación no es difícil entrar en su forma de funcionar y se puede hacer lo que se quiera. Son ideales para automatizar procesos que de otro modo se realizarán de forma manual.

Instalar aplicaciones en el navegador Chrome de los alumnos

Vamos a ver cómo lo debe hacer el Administrador del GAFE. Desde el Panel de Control del dominio, debe acceder a la parte inferior, donde indica Más controles.

aplicacions1

Aparecerá una barra con más iconos y habrá que elegir la opción Otros servicios de Google.

aplicacions2

A continuación, Administración de Chrome.

aplicacions3

Al final de todo, Configuración Avanzada

aplicacions4

Y finalmente llegamos a la opción para indicar qué aplicaciones queremos que se instalen automáticamente

aplicacions5

Haciendo clic en el enlace Administrar aplicaciones preinstaladas, se accederá al tablero para añadirlas. Como se puede ver, en mi dominio tengo 9.

aplicacions6

Una vez añadidas, también pueden fijarse en la barra de aplicaciones. La opción se encuentra un poco por debajo de la opción de Añadirlas.

Pero una vez está configurada la preinstalación automática, los alumnos (y profesores) ¿donde pueden encontrar estas aplicaciones?

Hay varias maneras, pero la que yo utilizo más es la siguiente. Dentro de Chrome, abrir una nueva pestaña

aplicacions7

y después elegir aplicaciones

aplicacions8

Al alumno se le cargará una página con todas las aplicaciones. Las que el Administrador le haya preinstalado, y las que él mismo decida instalarse (si el administrador ha permitido la instalación de aplicaciones al usuario)

aplicacions9

Para mí es una opción muy interesante, ya que no es necesario que los alumnos busquen aplicaciones por Chrome Store que no conocen. Además, permite que fácilmente, dentro del centro, todo el mundo utilice las mismas aplicaciones, puesto que ya las tiene en su navegador.

Además, las aplicaciones tienen otra ventaja. No dependen del ordenador, si no del usuario que ha iniciado sesión en Chrome. Por tanto, sea cual sea el ordenador desde el que se accede, si se inicia sesión en el Chrome, las aplicaciones se instalan automáticamente y el usuario las tiene disponibles para trabajar.