diff --git a/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java b/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java index bfc63e9..9ecf6e9 100644 --- a/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java +++ b/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java @@ -3,7 +3,6 @@ package com.roshka.DTO; import java.util.List; import com.roshka.modelo.ConvocatoriaCargo; -import com.roshka.modelo.Disponibilidad; import com.roshka.modelo.EstadoPostulante; import com.roshka.modelo.PostulanteTecnologia; @@ -11,19 +10,17 @@ public class PostulanteListaDTO { private Long id; private String nombre; private String apellido; - private Disponibilidad disponibilidad; private Long nivelIngles; private Long experienciaMeses; private List tecnologias; private EstadoPostulante estado; private List convocatoria; - public PostulanteListaDTO(Long id, String nombre, String apellido, Disponibilidad disponibilidad, + public PostulanteListaDTO(Long id, String nombre, String apellido, Long nivelIngles, Long experienciaMeses, List tecnologias,EstadoPostulante estado,List convocatoria) { this.id = id; this.nombre = nombre; this.apellido = apellido; - this.disponibilidad = disponibilidad; this.nivelIngles = nivelIngles; this.experienciaMeses = experienciaMeses; this.tecnologias = tecnologias; @@ -48,12 +45,6 @@ public class PostulanteListaDTO { public void setApellido(String apellido) { this.apellido = apellido; } - public Disponibilidad getDisponibilidad() { - return disponibilidad; - } - public void setDisponibilidad(Disponibilidad disponibilidad) { - this.disponibilidad = disponibilidad; - } public Long getNivelIngles() { return nivelIngles; } diff --git a/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java b/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java index 8d2bfdd..c45afb1 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java @@ -36,11 +36,16 @@ public class CargoController { public String menuCargos(Model model,@RequestParam(required = false) String nombre,@RequestParam(defaultValue = "0")Integer nroPagina) { final Integer CANTIDAD_POR_PAGINA = 10; Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id")); - Page CargoPag=cargoRepo.findAllCargo(page); - List cargo = CargoPag.getContent(); - model.addAttribute("pages", CargoPag.getTotalPages()); - if(nombre == null || nombre.trim().isEmpty()) model.addAttribute("cargos", cargo); - else model.addAttribute("cargos", cargoRepo.findByNombreContainingIgnoreCase(nombre)); + if(nombre == null || nombre.trim().isEmpty()) { + Page CargoPag=cargoRepo.findAll(page); + model.addAttribute("cargos", CargoPag.getContent()); + model.addAttribute("pages", CargoPag.getTotalPages()); + } + else { + Page CargoPag=cargoRepo.findByNombreContainingIgnoreCase(nombre,page); + model.addAttribute("pages", CargoPag.getTotalPages()); + model.addAttribute("cargos", CargoPag.getContent()); + } return "cargos"; } diff --git a/curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java b/curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java index 5b41f69..110aabb 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java @@ -18,6 +18,10 @@ import org.hibernate.type.IntegerType; import org.hibernate.type.LongType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; @@ -43,12 +47,18 @@ public class ConvocatoriaController { @RequestMapping("/convocatorias") public String menuConvocatorias(Model model,RedirectAttributes redirectAttrs, @RequestParam(required = false) Long cargoId, - @RequestParam(required = false) Integer isOpen//1: true, 0: false + @RequestParam(required = false) EstadoConvocatoria estado,//1: true, 0: false + @RequestParam(defaultValue = "0")Integer nroPagina ) { + final Integer CANTIDAD_POR_PAGINA = 10; + Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id")); model.addAttribute("cargos", cargoRepo.findAll()); + Page convoPag=convoRepo.findByCargoAndEstado(cargoId,estado,page); + model.addAttribute("convocatorias", convoPag.getContent()); + model.addAttribute("pages", convoPag.getTotalPages()); + model.addAttribute("estados", EstadoConvocatoria.values()); - model.addAttribute("convocatorias", convoRepo.f1ndByCargoAndEstado(new TypedParameterValue(LongType.INSTANCE, cargoId), new Date(), new TypedParameterValue(IntegerType.INSTANCE, isOpen))); //model.addAttribute("convocatorias",cargoId==null? convoRepo.findAll() : convoRepo.findByCargoId(cargoId)); return "convocatorias"; } diff --git a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java index 8b4b7aa..8108fe4 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java @@ -10,7 +10,6 @@ import javax.validation.ConstraintViolationException; import com.roshka.modelo.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.roshka.modelo.Disponibilidad; import com.roshka.modelo.EstadoCivil; import com.roshka.modelo.Nacionalidad; import com.roshka.modelo.Postulante; @@ -29,6 +28,8 @@ import org.hibernate.jpa.TypedParameterValue; import org.hibernate.type.IntegerType; import org.hibernate.type.LongType; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -77,13 +78,13 @@ public class PostulanteController { @RequestMapping(value = "/work-with-us",method = RequestMethod.GET) public String getFormPostulante(Model model){ model.addAttribute("tecnologias", tecRepo.findAll()); - model.addAttribute("disponibilidades", Disponibilidad.values()); model.addAttribute("tiposDeEstudio", TipoDeEstudio.values()); model.addAttribute("estadosEstudio", EstadoEstudio.values()); model.addAttribute("estadosCiviles", EstadoCivil.values()); model.addAttribute("nacionalidades", Nacionalidad.values()); model.addAttribute("tiposExperencia", TipoExperiencia.values()); - model.addAttribute("CargosDisponibles", convoRepo.f1ndByCargoAndEstado(new TypedParameterValue(LongType.INSTANCE, null), new Date(), new TypedParameterValue(IntegerType.INSTANCE, 1))); + model.addAttribute("CargosDisponibles", + convoRepo.findByCargoAndEstado(null, EstadoConvocatoria.abierto, PageRequest.of(0,Integer.MAX_VALUE,Sort.by("id"))).getContent()); try { model.addAttribute("ciudades", new ObjectMapper().writeValueAsString(ciuRepo.findAll())); } catch (JsonProcessingException er) { diff --git a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteRRHHController.java b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteRRHHController.java index faf1092..2f526d6 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteRRHHController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteRRHHController.java @@ -15,7 +15,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.roshka.DTO.PostulanteListaDTO; import com.roshka.modelo.*; -import com.roshka.modelo.Disponibilidad; import com.roshka.modelo.EstadoPostulante; import com.roshka.modelo.Postulante; import com.roshka.repositorio.*; @@ -91,7 +90,6 @@ public class PostulanteRRHHController { @RequestParam(required = false)Long tecId, @RequestParam(required = false)String nombre, @RequestParam(required = false)EstadoPostulante estado, - @RequestParam(required = false)Disponibilidad dispo, @RequestParam(required = false)Long lvlEng, @RequestParam(required = false)Long lvlTec, @RequestParam(required = false)Long instId, @@ -100,10 +98,9 @@ public class PostulanteRRHHController { @RequestParam(required = false)Long convId, @RequestParam(defaultValue = "0")Integer nroPagina ) throws IOException { - final Integer CANTIDAD_POR_PAGINA = 5; + final Integer CANTIDAD_POR_PAGINA = 10; Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id")); model.addAttribute("tecnologias", tecRepo.findAll()); - model.addAttribute("disponibilidades", Disponibilidad.values()); model.addAttribute("institucionesEducativas", institucionRepository.findAll()); model.addAttribute("estadoP", EstadoPostulante.values()); @@ -120,7 +117,7 @@ public class PostulanteRRHHController { nombre == null || nombre.trim().isEmpty() ? new TypedParameterValue(StringType.INSTANCE,null) : new TypedParameterValue(StringType.INSTANCE,"%"+nombre+"%"), - dispo, lvlEng, lvlTec, tecId, instId,cargoId,page,estado,convId); + lvlEng, lvlTec, tecId, instId,cargoId,page,estado,convId); model.addAttribute("numeroOcurrencias", postulantesPag.getTotalElements()); List postulantes = postulantesPag.getContent(); List postulantesDTO = new ArrayList<>(); @@ -133,7 +130,7 @@ public class PostulanteRRHHController { expTotal += Helper.getMonthsDifference(experiencia.getFechaDesde(), experiencia.getFechaHasta()); } if(expInMonths != null && expInMonths > expTotal) continue; - postulantesDTO.add(new PostulanteListaDTO(postulante.getId(), postulante.getNombre(), postulante.getApellido(), postulante.getDisponibilidad(), postulante.getNivelIngles(), expTotal, postulante.getTecnologias(),postulante.getEstadoPostulante(),postulante.getPostulaciones())); + postulantesDTO.add(new PostulanteListaDTO(postulante.getId(), postulante.getNombre(), postulante.getApellido(), postulante.getNivelIngles(), expTotal, postulante.getTecnologias(),postulante.getEstadoPostulante(),postulante.getPostulaciones())); } model.addAttribute("pages", postulantesPag.getTotalPages()); @@ -151,7 +148,6 @@ public class PostulanteRRHHController { @RequestParam(required = false)Long tecId, @RequestParam(required = false)String nombre, @RequestParam(required = false)EstadoPostulante estado, - @RequestParam(required = false)Disponibilidad dispo, @RequestParam(required = false)Long lvlEng, @RequestParam(required = false)Long lvlTec, @RequestParam(required = false)Long instId, @@ -165,7 +161,7 @@ public class PostulanteRRHHController { nombre == null || nombre.trim().isEmpty() ? new TypedParameterValue(StringType.INSTANCE,null) : new TypedParameterValue(StringType.INSTANCE,"%"+nombre+"%"), - dispo, lvlEng, lvlTec, tecId, instId,cargoId,page,estado,convId); + lvlEng, lvlTec, tecId, instId,cargoId,page,estado,convId); List postulantes = postulantesPag.getContent(); List postulantesDTO = new ArrayList<>(); @@ -177,7 +173,7 @@ public class PostulanteRRHHController { expTotal += Helper.getMonthsDifference(experiencia.getFechaDesde(), experiencia.getFechaHasta()); } if(expInMonths != null && expInMonths > expTotal) continue; - postulantesDTO.add(new PostulanteListaDTO(postulante.getId(), postulante.getNombre(), postulante.getApellido(), postulante.getDisponibilidad(), postulante.getNivelIngles(), expTotal, postulante.getTecnologias(),postulante.getEstadoPostulante(),postulante.getPostulaciones())); + postulantesDTO.add(new PostulanteListaDTO(postulante.getId(), postulante.getNombre(), postulante.getApellido(), postulante.getNivelIngles(), expTotal, postulante.getTecnologias(),postulante.getEstadoPostulante(),postulante.getPostulaciones())); } response.setContentType("application/octet-stream"); diff --git a/curriculumsearch/src/main/java/com/roshka/controller/TecnologiaController.java b/curriculumsearch/src/main/java/com/roshka/controller/TecnologiaController.java index 9c89632..3dc7872 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/TecnologiaController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/TecnologiaController.java @@ -47,11 +47,17 @@ public String addtecnologiaView(Model model,@PathVariable(required = false) Long public String menuTecnologias(Model model,@RequestParam(required = false) String nombre,@RequestParam(defaultValue = "0")Integer nroPagina) { final Integer CANTIDAD_POR_PAGINA = 10; Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id")); - Page tecnologiaPag=tecRepo.findAllTecnologia(page); - List tecnologia = tecnologiaPag.getContent(); - model.addAttribute("pages", tecnologiaPag.getTotalPages()); - if(nombre == null || nombre.trim().isEmpty()) model.addAttribute("tecnologias", tecnologia); - else model.addAttribute("tecnologias", tecRepo.findByNombreContainingIgnoreCase(nombre)); + + if(nombre == null || nombre.trim().isEmpty()) { + Page tecnologiaPag=tecRepo.findAllTecnologia(page); + model.addAttribute("tecnologias", tecnologiaPag.getContent()); + model.addAttribute("pages", tecnologiaPag.getTotalPages()); + } + else { + Page tecnologiaPag=tecRepo.findByNombreContainingIgnoreCase(nombre,page); + model.addAttribute("pages", tecnologiaPag.getTotalPages()); + model.addAttribute("tecnologias", tecnologiaPag.getContent()); + } return "tecnologias"; } diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java b/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java index 932a344..ff93814 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java @@ -26,22 +26,6 @@ public class Cargo { @Column(name = "nombre") private String nombre; - public Long getId() { - return this.id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getNombre() { - return this.nombre; - } - - public void setNombre(String nombre) { - this.nombre = nombre; - } - @OneToMany(mappedBy = "cargo") @JsonManagedReference private List convocatorias; diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/Disponibilidad.java b/curriculumsearch/src/main/java/com/roshka/modelo/Disponibilidad.java deleted file mode 100644 index 96caf84..0000000 --- a/curriculumsearch/src/main/java/com/roshka/modelo/Disponibilidad.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.roshka.modelo; - -import com.fasterxml.jackson.annotation.JsonValue; - -public enum Disponibilidad { - TIEMPO_COMPLETO("C","Tiempo Completo"), PARCIAL("P","Parcial"); - - private String code; - private String descripcion; - - private Disponibilidad(String code, String descripcion) { - this.code = code; - this.descripcion = descripcion; - } - - @JsonValue - public String getCode() { - return code; - } - - public String getDescripcion() { - return descripcion; - } -} diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/DisponibilidadConverter.java b/curriculumsearch/src/main/java/com/roshka/modelo/DisponibilidadConverter.java deleted file mode 100644 index 93b5f5f..0000000 --- a/curriculumsearch/src/main/java/com/roshka/modelo/DisponibilidadConverter.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.roshka.modelo; - -import java.util.Arrays; - -import javax.persistence.AttributeConverter; -import javax.persistence.Converter; - -@Converter(autoApply = true) -public class DisponibilidadConverter implements AttributeConverter, org.springframework.core.convert.converter.Converter { - - @Override - public String convertToDatabaseColumn(Disponibilidad modalidad) { - if (modalidad == null) { - return null; - } - return modalidad.getCode(); - } - - @Override - public Disponibilidad convertToEntityAttribute(String code) { - if (code == null) { - return null; - } - - return Arrays.stream(Disponibilidad.values()) - .filter(c -> c.getCode().equals(code)) - .findFirst() - .orElseThrow(IllegalArgumentException::new); - } - - @Override - public Disponibilidad convert(String arg0) { - return convertToEntityAttribute(arg0); - } -} diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/EstadoCivil.java b/curriculumsearch/src/main/java/com/roshka/modelo/EstadoCivil.java index f2d4638..6435060 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/EstadoCivil.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/EstadoCivil.java @@ -3,7 +3,7 @@ package com.roshka.modelo; import com.fasterxml.jackson.annotation.JsonValue; public enum EstadoCivil { - SOLTERO("Soltero/a"),CONCUBINADO("Concubinado/a"),CASADO("Casado/a"),VIUDO("Viudo/a"),DIVORCIADO("Divorciado/a"); + SOLTERO("Soltero"),CONCUBINADO("Concubinado"),CASADO("Casado"),VIUDO("Viudo"),DIVORCIADO("Divorciado"); private String descripcion; private EstadoCivil(String descripcion) { diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java b/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java index 6d037a2..8e53fa6 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/Postulante.java @@ -93,8 +93,6 @@ public class Postulante { private TipoDocumento tipoDocumento; - @Column(name = "disponibilidad", length = 2) - private Disponibilidad disponibilidad; @Column(name = "tecnologia_otros") private String tecnologiaOtros; diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java index dd7c024..30734d1 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java @@ -10,7 +10,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; public interface CargoRepository extends JpaRepository{ - public List findByNombreContainingIgnoreCase(String nombre); + public Page findByNombreContainingIgnoreCase(String nombre, Pageable pageable); public boolean existsByNombreIgnoreCase(String nombre); diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/ConvocatoriaRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/ConvocatoriaRepository.java index 726a7ae..09d3f37 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/ConvocatoriaRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/ConvocatoriaRepository.java @@ -4,8 +4,11 @@ import java.util.Date; import java.util.List; import com.roshka.modelo.ConvocatoriaCargo; +import com.roshka.modelo.EstadoConvocatoria; 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; @@ -15,8 +18,13 @@ public interface ConvocatoriaRepository extends JpaRepository findByCargoId(Long cargoId); //@Query(value="selec x from ConvocatoriaCargo x where (x.fechaFinal > ?1)",nativeQuery = true) //public List findConvocatoriaCargoByCargo(Date fechaFinal); - @Query("select c from ConvocatoriaCargo c where ( ?1 is null and ?3 is null) or ( ( ( ((c.fechaFin > ?2 or c.fechaFin=null) and ?3 = 1) or ((c.fechaFin < ?2 ) and ?3 = 0)) or ?3 is null ) and (c.cargoId = ?1 or ?1 is null) )") - public List f1ndByCargoAndEstado(TypedParameterValue cargoId, Date fecha, TypedParameterValue isOpen); + /* @Query("select c from ConvocatoriaCargo c where ( ?1 is null and ?3 is null) or ( ( ( ((c.fechaFin > ?2 or c.fechaFin=null) and ?3 = 1) or ((c.fechaFin < ?2 ) and ?3 = 0)) or ?3 is null ) and (c.cargoId = ?1 or ?1 is null) )") + public Page f1ndByCargoAndEstado(TypedParameterValue cargoId, Date fecha, TypedParameterValue isOpen, Pageable page); */ + + @Query("select c from ConvocatoriaCargo c "+ + "where (c.cargoId = ?1 or ?1 is null) and "+ + "(c.estado = ?2 or ?2 is null)") + public Page findByCargoAndEstado(Long cargoId, EstadoConvocatoria estado, Pageable page); @Query("SELECT c FROM ConvocatoriaCargo c WHERE (cargoId=?1)") public List filtrarConvocatoriasPorCargo(Long cargoId); diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java index 72d9b4d..430f968 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java @@ -12,7 +12,6 @@ import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import com.roshka.modelo.ConvocatoriaCargo; -import com.roshka.modelo.Disponibilidad; import com.roshka.modelo.EstadoPostulante; import com.roshka.modelo.Postulante; @@ -55,15 +54,15 @@ public interface PostulanteRepository extends JpaRepository { "left join p.tecnologias pt " + "left join p.postulaciones conv " + "where (?1 is null or lower(p.nombre) LIKE lower(?1) or lower(p.apellido) LIKE lower(?1) ) " + - "and (p.disponibilidad = ?2 or ?2 is null) " + - "and (p.nivelIngles >= ?3 or ?3 is null) "+ - "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 ) "+ - " and (conv.cargoId = ?7 or ?7 is null ) "+ - "and (p.estadoPostulante = ?8 or ?8 is null) "+ - " and (conv.id=?9 or ?9 is null ) ") - public Page postulantesMultiFiltro(TypedParameterValue nombre, Disponibilidad disponibilidad, Long nivelInges, Long nivel, Long tecnoId, Long instId,Long cargoId, Pageable pageable, EstadoPostulante estado, Long convo); + + "and (p.nivelIngles >= ?2 or ?2 is null) "+ + "and (pt.nivel >= ?3 or ?3 is null) "+ + "and (pt.tecnologia.id = ?4 or ?4 is null) "+ + " and (e.institucion.id = ?5 or ?5 is null ) "+ + " and (conv.cargoId = ?6 or ?6 is null ) "+ + "and (p.estadoPostulante = ?7 or ?7 is null) "+ + " and (conv.id=?8 or ?8 is null ) ") + public Page postulantesMultiFiltro(TypedParameterValue nombre, Long nivelInges, Long nivel, Long tecnoId, Long instId,Long cargoId, Pageable pageable, EstadoPostulante estado, Long convo); @Transactional @Modifying diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/TecnologiaRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/TecnologiaRepository.java index 8ed77e1..29e6b4c 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/TecnologiaRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/TecnologiaRepository.java @@ -11,7 +11,7 @@ import com.roshka.modelo.Tecnologia; public interface TecnologiaRepository extends JpaRepository { - public List findByNombreContainingIgnoreCase(String nombre); + public Page findByNombreContainingIgnoreCase(String nombre, Pageable pageable); public boolean existsByNombreIgnoreCase(String nombre); diff --git a/curriculumsearch/src/main/resources/json/postulante.json b/curriculumsearch/src/main/resources/json/postulante.json index bbbad5d..015ecfb 100644 --- a/curriculumsearch/src/main/resources/json/postulante.json +++ b/curriculumsearch/src/main/resources/json/postulante.json @@ -13,7 +13,7 @@ "telefono": "(950) 417-3681", "fechaNacimiento": "1986-08-16", "nivelIngles": 1, - "disponibilidad": "C", + "experiencias": [ { @@ -72,7 +72,7 @@ "telefono": "(866) 560-2541", "fechaNacimiento": "1980-09-04", "nivelIngles": 5, - "disponibilidad": "C", + "experiencias": [ { @@ -119,7 +119,7 @@ "telefono": "(876) 580-2411", "fechaNacimiento": "2000-01-28", "nivelIngles": 3, - "disponibilidad": "P", + "experiencias": [ { @@ -166,7 +166,7 @@ "telefono": "(931) 499-3122", "fechaNacimiento": "1972-06-05", "nivelIngles": 4, - "disponibilidad": "C", + "experiencias": [ { @@ -213,7 +213,7 @@ "telefono": "(972) 524-2610", "fechaNacimiento": "1989-09-09", "nivelIngles": 5, - "disponibilidad": "P", + "experiencias": [ { @@ -260,7 +260,7 @@ "telefono": "(933) 501-3525", "fechaNacimiento": "1994-03-24", "nivelIngles": 1, - "disponibilidad": "P", + "experiencias": [ { @@ -307,7 +307,7 @@ "telefono": "(817) 492-2493", "fechaNacimiento": "2002-07-30", "nivelIngles": 5, - "disponibilidad": "P", + "experiencias": [ { diff --git a/curriculumsearch/src/main/resources/static/main.js b/curriculumsearch/src/main/resources/static/main.js index 091b1d1..d06f776 100644 --- a/curriculumsearch/src/main/resources/static/main.js +++ b/curriculumsearch/src/main/resources/static/main.js @@ -17,7 +17,6 @@ form = document.querySelector("form"); const depSelect = document.querySelector("#departamentos"); console.log("saddsa", bootstrap) -const modalCargo = bootstrap.Modal.getOrCreateInstance(document.getElementById('cargoForm')) const modalExperiencia = bootstrap.Modal.getOrCreateInstance(document.getElementById('experienciaForm')) const modalTecnologia = bootstrap.Modal.getOrCreateInstance(document.getElementById('tecnologiaForm')) const modalEstudio = bootstrap.Modal.getOrCreateInstance(document.getElementById('estudioForm')) @@ -108,7 +107,7 @@ function validarfecha(fechaDesde, fechaHasta){ return "la fecha desde no puede ser mayor a la fecha actual" ; } - if(fechaHasta =! null && fechaDesde>fechaHasta){ + if(fechaHasta =! null && fechaHasta.trim().length >0 && fechaDesde>fechaHasta){ return "la fecha desde no puede ser mayor a la fecha hasta"; } @@ -223,7 +222,7 @@ function agregarFieldExpierncia(event){ let pos_rec; let returnFlag = false; - let requiredValues = ["institucion", "cargo", "fechaDesde", "descripcion"] + let requiredValues = ["institucion", "cargo", "fechaDesde", "descripcion","nombreReferencia","telefonoReferencia"] formData.forEach((value, key)=>{ if(requiredValues.includes(key) @@ -415,84 +414,6 @@ function eliminarEstudio(index) { //eliminar en html document.getElementById("est-"+index).remove() } -/*------------Cargos----------------------------------------*/ -function agregarFieldCargo(){ - //recoger del form - const pairs = {}; - const formcar = document.querySelector("[name=cargo-form]"); - const formData = new FormData(formcar); - - //Validacion - let returnFlag = false; - - let requiredValues = ["nombre"] - - formData.forEach((value, key)=>{ - if(requiredValues.includes(key) - && value==="" && returnFlag == false){ - console.log(key, value) - returnFlag = true; - } - }); - - if(returnFlag===true){ - let message = "Rellene " - for(let i=0;i option[value="'+pairs["cargo-id"]+'"]').innerHTML} - console.log(postulaciones) - formcar.reset(); - //imprimir lista actualizada - const div = document.querySelector("#cargos") - const div1 = document.createElement('div'); - - let content1='' - for (let index = 0; index < postulaciones.length; index++) { - const car = postulaciones[index]; - if(car==null) continue; - content1 += ` -
- ${document.querySelector('[name=cargo-id] > option[value="'+car.id+'"]').innerHTML}   - -
- - ` - } - //content1 += "" - div.innerHTML = content1 - //div.innerHTML = ''; - //div.appendChild(div1); - cont_cargo++; - document.querySelector("#no-valid-cargo").style.display = "none"; - modalCargo.hide() -} -function eliminarCargoPostulante(event) { - //eliminar del array - postulaciones[event.target.parentElement.id.split("-")[1]]=null - //eliminar en html - event.target.parentElement.remove() -} /*--------------Referencias----------------------------- */ function agregarFieldReferencia(event){ diff --git a/curriculumsearch/src/main/webapp/jsp/cargos.jsp b/curriculumsearch/src/main/webapp/jsp/cargos.jsp index cfa6c05..5d9754a 100644 --- a/curriculumsearch/src/main/webapp/jsp/cargos.jsp +++ b/curriculumsearch/src/main/webapp/jsp/cargos.jsp @@ -9,16 +9,25 @@ contentType="text/html;charset=UTF-8" language="java" %>

Lista de cargos

- - - +
+
+ + +
+
+ + +
+ +
- Agregar Nuevo Cargo
@@ -48,16 +57,16 @@ contentType="text/html;charset=UTF-8" language="java" %>
- - @@ -65,16 +74,7 @@ contentType="text/html;charset=UTF-8" language="java" %> diff --git a/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp b/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp index 7a53390..946d677 100644 --- a/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp +++ b/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp @@ -5,29 +5,64 @@ <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - + + +

Lista de convocatorias

- - - Estado: - -
- -
- -
- +
+ +
+
+
+ + +
+
+ + +
+
+
+
+ + +
+ + +
+
+ + +
+ + +
+
+
+ +
+
+ + +
+ + +
- Agregar Nueva Convocatoria +
${SUCCESS_MESSAGE}
@@ -55,7 +90,11 @@ Ver postulantes - + + + Cerrar convocatoria + + @@ -65,6 +104,17 @@ +
diff --git a/curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp b/curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp index 25a745b..53969d3 100644 --- a/curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp +++ b/curriculumsearch/src/main/webapp/jsp/detallepostulante.jsp @@ -106,15 +106,6 @@
-
Disponbilidad
-
-
- ${postulante.disponibilidad.getDescripcion()} -
-
-
-
-
Estado
diff --git a/curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp b/curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp index 898022f..31ece60 100644 --- a/curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp +++ b/curriculumsearch/src/main/webapp/jsp/detallepostulante2.jsp @@ -104,15 +104,7 @@

-
-
-
Disponbilidad
-
-
- ${postulante.disponibilidad.getDescripcion()} -
-
-
+
Estado
diff --git a/curriculumsearch/src/main/webapp/jsp/layouts/base.jsp b/curriculumsearch/src/main/webapp/jsp/layouts/base.jsp index b5be976..5493334 100644 --- a/curriculumsearch/src/main/webapp/jsp/layouts/base.jsp +++ b/curriculumsearch/src/main/webapp/jsp/layouts/base.jsp @@ -78,6 +78,29 @@
+ diff --git a/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp b/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp index 1ce899e..bffc11a 100644 --- a/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp +++ b/curriculumsearch/src/main/webapp/jsp/postulante-form.jsp @@ -132,15 +132,9 @@
-
- -
- + + +
+ + +
+
-

Cargos

+

Cargos

@@ -283,36 +289,6 @@
- - diff --git a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp index 1b80ba7..cbdedb7 100644 --- a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp +++ b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp @@ -26,7 +26,7 @@ Estado - Disponbilidad + Nivel de ingles Institucion Educativa Tecnologias @@ -45,14 +45,6 @@ - - - - - - - - -
+
@@ -287,7 +272,6 @@ # Nombre - Disponibilidad Nivel de Ingles Experiencia Tecnologias @@ -299,7 +283,6 @@ ${staPost.index + 1} ${postulante.nombre} ${postulante.apellido} - ${postulante.disponibilidad.getDescripcion()} ${postulante.nivelIngles} @@ -368,17 +351,7 @@ } - function buscarPagina(nro){ - nro-- - const aBuscar = 'nroPagina='+nro - if(!location.search) location.search = aBuscar - const inicial = location.search.search(aBuscar); - if(inicial==-1){//si no se encuentra y hay otros queries - location.search = "&"+aBuscar; - } - location.search.replace('nroPagina=',aBuscar) - console.log(location.search) - } + const tecId = document.querySelector("#tecId"); const lvlTec = document.querySelector("#lvlTec"); tecId.addEventListener('change',habilitarLvlTec); diff --git a/curriculumsearch/src/main/webapp/jsp/tecnologias.jsp b/curriculumsearch/src/main/webapp/jsp/tecnologias.jsp index 4577271..c5ca2cf 100644 --- a/curriculumsearch/src/main/webapp/jsp/tecnologias.jsp +++ b/curriculumsearch/src/main/webapp/jsp/tecnologias.jsp @@ -9,11 +9,26 @@
- - - +
+
+ + +
+
+ + +
+ +
- Agregar Nueva Tecnologia +
@@ -61,17 +76,6 @@ - +