Proyecto de Integración
 

Proyecto de Integración con Grails (Continuación)

Introducción

Una vez hayamos completado las funcionalidades de la primera parte del proyecto de integración de Grails, vamos a completar la aplicación Biblioteca desde el punto de vista del alumno con algunas características nuevas.

Básicamente, estas nuevas funcionalidades a desarrollar serán las siguientes:

  • Editar los datos del alumno. Los alumnos podrán editar en cualquier momento sus datos personales.
  • Anular reservas y prereservas. Permitir a los alumnos, desde la opción Ver mis libros, anular tanto las reservas como las prereservas.
  • Despliegue de la aplicación en CloudBees. Por último, debemos desplegar la aplicación en CloudBees.

Tareas a realizar

Esta es una pequeña guía de las tareas que debes realizar en este proyecto de integración

Editar los datos del alumno

Toda aplicación que necesite un registro por parte del usuario, necesita que éste pueda modificar sus datos en cualquier momento. Para ello, vamos a darle al alumno que lo pueda hacer a través de un enlace añadido en la cabecera de la aplicación (_header.gsp).

En primer lugar debemos modificar la plantilla _header.gsp para añadir, en caso de que el usuario esté identificado en el sistema, un enlace que indice Editar mis datos y que lleve al usuario a una acción del controlador UsuarioController llamada editMyProfile. Esta acción no debe recibir ningún parámetro puesto que el identificador del usuario lo tendremos almacenado en la variable session.usuario. La respuesta a este formulario debe ir dirigida al método updateMyProfile del controlador de la clase UsuarioController.

Podéis ayudaros del scaffolding generado tanto de las vistas como de los métodos de los controladores para completar esta tarea. No olvides eliminar de las vistas aquellos campos del alumno que no deban ser modificados por éste, como puede ser su estado. De igual forma, el campo login no debe poder ser modificado y éste sólo se mostrará para que el usuario sólo pueda leerlo y nunca modificarlo.

En cuanto a la contraseña, el usuario, en caso de querer modificarla, debe introducir una confirmación de la misma, que deberá ser comprobada en el método correspondiente en el controlador.

No olvides tampoco actualizar los datos del usuario en la variables session.usuario en caso de que la actualización se haya podido realizar correctamente.

Anular reservas o prereservas

En la primera sesión del proyecto de integración con Grails implementamos un listado para ver los libros prestados, reservados o prereservados por el alumno identificado en el sistema, pero no le dimos la oportunidad de eliminar las reservas y las prereservas.

Vamos a añadir a ese listado de la primera sesión la opción para que el alumno pueda eliminar las reservas y las prereservas. En el caso de eliminar una reserva, ésta pasará al estado activa=false, ya que nos interesará tener un histórico de las reservas que se hicieron en nuestra aplicación.

Cuando se elimine una reserva, debes tener en cuenta que la aplicación debe comprobar si hay alguna prereserva sobre ese libro para crear una operación de reserva con los datos relativos a la prereserva. No olvides tampoco modificar el estado del libro en función de si queda reservado o disponible. El método debe llamarse removeBook y debe recibir como único parámetro el identificador de la reserva.

En cuanto a las prereservas, éstas deben ser eliminadas por completo de la base de datos, ya que no nos interesa tener un histórico de las mismas. Este método se debe llamar removePrebook y también debe recibir como único parámetro el identificador de la prereserva.

En ambas operaciones, debes realizar las oportunas comprobaciones para que un alumno que no esté asignado a una reserva o a una prereserva no pueda eliminarlas.

Desplegar la aplicación en CloudBees

Con todo lo que hemos desarrollado en las dos sesiones del proyecto de integración en Grails, ya podemos disponer de una primera versión de nuestra aplicación Biblioteca preparada para los alumnos.

Utilizando la cuenta de CloudBees de cualquiera de los alumnos del grupo creada en la sesión 6 del módulo de teoría de Grails, desplegaremos la aplicación en CloudBees. Para ello recuerda que en primer lugar debes crear tanto la aplicación como la base de datos en CloudBees y posteriormente configurar la aplicación para que sepa donde debería desplegarse.

Por último, instala el plugin de CloudBees para Grails y ejecuta el comando necesario para desplegar la aplicación.

Aviso
En CloudBees, para que una variable de session se pueda asignar a una instancia de una clase, como por ejemplo session.usuario = Usuario.get(1), la clase Usuario debe implementar la interfaz Serializable

Entrega

Recuerda que debes entregar el proyecto antes de las 23:59h del jueves 2 de Febrero en el repositorio svn+ssh://server.jtech.ua.es/home/svn/<grupo>/proyint/trunk/proytint-jbib-grails y marcar también en la tarea de Moodle creada para tal efecto. Cuando marques la entrega en Moodle, indica por favor la url donde se ha desplegado el proyecto del grupo.