From 9c2b22fe76655b5a0a490b5593aebab6b922c82a Mon Sep 17 00:00:00 2001 From: Joel Date: Mon, 8 Nov 2021 13:15:46 -0300 Subject: [PATCH] editar cargos y convocatorias. listar cargos --- curriculumsearch/src/main/java/com/roshka/controller/CargoController.java | 53 ++++++++++++++++------------------------------------- curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java | 6 +++--- curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java | 6 +++--- curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java | 4 +++- curriculumsearch/src/main/webapp/jsp/cargo-form.jsp | 2 +- curriculumsearch/src/main/webapp/jsp/cargos.jsp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp | 5 +---- curriculumsearch/src/main/webapp/jsp/convocatorias.jsp | 3 ++- curriculumsearch/src/main/webapp/jsp/index.jsp | 1 + 10 files changed, 151 insertions(+), 50 deletions(-) create mode 100644 curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java create mode 100644 curriculumsearch/src/main/webapp/jsp/cargos.jsp diff --git a/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java b/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java index 9fb72d6..342dfaf 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java @@ -1,74 +1,53 @@ package com.roshka.controller; -import java.util.Date; import com.roshka.modelo.Cargo; -import com.roshka.modelo.ConvocatoriaCargo; import com.roshka.repositorio.CargoRepository; -import com.roshka.repositorio.ConvocatoriaRepository; - -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.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @Controller public class CargoController { CargoRepository cargoRepo; - ConvocatoriaRepository convoRepo; @Autowired - public CargoController(CargoRepository cargoRepo, ConvocatoriaRepository convoRepo) { + public CargoController(CargoRepository cargoRepo) { this.cargoRepo = cargoRepo; - this.convoRepo = convoRepo; } - @RequestMapping("/convocatorias") + @RequestMapping("/cargos") public String menuCargos(Model model, - @RequestParam(required = false) Long cargoId, - @RequestParam(required = false) Integer isOpen//1: true, 0: false + @RequestParam(required = false) String nombre ) { - - model.addAttribute("cargos", cargoRepo.findAll()); - - 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"; + if(nombre == null || nombre.trim().isEmpty()) model.addAttribute("cargos", cargoRepo.findAll()); + else model.addAttribute("cargos", cargoRepo.findByNombreContainingIgnoreCase(nombre)); + return "cargos"; } - @RequestMapping("/cargo") - public String formCargo(Model model) { - model.addAttribute("cargo", new Cargo()); + @RequestMapping(path = {"/cargo","/cargo/{id}"}, method = RequestMethod.GET) + public String formCargo(Model model,@PathVariable(required = false) Long id) { + + if(id == null) model.addAttribute("cargo", new Cargo()); + else model.addAttribute("cargo", cargoRepo.getById(id)); return "cargo-form"; } - @PostMapping("/cargo") - public String guardarCargo(@ModelAttribute Cargo cargo, BindingResult result) { + @PostMapping(path = {"/cargo","/cargo/{id}"}) + public String guardarCargo(@ModelAttribute Cargo cargo, BindingResult result, @PathVariable(required = false) Long id) { if(result.hasErrors()); + if(id != null ) cargo.setId(id); cargoRepo.save(cargo); System.out.println(cargo.getNombre()); return "redirect:/cargos"; } - @RequestMapping("/convocatoria") - public String formConvocatoria(Model model) { - model.addAttribute("cargos", cargoRepo.findAll()); - model.addAttribute("convocatoria", new ConvocatoriaCargo()); - return "convocatoria-form"; - } - @PostMapping("/convocatoria") - public String guardarConvocatoria(@ModelAttribute ConvocatoriaCargo convocatoria, BindingResult result) { - if(result.hasErrors()); - convoRepo.save(convocatoria); - System.out.println(convocatoria.getFechaInicio()); - return "redirect:/cargos"; - } } diff --git a/curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java b/curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java new file mode 100644 index 0000000..4556637 --- /dev/null +++ b/curriculumsearch/src/main/java/com/roshka/controller/ConvocatoriaController.java @@ -0,0 +1,72 @@ +package com.roshka.controller; + +import java.text.SimpleDateFormat; +import java.util.Date; + +import com.roshka.modelo.ConvocatoriaCargo; +import com.roshka.repositorio.CargoRepository; +import com.roshka.repositorio.ConvocatoriaRepository; + +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.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class ConvocatoriaController { + + CargoRepository cargoRepo; + ConvocatoriaRepository convoRepo; + + @Autowired + public ConvocatoriaController(CargoRepository cargoRepo, ConvocatoriaRepository convoRepo) { + this.cargoRepo = cargoRepo; + this.convoRepo = convoRepo; + } + + @RequestMapping("/convocatorias") + public String menuConvocatorias(Model model, + @RequestParam(required = false) Long cargoId, + @RequestParam(required = false) Integer isOpen//1: true, 0: false + ) { + + model.addAttribute("cargos", cargoRepo.findAll()); + + 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"; + } + + + @RequestMapping(path = {"/convocatoria","/convocatoria/{id}"}) + public String formConvocatoria(Model model,@PathVariable(required = false) Long id) { + model.addAttribute("cargos", cargoRepo.findAll()); + if(id == null) model.addAttribute("convocatoria", new ConvocatoriaCargo()); + else { + ConvocatoriaCargo cc = convoRepo.getById(id); + cc.setFechaFinS(new SimpleDateFormat("yyyy-MM-dd").format((cc.getFechaFin()))); + cc.setFechaInicioS(new SimpleDateFormat("yyyy-MM-dd").format((cc.getFechaInicio()))); + + model.addAttribute("convocatoria", cc); + } + + return "convocatoria-form"; + } + + @PostMapping(path = {"/convocatoria","/convocatoria/{id}"}) + public String guardarConvocatoria(@ModelAttribute ConvocatoriaCargo convocatoria, BindingResult result, @PathVariable(required = false) Long id) { + if(result.hasErrors()); + if(id != null) convocatoria.setId(id); + convoRepo.save(convocatoria); + System.out.println(convocatoria.getFechaInicio()); + return "redirect:/convocatorias"; + } +} diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java b/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java index f3dddf6..0179d06 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/Cargo.java @@ -18,7 +18,7 @@ import com.fasterxml.jackson.annotation.JsonManagedReference; public class Cargo { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private long id; + private Long id; @NotBlank @Column(name = "nombre") @@ -28,13 +28,13 @@ public class Cargo { @JsonManagedReference private List convocatorias; - public long getId() { + public Long getId() { return id; } public String getNombre() { return nombre; } - public void setId(long id) { + public void setId(Long id) { this.id = id; } public void setNombre(String nombre) { diff --git a/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java b/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java index c722df4..5e7ad21 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java @@ -22,7 +22,7 @@ import com.roshka.utils.Helper; public class ConvocatoriaCargo { @Id @GeneratedValue(strategy = GenerationType.AUTO) - private long id; + private Long id; @ManyToOne() @JoinColumn(name = "cargo_id",insertable = false, updatable = false) @@ -52,7 +52,7 @@ public class ConvocatoriaCargo { @ManyToMany(mappedBy = "postulaciones") private List postulantes; - public long getId() { + public Long getId() { return id; } public Cargo getCargo() { @@ -67,7 +67,7 @@ public class ConvocatoriaCargo { public Date getFechaInicio() { return fechaInicio; } - public void setId(long id) { + public void setId(Long id) { this.id = id; } public void setCargo(Cargo cargo) { diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java index 3e8c119..556bc1c 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java @@ -1,9 +1,11 @@ package com.roshka.repositorio; +import java.util.List; + import com.roshka.modelo.Cargo; import org.springframework.data.jpa.repository.JpaRepository; public interface CargoRepository extends JpaRepository{ - + public List findByNombreContainingIgnoreCase(String nombre); } diff --git a/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp b/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp index f5b81bd..f838bc9 100644 --- a/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp +++ b/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp @@ -13,7 +13,7 @@
- +
Nombre del cargo diff --git a/curriculumsearch/src/main/webapp/jsp/cargos.jsp b/curriculumsearch/src/main/webapp/jsp/cargos.jsp new file mode 100644 index 0000000..5c6f2e9 --- /dev/null +++ b/curriculumsearch/src/main/webapp/jsp/cargos.jsp @@ -0,0 +1,49 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + + + Cargo + + + + +
+
+ + + +
+ Agregar Nuevo Cargo +
+
+ + + + + + + + + + + + + + + + + + + + + +
#Cargo
${sta.index+1}${cargo.getNombre()}Ver ConvocatoriasEditar cargo
+
+ + + \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp b/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp index 551208c..c5062a8 100644 --- a/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp +++ b/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp @@ -13,7 +13,7 @@
- +
Fecha inicial @@ -37,9 +37,6 @@
- - -
\ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp b/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp index e5d7667..47703ed 100644 --- a/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp +++ b/curriculumsearch/src/main/webapp/jsp/convocatorias.jsp @@ -30,7 +30,6 @@
- Agregar Nuevo Cargo
Agregar Nueva Convocatoria @@ -54,6 +53,7 @@ ${convocatoria.getFechaFin().toString().split(" ")[0]} ${convocatoria.getCupos()} Ver Postulantes + Editar @@ -61,6 +61,7 @@ +
diff --git a/curriculumsearch/src/main/webapp/jsp/index.jsp b/curriculumsearch/src/main/webapp/jsp/index.jsp index b0ee919..5a9a2a5 100644 --- a/curriculumsearch/src/main/webapp/jsp/index.jsp +++ b/curriculumsearch/src/main/webapp/jsp/index.jsp @@ -11,5 +11,6 @@ Lista de postulantes Tecnologias Lista de convocatorias + Lista de cargos \ No newline at end of file -- libgit2 0.26.0