Fix: los informes adjuntos eliminados dejan marca en el listado de la ficha
Qué
El listado de informes adjuntos de un estudiante (el que usan los funcionarios) ahora incluye los informes eliminados, como marca y sin URL de descarga.
Por qué
Al eliminar un informe, desaparecía de la ficha sin dejar rastro visible. La información seguía en la base y en la auditoría, pero quien abre la ficha no tenía forma de saber que hubo un informe ahí. Es el mismo criterio que se aplicó a los comentarios normales de instancia: lo eliminado deja una marca en la pantalla y la auditoría queda para el detalle.
Cambios
-
InformeAdjuntoService.listarPorEstudiante: devuelve los informesACTIVOyELIMINADO. -
InformeAdjuntoMapper.toDto: en un informeELIMINADO,urlDescargava ennull. El nombre y las fechas se mantienen;updatedAtes la fecha de eliminación. -
InformeAdjuntoController: el listado se ordena porcreatedAtpor defecto, para que un informe eliminado no cambie de posición. -
InformeAdjuntoRepository: nuevofindByEstudianteIdUsuarioAndEstadoIn. - Tests: caso nuevo en el mapper (eliminado sin URL) y ajuste de los de listar del service y de seguridad.
No cambia:
- El listado del propio estudiante (
GET /informes-adjuntos/mios) sigue trayendo solo los activos. - Obtener por id, descargar y eliminar siguen operando solo sobre informes activos: sobre uno eliminado responden 404.
- Los permisos: adjuntar sigue exigiendo
ADJUNTAR_INFORME, que el rol Estudiante no tiene.
Cómo probar
-
GET /informes-adjuntos?idUsuario={id}con un usuario conVER_INFORME: lista los informes del estudiante. - Eliminar uno con
DELETE /informes-adjuntos/{id}y volver a listar: sigue en la lista, en la misma posición, conestado: "ELIMINADO"yurlDescarga: null. -
GET /informes-adjuntos/{id}/descargarsobre el eliminado: 404. - Como el estudiante dueño,
GET /informes-adjuntos/mios: el informe eliminado no aparece.
Tests: ./mvnw test -Dtest='InformeAdjunto*Test'
Cambios en BD
Ninguno.