diff --git a/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java b/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java new file mode 100644 index 0000000..6244e57 --- /dev/null +++ b/curriculumsearch/src/main/java/com/roshka/controller/CargoController.java @@ -0,0 +1,64 @@ +package com.roshka.controller; + +import com.roshka.modelo.Cargo; +import com.roshka.modelo.ConvocatoriaCargo; +import com.roshka.repositorio.CargoRepository; +import com.roshka.repositorio.ConvocatoriaRepository; + +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.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class CargoController { + + CargoRepository cargoRepo; + ConvocatoriaRepository convoRepo; + + @Autowired + public CargoController(CargoRepository cargoRepo, ConvocatoriaRepository convoRepo) { + this.cargoRepo = cargoRepo; + this.convoRepo = convoRepo; + } + + @RequestMapping("/cargos") + public String menuCargos(Model model,@RequestParam(required = false) Long cargoId) { + + model.addAttribute("cargos", cargoRepo.findAll()); + model.addAttribute("convocatorias",cargoId==null? convoRepo.findAll() : convoRepo.findByCargoId(cargoId)); + return "cargo"; + } + + @RequestMapping("/cargo") + public String formCargo(Model model) { + model.addAttribute("cargo", new Cargo()); + return "cargo-form"; + } + + @PostMapping("/cargo") + public String guardarCargo(@ModelAttribute Cargo cargo, BindingResult result) { + if(result.hasErrors()); + 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/modelo/ConvocatoriaCargo.java b/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java index 3f35e7e..7a424e3 100644 --- a/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java +++ b/curriculumsearch/src/main/java/com/roshka/modelo/ConvocatoriaCargo.java @@ -12,6 +12,7 @@ import javax.persistence.JoinColumn; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.Table; +import javax.persistence.Transient; import com.fasterxml.jackson.annotation.JsonBackReference; import com.roshka.utils.Helper; @@ -24,10 +25,13 @@ public class ConvocatoriaCargo { private long id; @ManyToOne() - @JoinColumn + @JoinColumn(name = "cargo_id",insertable = false, updatable = false) @JsonBackReference private Cargo cargo; + @Column(name = "cargo_id") + private Long cargoId; + @Column(name = "fecha_inicio") private Date fechaInicio; @@ -37,6 +41,14 @@ public class ConvocatoriaCargo { @Column(name = "cupos") private int cupos; + //para serializar en el form como string + @Transient + private String fechaFinS; + + //para serializar en el form como string + @Transient + private String fechaInicioS; + @ManyToMany(mappedBy = "postulaciones") private List postulantes; @@ -82,5 +94,25 @@ public class ConvocatoriaCargo { public void setPostulantes(List postulantes) { this.postulantes = postulantes; } + public Long getCargoId() { + return cargoId; + } + public void setCargoId(Long cargoId) { + this.cargoId = cargoId; + } + public String getFechaFinS() { + return fechaFinS; + } + public String getFechaInicioS() { + return fechaInicioS; + } + public void setFechaFinS(String fechaFinS) { + this.fechaFinS = fechaFinS; + setFechaFin(fechaFinS); + } + public void setFechaInicioS(String fechaInicioS) { + this.fechaInicioS = fechaInicioS; + setFechaInicio(fechaInicioS); + } } diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java new file mode 100644 index 0000000..3e8c119 --- /dev/null +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/CargoRepository.java @@ -0,0 +1,9 @@ +package com.roshka.repositorio; + +import com.roshka.modelo.Cargo; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CargoRepository extends JpaRepository{ + +} diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/ConvocatoriaRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/ConvocatoriaRepository.java new file mode 100644 index 0000000..3892883 --- /dev/null +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/ConvocatoriaRepository.java @@ -0,0 +1,11 @@ +package com.roshka.repositorio; + +import java.util.List; + +import com.roshka.modelo.ConvocatoriaCargo; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ConvocatoriaRepository extends JpaRepository { + public List findByCargoId(Long cargoId); +} diff --git a/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp b/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp new file mode 100644 index 0000000..f5b81bd --- /dev/null +++ b/curriculumsearch/src/main/webapp/jsp/cargo-form.jsp @@ -0,0 +1,28 @@ +<%@ 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 + + + + +
+ +
+ Nombre del cargo + +
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/curriculumsearch/src/main/webapp/jsp/cargo.jsp b/curriculumsearch/src/main/webapp/jsp/cargo.jsp index f0fb286..50d293d 100644 --- a/curriculumsearch/src/main/webapp/jsp/cargo.jsp +++ b/curriculumsearch/src/main/webapp/jsp/cargo.jsp @@ -8,14 +8,54 @@ Cargo + + - -

Hola

- - - - ${i.getPostulante().getNombre()} - -
-
+ +
+ Cargos: + + Agregar Nuevo Cargo +
+
+ Agregar Nueva Convocatoria + + + + + + + + + + + + + + + + + + + + + + + + +
#Fecha DesdeFecha HastaVacantes
${sta.index+1}${convocatoria.getFechaInicio().toString().split(" ")[0]}${convocatoria.getFechaFin().toString().split(" ")[0]}${convocatoria.getCupos()}Ver Postulantes
+
+ \ 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 new file mode 100644 index 0000000..551208c --- /dev/null +++ b/curriculumsearch/src/main/webapp/jsp/convocatoria-form.jsp @@ -0,0 +1,45 @@ +<%@ 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 + + + + +
+ +
+ Fecha inicial + + +
+
+ Fecha Fin + +
+
+ Cupos: + +
+
+ Cargo + + + ${cargo.nombre} + + +
+ +
+ + + +
+ + \ No newline at end of file