NotasTecnicas/Preinscripcion/G2G3

<volver> <volver>

Instalación del módulo de Pre-inscripción a Propuestas Formativas (Carreras) para G2 y G3


Compatibilidad de versiones entre los sistemas

Versión Preinscripción Versión Guarani 2 Versión Guarani 3
3.0.1 2.8.0 o superior 3.4.1 o superior


Descripción de los pasos:


Requisitos

Requisito técnico Versión
PostgreSQL 8.4.x o 9.1.x
Apache 2.2.x
PHP 5.3.x. También se deben tener instaladas y activadas las extensiones php: curl, mbstring, pdo_pgsql, openssl, apc. A partir de PHP 5.3.9, establecer el valor de la directiva de configuración 'max_input_vars' en 1200.
yui-compressor 2.4.2 o superior. Para sistemas Windows viene integrado con la versión de Preinscripción


IMPORTANTE: Consideraciones sobre la caché APC

Como una medida de eficiencia para optimizar los tiempos de respuesta, el sistema utiliza una herramienta de caché para almacenar los resultados de consultas a la base de datos. El mecanismo utilizado es APC, también conocido como "caché alternativo de PHP" (por las siglas en inglés de Alternative PHP Cache). Es un código de operación de caché libre y abierto para PHP.

La primera vez que se ejecuta una consulta SQL, el resultado se almacena en un "catálogo" en caché. Las siguientes consultas de la misma SQL serán respondidos con los datos cacheados en ese catálogo. Las operaciones del sistema que realizan actualizaciones en la base se encargan además de invalidar la porción de caché APC relacionada con esos datos, para que el siguiente pedido obtenga los datos de la base. Pero si se modifican o se insertan datos externamente (por ejemplo, se exportan datos desde Guaraní para inicializar la base o se agrega algún dato por SQL), habrá que invalidar manualmente la caché, con una operación del panel de Administración de pre-inscripción provista a tal efecto.

Instalación

Si desea iniciar una instalación en la que no se aplicarán personalizaciones, efectuar un svn checkout desde la siguiente URL

 http://repositorio.siu.edu.ar/svn/guarani3w/preinscripcion3/versiones/3.0.1

En caso contrario, solicitar al SIU una URL específica para la institución preparada para personalizar.

Permisos de carpetas

En sistemas Linux, es necesario cambiar el propietario de las carpetas "temp", "log" y "cache" de la carpeta "instalacion" al usuario y grupo de Apache. Por ejemplo, para sistemas Ubuntu, donde el usuario y grupo Apache por defecto es "www-data", ejecutar:

chown -R www-data:www-data temp
chown -R www-data:www-data log
chown -R www-data:www-data cache

Base de datos

Crear una base de datos en PostgreSQL con encoding LATIN1. Ejemplo:

CREATE DATABASE preinscripcion
  WITH ENCODING='LATIN1'
       OWNER=postgres
       TEMPLATE=template0
       LC_COLLATE='C'
       LC_CTYPE='C'
       CONNECTION LIMIT=-1
       TABLESPACE=pg_default;

Usar el archivo "creacion_preinscripcion3_postgresql.sql", que se encuentra en la carpeta "BD", para crear la estructura de la base de datos. El script está en encoding LATIN1. Ejemplo:

psql -d preinscripcion -h localhost < creacion_preinscripcion3_postgresql.sql -U postgres

Una vez creada la estructura, exportar datos desde Guaraní a esta base, utilizando la operación ifz00030 de Guaraní 2 o "Matrícula >> Inscripciones >> Exportar datos a Preinscripción" (800SIUMAT044) de Guaraní 3.

En Guarani2 antes de utilizar el sistema, por el momento hay que seguir cargando a mano la tabla sga_periodos_preins con los datos de los períodos de preinscripción por carrera.

source:/trunk/img/SGA_PERIODO_PREINS.png



Definición de alias de acceso

En la carpeta "instalacion", crear un archivo "alias.conf" a partir de la plantilla "alias_template.conf". Seguir los pasos allí documentados para definir los puntos de acceso de los distintos perfiles funcionales (Administrador y Alumno).

Se deberán definir apropiadamente los alias de los puntos de acceso en función de la ubicación de la carpeta de instalación. Opcionalmente, en la configuración del punto de acceso de administración (<Location ~ "/preinscripcion_admin/*"> … ) se podrían definir restricciones para que sólo se pueda ingresar desde una intranet, siguiendo las reglas de Apache.

Se debe configurar el servidor Apache para tomar las definiciones del "alias.conf". Por ejemplo, se puede incluir en el archivo de configuración de Apache (httpd.conf) la siguiente directiva:

Include "<path de preinscripcion>/instalacion/alias.conf"

Finalmente, reiniciar Apache para que los cambios surtan efecto.

Configuración del sistema

En la carpeta "instalacion", crear un archivo "config.php" a partir de la plantilla "config_template.php".

Este archivo contiene toda la configuración del sistema, incluyendo el acceso a base de datos, servidor de correo y los parámetros propios del sistema y de la generación de comprobante.

Recomendamos efectuar la configuración siguiendo la documentación "inline" provista en dicho archivo. Tener cuidado de no establecer la variable 'produccion' en 'true' hasta haber completado los pasos de puesta en producción.


Personalizaciones

El sistema fue pensado para ser ampliamente configurable y personalizable sin necesidad de recodificación. Para ello se dispone de variables de configuración en el archivo "config.php" y operaciones en el panel de administración que permiten definir para los campos de formulario, su visibilidad, obligatoriedad y si se imprimen o no en el comprobante. Si esto no alcanza para cubrir las necesidades, o si se desean realizar cambios "estéticos" (logo, estilos, etc) se debe personalizar.

Pasos para preparar el proyecto para implementar personalizaciones:

  1. En la estructura específica preparada por el SIU, identificar la carpeta "src/pers/<mi_institucion>". Allí deberán agregarse las personalizaciones, según las metodologías que se explicarán a continuación.
  2. En el archivo de configuración '"config.php"' de la carpeta "instalacion", verificar que la variable "produccion" esté en "false". Esto es necesario para poder visualizar los cambios que se efectúen antes de pasar a producción.
  3. En el mismo archivo, establecer la variable "usar_personalizaciones" en "true".
  4. En el mismo archivo, en la sección "Configuración de puntos de acceso", setear la variable "personalizacion", que por defecto viene en NULL, con el nombre de la carpeta creado en el paso 1 (ej: "personalizacion" => "mi_institucion"). IMPORTANTE: realizar este paso para la configuración del bloque de acceso "alumno" y "admin".

A partir de este punto, el proyecto está preparado para ser personalizado.

Para personalizar algo, se debe buscar el archivo que se desea modificar y copiar sólo ese archivo en la carpeta de personalizaciones creada en el paso 1, respetando la estructura de directorios relativa. El motor de personalizaciones elegirá siempre en primer lugar el archivo personalizado antes que el entregado por el SIU, de allí la importancia de copiar sólo lo que se quiere cambiar y nada más.

Junto con la distribución, se entrega una personalización de ejemplo (denominada, justamente, "ejemplo"). En la misma, se puede ver cómo personalizar algunas características del sistema.

Etiquetas y Mensajes

Todo mensaje o etiqueta que se ve en pantalla o en el comprobante PDF que genera el alumno al finalizar el proceso, está definido en el archivo "mensajes.es.php", de la carpeta "src/siu/mensajes/".

Para cada mensaje o etiqueta, hay definida una entrada del tipo "<id_etiqueta>" => "<Descripción>" en ese archivo. Por ejemplo: "nombre_sistema" => "SIU-Preinscripción". Toda etiqueta es referenciada en el sistema por su ID, y un mecanismo de traducción busca en ese archivo la descripción correspondiente.

Por defecto, los mensajes están definidos en español, en un registro de confianza (voseo).

Para personalizarlo, lo que se debe hacer es crear un archivo "mensajes.es.php" en la estructura de carpetas "src/pers/mi_institucion/mensajes". En ese nuevo archivo, reescribir sólo las entradas que se deseen personalizar. Las incluidas en el archivo personalizado serán utilizadas en lugar de las originales.

src
 |_ siu
 |   |_ mensajes
 |       |_ mensajes.es.php
 |
 |_ pers
     |_ mi_institucion
         |_ mensajes
             |_ mensajes.es.php

Además, si se desea que algunas etiquetas de los campos de formulario se vean diferentes en el comprobante PDF respecto a cómo se ven en pantalla, se deben agregar al final del archivo entradas respetando la siguiente convención:

'pdf_<nombre_campo_original>' => '<Nueva etiqueta>',

Ejemplo: si se desea que para la etiqueta 'nro_documento' se imprima 'Nro. documento' en lugar de 'Número de documento' (como está definida para la salida en pantalla), agregar una entrada:

'pdf_nro_documento' => 'Nro. documento',

Logo de página y favicon

Una necesidad común puede ser cambiar el logo de página. El entregado por defecto tiene el nombre "logo.png", y está configurado en la variable "logo_pagina" del "config.php". Para cambiarlo, basta con crear la siguiente estructura de carpetas, y copiar el nuevo logo:

src
 |_ siu
 |   |_ www
 |       |_ img
 |           |_ logo.png
 |
 |_ pers
     |_ mi_institucion
         |_ www
             |_ img
                 |_ logo.png

Si se desea renombrar el nombre del archivo, ajustarlo en la variable "logo_pagina" del archivo de configuración.

De la misma manera, en la personalización de ejemplo se muestra que para cambiar el favicon (ícono de página) basta con guardar un archivo "favicon.ico" en la misma carpeta del logo.

Se debe tener una consideración especial con respecto al logo que se muestra en el encabezado de página del comprobante PDF. Por limitaciones de la librería EZPDF, utilizada para la generación, sólo se permiten archivos en formato PNG y sin canal alfa. El nombre del archivo se define por medio de la variable "rep_encabezado_logo" del "config.php".

Estilos

Si se desean personalizar los estilos, se debe crear un archivo "preinscripcion.css" en la ruta "src/pers/mi_institucion/www/css/" y redefinir sólo las clases css que se deseen cambiar, independientemente del archivo en el que se encuentra el estilo original. En la personalización de ejemplo, se redefine el color de los títulos, los colores de fondo de la cabecera y de los agrupados, y se agrega el estilo cursiva para los labels obligatorios.

Otros casos

En la personalización de ejemplo se muestra además cómo personalizar:

  • El comprobante, más allá de las configuraciones que ya vienen definidas en "config.php". Se entrega el archivo "src/pers/ejemplo/operaciones/_comun/generador_pdf.php", que extiende del generador base entregado por el SIU, y redefine el encabezado (elimina el código QR y amplía el espacio para la foto), no genera las secciones "CBC", "Avisos", "Fecha y firma" y "Credencial provisoria" (independientemente de lo establecido en "config.php") y se cambia el orden de la sección "Datos de estudios" para que se muestre luego de "Datos personales".
  • La cabecera de página. Se exhibe el logo a la derecha, y se muestra también el nombre y apellido de la persona logueada. Ver: "src/pers/ejemplo/operaciones/_comun/templates/header.twig"
  • El layout y el estilo de una sección de la operación de carga de datos (Idiomas). Se redefine el ancho de los combos de selección vía css, se cambia el color de fondo de ese agrupado y se define un margen. Además, se personaliza la definición de los campos del formulario, para cambiar la clase css del campo "alu_idioma_otro" (form::clase_css => "input-xxlarge"). Los archivos se pueden ver en: "src/pers/ejemplo/operaciones/censo/idiomas/"

La salida html del proyecto se realiza en base al motor de plantillas twig. Se puede encontrar documentación online en  http://twig.sensiolabs.org/


IMPORTANTE: una vez finalizadas las personalizaciones, realizar un svn commit de los cambios efectuados. Eso permitirá preservar las personalizaciones ante una nueva versión liberada por el SIU.

Puesta en Producción

Se hayan efectuado o no personalizaciones, por cuestiones de performance antes de poner el sistema en producción se deben compilar recursos mediante el comando "preinscripcion" de la carpeta "bin":

preinscripcion compilar_recursos

Finalmente, establecer la variable "produccion" en "true" en "config.php".

<volver>