Commit 13b70dce by Cesar Giulano Gonzalez Maqueda

Merge branch 'joel-001' of https://phoebe.roshka.com/gitlab/hshah/TalentoHumano into giuli_001

parents d4d963a8 c253c4b5
...@@ -38,10 +38,6 @@ public class PostulanteController { ...@@ -38,10 +38,6 @@ public class PostulanteController {
@PostMapping(value = "/postulante",consumes = "application/json") @PostMapping(value = "/postulante",consumes = "application/json")
public String guardarPostulante(@RequestBody Postulante postulante){ public String guardarPostulante(@RequestBody Postulante postulante){
post.save(postulante); post.save(postulante);
for(Experiencia exp: postulante.getExperiencias()){
exp.setPostulante(postulante);
}
post.save(postulante);
return "redirect:/"; return "redirect:/";
} }
......
...@@ -12,6 +12,9 @@ import javax.persistence.JoinColumn; ...@@ -12,6 +12,9 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.Table; import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
@Entity @Entity
@Table(name="estudio") @Table(name="estudio")
public class Estudio { public class Estudio {
...@@ -34,8 +37,10 @@ public class Estudio { ...@@ -34,8 +37,10 @@ public class Estudio {
@ManyToOne @ManyToOne
@JoinColumn @JoinColumn
@JsonBackReference
private Postulante postulante; private Postulante postulante;
@JsonManagedReference
@OneToMany(mappedBy = "estudio") @OneToMany(mappedBy = "estudio")
private List<EstudioReconocimiento> estudioReconocimiento; private List<EstudioReconocimiento> estudioReconocimiento;
......
...@@ -10,6 +10,8 @@ import javax.persistence.JoinColumn; ...@@ -10,6 +10,8 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.Table; import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonBackReference;
@Entity @Entity
@Table(name="estudio_reconocimiento") @Table(name="estudio_reconocimiento")
public class EstudioReconocimiento { public class EstudioReconocimiento {
...@@ -21,6 +23,7 @@ public class EstudioReconocimiento { ...@@ -21,6 +23,7 @@ public class EstudioReconocimiento {
private String nombre; private String nombre;
@Column(name="certificado") @Column(name="certificado")
private String certificado; private String certificado;
@JsonBackReference
@ManyToOne @ManyToOne
@JoinColumn @JoinColumn
private Estudio estudio; private Estudio estudio;
......
...@@ -3,11 +3,16 @@ package com.roshka.modelo; ...@@ -3,11 +3,16 @@ package com.roshka.modelo;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType; import javax.persistence.GenerationType;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import javax.persistence.*; import javax.persistence.*;
@Entity @Entity
...@@ -26,10 +31,17 @@ public class Experiencia { ...@@ -26,10 +31,17 @@ public class Experiencia {
private String referencias; private String referencias;
@Column(name = "cargo") @Column(name = "cargo")
private String cargo; private String cargo;
@ManyToOne @Column(name = "descripcion")
private String descripcion;
@JsonBackReference
@ManyToOne(optional = false)
@JoinColumn @JoinColumn
private Postulante postulante; private Postulante postulante;
@JsonManagedReference
@OneToMany(mappedBy = "experiencia",cascade = CascadeType.ALL)
private List<ExperienciaReconocimiento> reconocimientos;
public long getId() { public long getId() {
return id; return id;
} }
...@@ -92,4 +104,16 @@ public class Experiencia { ...@@ -92,4 +104,16 @@ public class Experiencia {
public Postulante getPostulante() { public Postulante getPostulante() {
return postulante; return postulante;
} }
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public void setReconocimientos(List<ExperienciaReconocimiento> reconocimientos) {
this.reconocimientos = reconocimientos;
}
public List<ExperienciaReconocimiento> getReconocimientos() {
return reconocimientos;
}
} }
...@@ -2,6 +2,8 @@ package com.roshka.modelo; ...@@ -2,6 +2,8 @@ package com.roshka.modelo;
import javax.persistence.*; import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonBackReference;
@Entity @Entity
@Table(name = "experiencia_reconocimiento") @Table(name = "experiencia_reconocimiento")
public class ExperienciaReconocimiento { public class ExperienciaReconocimiento {
...@@ -10,12 +12,16 @@ public class ExperienciaReconocimiento { ...@@ -10,12 +12,16 @@ public class ExperienciaReconocimiento {
@Column(name="id") @Column(name="id")
private long id; private long id;
@ManyToOne @ManyToOne(optional = false)
@JoinColumn @JoinColumn
@JsonBackReference
private Experiencia experiencia; private Experiencia experiencia;
@Column(name = "nivel") @Column(name="nombre")
private long nivel; private String nombre;
@Column(name="certificado")
private String certificado;
public long getId() { public long getId() {
return id; return id;
...@@ -29,10 +35,16 @@ public class ExperienciaReconocimiento { ...@@ -29,10 +35,16 @@ public class ExperienciaReconocimiento {
public void setExperiencia(Experiencia experiencia) { public void setExperiencia(Experiencia experiencia) {
this.experiencia = experiencia; this.experiencia = experiencia;
} }
public long getNivel() { public String getCertificado() {
return nivel; return certificado;
}
public String getNombre() {
return nombre;
}
public void setCertificado(String certificado) {
this.certificado = certificado;
} }
public void setNivel(long nivel) { public void setNombre(String nombre) {
this.nivel = nivel; this.nombre = nombre;
} }
} }
package com.roshka.modelo;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "experiencia_tecnologia")
public class ExperienciaTecnologia {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private Long id;
@ManyToOne
@JoinColumn
private Experiencia experencia;
@ManyToOne
@JoinColumn
private Tecnologia tecnologia;
@Column(name="nivel")
private Long nivel;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Experiencia getExperencia() {
return experencia;
}
public void setExperencia(Experiencia experencia) {
this.experencia = experencia;
}
public Tecnologia getTecnologia() {
return tecnologia;
}
public void setTecnologia(Tecnologia tecnologia) {
this.tecnologia = tecnologia;
}
public Long getNivel() {
return nivel;
}
public void setNivel(Long nivel) {
this.nivel = nivel;
}
}
...@@ -3,8 +3,11 @@ package com.roshka.modelo; ...@@ -3,8 +3,11 @@ package com.roshka.modelo;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -69,12 +72,15 @@ public class Postulante { ...@@ -69,12 +72,15 @@ public class Postulante {
@Column(name = "disponibilidad") @Column(name = "disponibilidad")
private String disponibilidad; private String disponibilidad;
@JsonManagedReference
@OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL) @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
private List<PostulanteTecnologia> tecnologias; private List<PostulanteTecnologia> tecnologias;
@JsonManagedReference
@OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL) @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
private List<Experiencia> experiencias; private List<Experiencia> experiencias = new ArrayList<>();
@JsonManagedReference
@OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL) @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
private List<Estudio> estudios; private List<Estudio> estudios;
......
...@@ -8,6 +8,8 @@ import javax.persistence.Id; ...@@ -8,6 +8,8 @@ import javax.persistence.Id;
import javax.persistence.JoinColumn; import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne; import javax.persistence.ManyToOne;
import javax.persistence.Table; import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonBackReference;
@Entity @Entity
@Table(name="postulante_tecnologia") @Table(name="postulante_tecnologia")
...@@ -23,6 +25,7 @@ public class PostulanteTecnologia { ...@@ -23,6 +25,7 @@ public class PostulanteTecnologia {
private Tecnologia tecnologia; private Tecnologia tecnologia;
@ManyToOne() @ManyToOne()
@JoinColumn @JoinColumn
@JsonBackReference
private Postulante postulante; private Postulante postulante;
public long getId() { public long getId() {
return id; return id;
......
package com.roshka.repositorio;
import org.springframework.data.jpa.repository.JpaRepository;
import com.roshka.modelo.ExperienciaTecnologia;
public interface ExperienciaTecnologiaRepository extends JpaRepository<ExperienciaTecnologia,Long> {
}
...@@ -9,9 +9,19 @@ function agregarFieldExpierncia(){ ...@@ -9,9 +9,19 @@ function agregarFieldExpierncia(){
const pairs = {}; const pairs = {};
const formexp = document.querySelector("[name=experiencia-form]"); const formexp = document.querySelector("[name=experiencia-form]");
const formData = new FormData(formexp); const formData = new FormData(formexp);
const reconocimientos = [{},{},{}];
let pos_rec;
for (const [name, value] of formData){ for (const [name, value] of formData){
pos_rec = name.split("-");//rec-nombre-index
if (pos_rec.length > 1) {
reconocimientos[pos_rec[2]][pos_rec[1]] = value
}
else{
pairs[name] = value pairs[name] = value
} }
}
pairs["reconocimientos"] = reconocimientos.filter(rec => rec.nombre);
experiencias[cont_experiencia] = pairs; experiencias[cont_experiencia] = pairs;
formexp.reset(); formexp.reset();
//imprimir lista actualizada //imprimir lista actualizada
...@@ -40,7 +50,6 @@ function agregarFieldExpierncia(){ ...@@ -40,7 +50,6 @@ function agregarFieldExpierncia(){
function eliminarExperiencia(event) { function eliminarExperiencia(event) {
//eliminar del array //eliminar del array
console.log(event.target.parentElement.id.split("-")[1])
experiencias[event.target.parentElement.id.split("-")[1]]=null experiencias[event.target.parentElement.id.split("-")[1]]=null
//eliminar en html //eliminar en html
event.target.parentElement.remove() event.target.parentElement.remove()
...@@ -87,7 +96,6 @@ form.addEventListener("submit",(evt)=>{ ...@@ -87,7 +96,6 @@ form.addEventListener("submit",(evt)=>{
postData('postulante', serializeJSON(form)) postData('postulante', serializeJSON(form))
.then(response => { .then(response => {
console.log(response); // JSON data parsed by `data.json()` call
location.replace(response.url); location.replace(response.url);
}); });
evt.preventDefault(); evt.preventDefault();
......
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
<!-- Bootstrap CSS --> <!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>Hello, world!</title> <title>Postulante</title>
</head> </head>
<body class="container"> <body class="container">
<h1>Hello, world!</h1> <h1>Curriculum</h1>
<form name="postulante" method="post"> <form name="postulante" method="post">
<div class="mb-3 col-5"> <div class="mb-3 col-5">
...@@ -97,9 +97,34 @@ ...@@ -97,9 +97,34 @@
<label for="fechaHasta" class="form-label">Fecha Hasta</label> <label for="fechaHasta" class="form-label">Fecha Hasta</label>
<input type="date" class="form-control " name="fechaHasta" id="fechaHasta" > <input type="date" class="form-control " name="fechaHasta" id="fechaHasta" >
<label for="cargo" class="form-label">Cargo</label> <label for="cargo" class="form-label">Cargo</label>
<input type="cargo" class="form-control " name="cargo" id="cargo" > <input type="text" class="form-control " name="cargo" id="cargo" >
<label for="refNombre" class="form-label">Referencia Nombre</label> <label for="refNombre" class="form-label">Referencia Nombre</label>
<input type="text" class="form-control " name="referencias" id="refNombre" > <input type="text" class="form-control " name="referencias" id="refNombre" >
<label class="form-label">Reconocimientos</label>
<div class="row mb-3">
<div class="col">
<input type="text" class="form-control" name="rec-nombre-0" placeholder="Titulo del reconocimiento" aria-label="First name">
</div>
<div class="col">
<input type="text" class="form-control" name="rec-certificado-0" placeholder="Adjuntar archivo" aria-label="Last name">
</div>
</div>
<div class="row mb-3">
<div class="col">
<input type="text" class="form-control" name="rec-nombre-1" placeholder="Titulo del reconocimiento" aria-label="First name">
</div>
<div class="col">
<input type="text" class="form-control" name="rec-certificado-1" placeholder="Adjuntar archivo" aria-label="Last name">
</div>
</div>
<div class="row mb-3">
<div class="col">
<input type="text" class="form-control" name="rec-nombre-2" placeholder="Titulo del reconocimiento" aria-label="First name">
</div>
<div class="col">
<input type="text" class="form-control" name="rec-certificado-2" placeholder="Adjuntar archivo" aria-label="Last name">
</div>
</div>
</form> </form>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment