From 01dc9393d1f9dee1998c6c966e0f03f28067baff Mon Sep 17 00:00:00 2001 From: Joel Date: Tue, 9 Nov 2021 17:12:10 -0300 Subject: [PATCH] paginacion en listado postulante --- curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java | 8 ++++---- curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java | 12 ++++++++++-- curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java | 6 +++--- curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java | 4 +++- curriculumsearch/src/main/webapp/jsp/postulantes.jsp | 21 +++++++++++++++++++++ 5 files changed, 41 insertions(+), 10 deletions(-) diff --git a/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java b/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java index 4bd33ca..50f80c0 100644 --- a/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java +++ b/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java @@ -10,11 +10,11 @@ public class PostulanteListaDTO { private String nombre; private String apellido; private Disponibilidad disponibilidad; - private Integer nivelIngles; + private Long nivelIngles; private Long experienciaMeses; private List tecnologias; public PostulanteListaDTO(Long id, String nombre, String apellido, Disponibilidad disponibilidad, - Integer nivelIngles, Long experienciaMeses, List tecnologias) { + Long nivelIngles, Long experienciaMeses, List tecnologias) { this.id = id; this.nombre = nombre; this.apellido = apellido; @@ -47,10 +47,10 @@ public class PostulanteListaDTO { public void setDisponibilidad(Disponibilidad disponibilidad) { this.disponibilidad = disponibilidad; } - public Integer getNivelIngles() { + public Long getNivelIngles() { return nivelIngles; } - public void setNivelIngles(Integer nivelIngles) { + public void setNivelIngles(Long nivelIngles) { this.nivelIngles = nivelIngles; } public Long getExperienciaMeses() { diff --git a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java index 9a09b88..5d4c9c8 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java @@ -30,6 +30,9 @@ import com.roshka.utils.Helper; import org.hibernate.jpa.TypedParameterValue; import org.hibernate.type.StringType; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -76,12 +79,16 @@ public class PostulanteController { @RequestParam(required = false)Long lvlEng, @RequestParam(required = false)Long lvlTec, @RequestParam(required = false)Long instId, - @RequestParam(required = false)Long expInMonths + @RequestParam(required = false)Long expInMonths, + @RequestParam(defaultValue = "0")Integer nroPagina ) { + final Integer CANTIDAD_POR_PAGINA = 5; + Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA); model.addAttribute("tecnologias", tecRepo.findAll()); model.addAttribute("disponibilidades", Disponibilidad.values()); model.addAttribute("institucionesEducativas", institucionRepository.findAll()); - List postulantes = post.postulantesMultiFiltro(nombre == null || nombre.trim().isEmpty() ? new TypedParameterValue(StringType.INSTANCE,null) : new TypedParameterValue(StringType.INSTANCE,"%"+nombre+"%"), dispo, lvlEng, lvlTec, tecId, instId); + Page postulantesPag = post.postulantesMultiFiltro(nombre == null || nombre.trim().isEmpty() ? new TypedParameterValue(StringType.INSTANCE,null) : new TypedParameterValue(StringType.INSTANCE,"%"+nombre+"%"), dispo, lvlEng, lvlTec, tecId, instId,page); + List postulantes = postulantesPag.getContent(); List postulantesDTO = new ArrayList<>(); for (Postulante postulante : postulantes) { @@ -95,6 +102,7 @@ public class PostulanteController { postulantesDTO.add(new PostulanteListaDTO(postulante.getId(), postulante.getNombre(), postulante.getApellido(), postulante.getDisponibilidad(), postulante.getNivelIngles(), expTotal, postulante.getTecnologias())); } + model.addAttribute("pages", postulantesPag.getTotalPages()); model.addAttribute("postulantes", postulantesDTO); return "postulantes"; } diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java b/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java index 6a751d2..2196f91 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java @@ -61,7 +61,7 @@ public class Postulante { @Column(name = "nivel_ingles") @Min(value = 1) @Max(value = 5) - private Integer nivelIngles; + private Long nivelIngles; @Column(name = "curriculum") private String curriculum; @@ -175,11 +175,11 @@ public class Postulante { this.resumen = resumen; } - public Integer getNivelIngles() { + public Long getNivelIngles() { return nivelIngles; } - public void setNivelIngles(Integer nivelIngles) { + public void setNivelIngles(Long nivelIngles) { this.nivelIngles = nivelIngles; } diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java index fa18964..a5caee5 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java @@ -3,6 +3,8 @@ package com.roshka.repositorio; import java.util.List; import org.hibernate.jpa.TypedParameterValue; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; @@ -50,6 +52,6 @@ public interface PostulanteRepository extends JpaRepository { "and (pt.nivel >= ?4 or ?4 is null) "+ "and (pt.tecnologia.id = ?5 or ?5 is null) "+ " and (e.institucion.id = ?6 or ?6 is null ) ") - public List postulantesMultiFiltro(TypedParameterValue nombre, Disponibilidad disponibilidad, Long nivelInges, Long nivel, Long tecnoId, Long instId); + public Page postulantesMultiFiltro(TypedParameterValue nombre, Disponibilidad disponibilidad, Long nivelInges, Long nivel, Long tecnoId, Long instId, Pageable pageable); } diff --git a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp index c2c85e2..dfb4453 100644 --- a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp +++ b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp @@ -91,7 +91,17 @@ Ver + + +
+
+ \ No newline at end of file -- libgit2 0.26.0