3.4.15. Sistema de notificaciones - diezMalena/api_FCTFiller GitHub Wiki

Introducción

Esta funcionalidad se encargará de notificar todo lo relacionado con los Anexos 0, I y III, es decir, se notificará a cada uno de los usuarios implicados cuando uno de ellos haya subido algún documento en que los demás usuarios deban firmar.

En cuanto a la visualización de las notificaciones, el usuario encontrará un icono en la parte superior derecha en la que se indicará el número de notificaciones disponibles, con la función ControladorGenerico/countNotificaciones(). Al clicar en él, encontrará las notificaciones disponibles, ordenadas por las más recientes primero, gracias a la función ControladorGenerico/getNotificacionesHeaders().

El código implementado para mostrar cuántas notificaciones disponibles hay para el usuario es el siguiente:

$email = $req->get('email');
$count = Notificacion::where('email', '=', $email)
    ->where('leido', '=', 0)
    ->select('*')
    ->orderBy('created_at', 'DESC')
    ->get()
    ->count();
return response()->json($count, 200);

Anexo I

Para que las notificaciones referentes a este anexo surjan, el primer paso es que el tutor del centro de estudios asocie a cada alumno en una empresa, y cuando genere el documento Word del Anexo I, el/la director/a podrá acceder a dicho documento desde la opción Anexos Generados del menú lateral, para así implementar su firma y volver a subir el documento, esta vez en formato PDF. Es ahí, en el momento en el que el/la director/a sube el documento firmado en formato PDF, cuando la notificación se genera con su correspondiente mensaje, dentro del método ControladorTutorFCT/firmarAnexo().

Estas notificaciones no se irán al visualizarlas, sino que permanecerán hasta que el tutor de los alumnos se descargue el documento PDF subido por la directora, lo mande al Responsable Legal de la empresa asociada, y lo vuelva a subir ya firmado por este.

El código implementado para generar una notificación dentro de la función ControladorTutorFCT/firmarAnexo() es el siguiente:

 Notificacion::create([
         'email' => $email_tutor->email,
         'mensaje' => 'El/la director/a ya ha firmado el Anexo I referente a la empresa ' . $empresa->nombre . '.',
         'leido' => 0
]);

notif

Anexo III

Por parte del alumno no encontrará notificaciones ya que es él el que se encarga de notificar al tutor del centro de estudios que una nueva hoja de seguimiento está disponible para firmarla. Es por eso que, cuando el tutor del centro de estudios inicie sesión en la página web, tendrá tantas notificaciones como hojas de seguimiento tenga sin firmar aún. Estas notificaciones no se irán al visualizarlas, sino que permanecerán hasta que el tutor las haya firmado, para que no pase ninguna hoja de seguimiento desapercibida. Una vez firmadas, estas desaparecerán.

Si el alumno necesita hacer alguna modificación de una hoja de seguimiento ya firmada, cuando vuelva a subir el nuevo PDF se volverá a notificar al tutor, ya que sería como una nueva hoja de seguimiento en la que el tutor tiene que firmar.

Las notificaciones para este caso se generan comprobando qué hojas de seguimiento están sin firmar por el tutor del centro de estudios, y en base a eso, se crea la notificación con su correspondiente mensaje. Esto se gestiona en la función ControladorGenerico/generarNotificaciones().

El código implementado para generar una notificación dentro de la función mencionada anteriormente es el siguiente:

Notificacion::create([
        'email' => $email,
        'mensaje' => 'Ya puedes firmar la hoja de seguimiento de ' . $datos[$i]->nombre_alumno . ' ' . $datos[$i]->apellidos_alumno . '.',
        'leido' => 0,
        'semana' => $datos[$i]->id_semana
]);

A continuación, se muestra un ejemplo de una notificación recibida por el tutor del centro de estudios, debida a que una alumna ha subido una hoja de seguimiento.

notifi