From 8749e4646ab019897c6de12ff0d456863f735020 Mon Sep 17 00:00:00 2001 From: vicsash Date: Thu, 23 May 2024 20:27:55 +0200 Subject: [PATCH] =?UTF-8?q?Fallo=20de=20busqueda=20dinamica=20en=20alumnos?= =?UTF-8?q?=20encontrado=20y=20resualto,=20cambios=20a=20css=20generales?= =?UTF-8?q?=20y=20mas=20especificos.=20CAmbios=20mas=20especificos=20eran?= =?UTF-8?q?=20a=20alumnos.html=20a=20tama=C3=B1os=20de=20los=20td=20para?= =?UTF-8?q?=20que=20comparten=20mejor.=20Tambian=20cambios=20a=20ofertas?= =?UTF-8?q?=20y=20empresas=20como=20tienen=20campos=20similares=20al=20alu?= =?UTF-8?q?mno(=20campos=20keywords=20y=20skills)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/BuscadorController.java | 14 ++++- .../proyectofinal/models/empresas/Alumno.java | 5 +- .../empresas/AlumnoRepository.java | 11 ++-- .../empresas/OfertaRepository.java | 2 +- .../servicios/empresa/AlumnoService.java | 6 -- src/main/resources/static/style.css | 13 ++--- .../resources/templates/list/alumnos.html | 58 +++++++++++-------- .../resources/templates/list/empresas.html | 12 +++- .../resources/templates/list/ofertas.html | 6 +- 9 files changed, 76 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/example/proyectofinal/controllers/BuscadorController.java b/src/main/java/com/example/proyectofinal/controllers/BuscadorController.java index 2926b12..c70b4a9 100644 --- a/src/main/java/com/example/proyectofinal/controllers/BuscadorController.java +++ b/src/main/java/com/example/proyectofinal/controllers/BuscadorController.java @@ -460,7 +460,7 @@ public class BuscadorController { } else { alumnos = alumnoService.searchCustom(querySearchBar,query, secondaryOption); } - + //printTest(alumnos); for (Alumno alumno : alumnos) { List skillsData = alumnoRepository.findSkillsByAlumnoId(alumno.getId()); Set skills = new HashSet<>(); @@ -472,9 +472,21 @@ public class BuscadorController { } alumno.setSkills(skills); } + //printTest(alumnos); return ResponseEntity.ok(alumnos); } + private void printTest (List alumnos){ + for (Alumno alumno : alumnos) { + System.out.println("----------------------------"); + System.out.println(alumno.getNombre()); + for(Skill skill : alumno.getSkills()) { + System.out.println(skill.getNombre()); + } + System.out.println("----------------------------"); + } + + } @GetMapping("/ofertas/search") public ResponseEntity> searchOfertas(@RequestParam String querySearchBar, @RequestParam String query, @RequestParam String secondaryOption) { diff --git a/src/main/java/com/example/proyectofinal/models/empresas/Alumno.java b/src/main/java/com/example/proyectofinal/models/empresas/Alumno.java index 85879b7..4c106a5 100644 --- a/src/main/java/com/example/proyectofinal/models/empresas/Alumno.java +++ b/src/main/java/com/example/proyectofinal/models/empresas/Alumno.java @@ -12,11 +12,10 @@ import java.util.Date; import java.util.Set; @Entity +@Data @AllArgsConstructor @NoArgsConstructor -//@Getter -//@Setter -@Data + @Table(name = "alumnos") public class Alumno { @Id diff --git a/src/main/java/com/example/proyectofinal/repositories/empresas/AlumnoRepository.java b/src/main/java/com/example/proyectofinal/repositories/empresas/AlumnoRepository.java index 663a95c..e6712bc 100644 --- a/src/main/java/com/example/proyectofinal/repositories/empresas/AlumnoRepository.java +++ b/src/main/java/com/example/proyectofinal/repositories/empresas/AlumnoRepository.java @@ -28,16 +28,17 @@ public interface AlumnoRepository extends JpaRepository { void deleteSkillByAlumnoId(Long id); @Query(value = "Select s.* from skills s " + - "inner join oferta_skill os on s.id = os.fk_skills " + - "where os.fk_oferta =?1", nativeQuery = true) - List findSkillsByAlumnoId(long id); + "inner join alumno_skill os on s.id = os.fk_skills " + + "where os.fk_alumno =?1", nativeQuery = true) + List findSkillsByAlumnoId(Long id); @Query("SELECT a FROM Alumno a JOIN a.skills s WHERE a.nombre LIKE %:query% OR a.apellido " + "LIKE %:query% OR a.apellido2 LIKE %:query% OR a.correo LIKE %:query% OR a.correo2 " + "LIKE %:query% OR a.nacionalidad LIKE %:query% OR a.genero LIKE %:query% OR a.dni " + - "LIKE %:query% OR a.nia LIKE %:query% OR s.nombre LIKE %:query%") - List search(String query); + "LIKE %:query% OR a.nia LIKE %:query% OR s.nombre LIKE %:query% OR a.ciclo.nombre " + + "LIKE %:query% OR a.keywords LIKE %:query% OR s.nombre LIKE %:query%") + List search(@Param("query") String query); @Query("SELECT a FROM Alumno a WHERE a.nia = ?1") diff --git a/src/main/java/com/example/proyectofinal/repositories/empresas/OfertaRepository.java b/src/main/java/com/example/proyectofinal/repositories/empresas/OfertaRepository.java index 98ebb5a..c9d4049 100644 --- a/src/main/java/com/example/proyectofinal/repositories/empresas/OfertaRepository.java +++ b/src/main/java/com/example/proyectofinal/repositories/empresas/OfertaRepository.java @@ -32,7 +32,7 @@ public interface OfertaRepository extends JpaRepository { @Query(value = "SELECT s.* FROM skills s INNER JOIN " + "oferta_skill os ON s.id = os.fk_skills " + "WHERE os.fk_oferta = ?1", nativeQuery = true) - public List findSkillsByOfertaId(Long id); + List findSkillsByOfertaId(Long id); @Query("SELECT o FROM Oferta o JOIN o.skills s " + "WHERE o.nombre LIKE %:query% OR o.descripcion " + diff --git a/src/main/java/com/example/proyectofinal/servicios/empresa/AlumnoService.java b/src/main/java/com/example/proyectofinal/servicios/empresa/AlumnoService.java index 739e18d..234130b 100644 --- a/src/main/java/com/example/proyectofinal/servicios/empresa/AlumnoService.java +++ b/src/main/java/com/example/proyectofinal/servicios/empresa/AlumnoService.java @@ -140,20 +140,14 @@ public class AlumnoService implements IAlumno{ query = query.trim().toLowerCase(); if (secondaryOption.equals("Nombre")) { listEmpPrime.addAll(alumnoRepository.alumnosByNombreCust(query)); - } else if (secondaryOption.equals("Apellido")) { listEmpPrime.addAll(alumnoRepository.alumnosByApellidoCust(query)); - } else if (secondaryOption.equals("Ciclo")) { - System.out.println("TEST QUERY: " + query); listEmpPrime.addAll(alumnoRepository.alumnosByCicloCust(query)); - } else if (secondaryOption.equals("Keywords")) { listEmpPrime.addAll(alumnoRepository.alumnosByKeywordsCust(query)); - } else if (secondaryOption.equals("Nia")) { listEmpPrime.addAll(alumnoRepository.alumnosByNiaCust(query)); - } else if (secondaryOption.equals("Dni")) { listEmpPrime.addAll(alumnoRepository.alumnosByDniCust(query)); } diff --git a/src/main/resources/static/style.css b/src/main/resources/static/style.css index 7310381..870fd8c 100644 --- a/src/main/resources/static/style.css +++ b/src/main/resources/static/style.css @@ -20,7 +20,7 @@ th { background-color: #f2f2f2; color: black; padding: 10px; - border: 1px solid #ddd; + border: 2px solid #ddd; } h1 { @@ -51,21 +51,16 @@ h1 { width: 300px !important; /* Set a specific width */ } .table td{ - border: 1px solid #ddd; + border: 2px solid #ddd; } -.table td.keywords-cell { +.table td.scrollable-cell .scrollable-content { overflow-y: auto !important; /* Enables vertical scrollbar if content exceeds cell height */ - text-overflow: clip !important; white-space: normal; /* Allows text to wrap to next line */ - max-height: 25px !important;/* Set a specific height */ + max-height: 25px !important; /* Set a specific height */ } .table tr td:first-child { min-width: 150px !important; } -.table td.nombre-cell { - min-width: 225px !important; /* Adjust this value to your needs */ - text-align: left; /* Aligns the content to the left */ -} @media screen and (max-width: 600px) { .table { } diff --git a/src/main/resources/templates/list/alumnos.html b/src/main/resources/templates/list/alumnos.html index 1141190..16d1ab1 100644 --- a/src/main/resources/templates/list/alumnos.html +++ b/src/main/resources/templates/list/alumnos.html @@ -8,6 +8,13 @@ Lista: Alumnos @@ -56,7 +63,7 @@ - Numero de documento + Num Doc @@ -92,10 +99,12 @@ - - - - [[${alumno.nombre}]] + +
+ + + [[${alumno.nombre}]] +
[[${alumno.apellido}]] [[${alumno.apellido2}]] @@ -106,10 +115,20 @@ [[${alumno.correo}]] [[${alumno.correo2}]] [[${alumno.nacionalidad}]] - [[${alumno.keywords}]] - [[${alumno.ciclo.nombre}]] - + +
+ [[${alumno.keywords}]] +
+ + +
+ [[${alumno.ciclo.nombre}]] +
+ + +
+
@@ -283,10 +302,16 @@ ${alumno.correo} ${alumno.correo2} ${alumno.nacionalidad} - ${alumno.keywords} - ${alumno.ciclo.nombre} +
+ ${alumno.keywords} +
+ + ${alumno.ciclo.nombre} + +
${alumno.skills.map(skill => skill.nombre).join(', ')} +
`; tableBody.appendChild(row); @@ -346,19 +371,6 @@ } }); }); - - /////////////////MOUSE SROLL FOR KEYWORD AND SKILLS////////////////////// - // Select all elements with the 'keywords-cell' class - const cells = document.querySelectorAll('.keywords-cell'); - // Add a 'wheel' event listener to each cell - cells.forEach(cell => { - cell.addEventListener('wheel', function(e) { - // Prevent the default behavior (vertical scroll) - e.preventDefault(); - // Scroll horizontally instead - this.scrollLeft += e.deltaY; - }, { passive: false }); // Use passive: false to make preventDefault() work - }); \ No newline at end of file diff --git a/src/main/resources/templates/list/empresas.html b/src/main/resources/templates/list/empresas.html index 9e6218e..920d465 100644 --- a/src/main/resources/templates/list/empresas.html +++ b/src/main/resources/templates/list/empresas.html @@ -68,7 +68,11 @@ [[${empresa.cif}]] [[${empresa.correo}]] [[${empresa.telefono}]] - [[${empresa.keywords}]] + +
+ [[${empresa.keywords}]] +
+ [[${empresa.sector.nombre}]] @@ -242,7 +246,11 @@ ${empresa.cif} ${empresa.correo} ${empresa.telefono} - ${empresa.keywords} + +
+ ${empresa.keywords} +
+ ${empresa.sector.nombre} `; tableBody.appendChild(row); diff --git a/src/main/resources/templates/list/ofertas.html b/src/main/resources/templates/list/ofertas.html index 8ce10fe..acd1c92 100644 --- a/src/main/resources/templates/list/ofertas.html +++ b/src/main/resources/templates/list/ofertas.html @@ -67,7 +67,9 @@ [[${oferta.sucursal.nombre}]] [[${oferta.ciclo.nombre}]] +
+
@@ -242,8 +244,10 @@ ${oferta.descripcion} ${oferta.sucursal.nombre} ${oferta.ciclo.nombre} - + +
${oferta.skills.map(skill => skill.nombre).join(', ')} +
`; tableBody.appendChild(row);