viernes, 21 de septiembre de 2018

Como poner enlace a un formulario en un menú hecho con código

Gracias al código, podemos crear un menú que se integra con todos los restantes en una hoja de cálculo, por ejemplo:

function onOpen() {
 var ss = SpreadsheetApp.getActive();

  var items = [
        {name: 'INICIO', functionName: 'inicio'},

        null, // Results in a line separator.

    {name: 'Respuestas', functionName: 'ir_a_respuestas'},
   {name: 'Tabla Gestión', functionName: 'ir_a_gestion'},
   {name: 'Control reiteración', functionName: 'ir_a_control'},
         {name: 'Sanciones', functionName: 'sanciones'},
      null, // Results in a line separator.
         {name: 'Por fechas', functionName: 'por_fechas'},
   {name: 'Por curso', functionName: 'por_curso'},
   {name: 'Por tipo', functionName: 'por_tipo'},
       {name: 'Por alumno', functionName: 'por_alumno'},
           {name: 'Histórico', functionName: 'historico'},
           {name: 'Evaluaciones - Grupos', functionName: 'evaluaciones_grupos'},
           {name: 'Conducta - Grupos', functionName: 'conducta_grupos'},
           {name: 'Medida - Grupos', functionName: 'medida_grupos'},
           {name: 'Zona - Grupos', functionName: 'zonas_grupos'},
          null, // Results in a line separator.
               {name: 'Mandar expediente', functionName: 'mandar_expediente'},
               {name: 'Lista de expedientes', functionName: 'expedientes'},
               {name: 'Plantilla de expedientes', functionName: 'mandar_expediente'},
              null, // Results in a line separator.
               {name: 'Plantilla de correo', functionName: 'plantilla'},
               {name: 'METER ALUMNOS', functionName: 'alumnos'},
                {name: 'INSTALACIÓN (Listas para el formulario)', functionName: 'instalacion'}
  ];
  ss.addMenu('Navegación', items);

}

Como la función se llama onOpen(), cada vez que habramos la hoja de cálculo va a correr el código y  creará el menú.

Pero, y este es el problema que nos hemos encontrado, si queremos poner una opción que apunte a la URL de un formulario no nos va a funcionar.

Para solucionarlo, mirando en Internet, mi compañero David Berrogain encontró esta función:

function showDialog() {
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setWidth(200)
      .setHeight(200);
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showModalDialog(html, 'Añadir Entrevista con Familia');
}
Teniendo ya la función solamente nos quedaría meter otra fila en la función onOpen() que sería:
                {name: 'fORMULARIO', functionName: 'showDialog()'},
(¡IMPORTANTE! Si esta línea es la última de las opciones hay que borrar la coma del final, de lo contrario mantenerla)


Desconectar de la cuenta desde ciertos sitios

Lo que voy a explicar hoy puede parecer un detalle sin importancia, sobre todo si trabajáis desde vuestro propio ordenador.
Pero, os pongo en situación: Creamos herramientas para gestión de centros escolares, damos permiso para usarlas solamente a miembros de la organización (en nuestro caso @educacion.navarra.es). Estas herramientas se necesitan en el centro escolar, donde el profesor debe entrar desde el ordenador que le pille mas cerca. Las herramientas le piden que se logee con su cuenta de correo. Una vez que ha acabado de utilizar la herramienta, sino pone cuidado, deja su cuenta abierta para el próximo que llegue. Consecuencia, el próximo no necesita logearse, pero trabaja como si fuera el anterior usuario y, además, podría perfectamente entrar en el correo, en el drive, etc.. del anterior...

¿En cuales de las herramientas que utilizamos pasa esto? En el Site nuevo (no hay enlace a cerrar sesión por ningún sitio) y en cualquier formulario (misma situación)

Por lo tanto, una buena idea es conseguir que tanto en el Site como en el mensaje de confirmación de los formularios aparezca algo así como "cerrar sesión".

Pensabamos que iba a ser muy complicado, pero gracias a internet lo hemos conseguimo fácilmente. El enlace en todos los casos es:

https://mail.google.com/mail/logout

Este enlace lo podemos poner en el mensaje de confirmación de los formularios 
y/o crear un menú en el Site nuevo que apunte a dicho enlace
 

Crear PDF horizontal

El código que vamos a mostrar aquí no ha sido creado por nosotros, sino que lo hemos encontrado en Internet. Objetivo: Publicar una pesta...