Commit 787511df by Cesar Giulano Gonzalez Maqueda

merge joel

parents e343eb3f bdf3f0bf
package com.roshka.DTO;
import java.util.Date;
import com.roshka.modelo.EstadoConvocatoria;
import lombok.Data;
@Data
public class ConvocatoriaDTO {
private Long id;
private Long cargoId;
private EstadoConvocatoria estado;
private Date fechaInicio;
private Date fechaFin;
public ConvocatoriaDTO(Long id, Long cargoId, EstadoConvocatoria estado, Date fechaInicio, Date fechaFin) {
this.id = id;
this.cargoId = cargoId;
this.estado = estado;
this.fechaInicio = fechaInicio;
this.fechaFin = fechaFin;
}
public ConvocatoriaDTO() {
}
}
......@@ -48,13 +48,11 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
.authorizeRequests()
.mvcMatchers("/").authenticated()
.mvcMatchers("/home").authenticated()
.mvcMatchers("/cargo*").authenticated()
.mvcMatchers("/convocatoria*").authenticated()
.mvcMatchers("/convocatoria/crear/*").authenticated()
.mvcMatchers("/tecnologia*").authenticated()
.mvcMatchers("/cargos","/cargos/**").authenticated()
.mvcMatchers("/convocatorias","/convocatorias/**").authenticated()
.mvcMatchers("/tecnologias","/tecnologias/**").authenticated()
.mvcMatchers("/postulantes","/postulantes/**").authenticated()
.mvcMatchers("/edit-user-data").authenticated()
.mvcMatchers("/postulantesExcel*").authenticated()
.anyRequest().permitAll()
.and()
.formLogin()
......
......@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@Controller
@RequestMapping("/cargos")
public class CargoController {
CargoRepository cargoRepo;
......@@ -25,7 +26,7 @@ public class CargoController {
this.cargoRepo = cargoRepo;
}
@RequestMapping("/cargos")
@RequestMapping()
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"));
......@@ -35,14 +36,14 @@ public class CargoController {
model.addAttribute("pages", CargoPag.getTotalPages());
}
else {
Page<Cargo> CargoPag=cargoRepo.findByNombreContainingIgnoreCase(nombre,page);
Page<Cargo> CargoPag=cargoRepo.findByNombreContainingIgnoreCase(nombre.trim(),page);
model.addAttribute("pages", CargoPag.getTotalPages());
model.addAttribute("cargos", CargoPag.getContent());
}
return "cargos";
}
@RequestMapping(path = {"/cargo","/cargo/{id}"}, method = RequestMethod.GET)
@RequestMapping(path = {"/agregar","/modificar/{id}"}, method = RequestMethod.GET)
public String formCargo(Model model,@PathVariable(required = false) Long id) {
if(id == null) model.addAttribute("cargo", new Cargo());
......@@ -50,7 +51,7 @@ public class CargoController {
return "cargo-form";
}
@PostMapping(path = {"/cargo","/cargo/{id}"})
@PostMapping(path = {"/agregar","/modificar/{id}"})
public String guardarCargo(@Valid @ModelAttribute Cargo cargo, BindingResult result, @PathVariable(required = false) Long id, Model model) {
if(result.hasErrors() || (id==null && cargoRepo.existsByNombreIgnoreCase(cargo.getNombre()) )){
model.addAttribute("mismoNombre", true);
......
......@@ -11,12 +11,12 @@ 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;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import java.util.Date;
@RequestMapping("/convocatorias")
@Controller
public class ConvocatoriaController {
......@@ -29,7 +29,7 @@ public class ConvocatoriaController {
this.convoRepo = convoRepo;
}
@RequestMapping("/convocatorias")
@RequestMapping()
public String menuConvocatorias(Model model,RedirectAttributes redirectAttrs,
@RequestParam(required = false) Long cargoId,
@RequestParam(required = false) EstadoConvocatoria estado,//1: true, 0: false
......@@ -48,22 +48,14 @@ public class ConvocatoriaController {
return "convocatorias";
}
@PostMapping("/convocatoria")
public String guardarConvocatoria(@ModelAttribute ConvocatoriaCargo convocatoria, BindingResult result,RedirectAttributes redirectAttributes) {
for (ConvocatoriaCargo conv:convoRepo.findByCargoId(convocatoria.getCargoId())) {
@RequestMapping("/crear/{id}")
public String guardarConvocatoriaa(@PathVariable(required = false) Long id,RedirectAttributes redirectAttributes) {
for (ConvocatoriaCargo conv:convoRepo.findByCargoId(id)) {
if(conv.getEstado()==EstadoConvocatoria.abierto){
redirectAttributes.addFlashAttribute("SUCCESS_MESSAGE", "Ya existe una convocatoria Abierta con ese cargo");
return "redirect:/convocatorias";
}
}
if(result.hasErrors());
convocatoria.setFechaInicio(new Date());
convocatoria.setEstado(EstadoConvocatoria.abierto);
convoRepo.save(convocatoria);
return "redirect:/convocatorias";
}
@RequestMapping("/convocatoria/crear/{id}")
public String guardarConvocatoriaa(@PathVariable(required = false) Long id) {
ConvocatoriaCargo convocatoria=new ConvocatoriaCargo();
convocatoria.setCargo(cargoRepo.findByIdCargo(id));
convocatoria.setCargoId(cargoRepo.findByIdCargo(id).getId());
......@@ -76,36 +68,16 @@ public class ConvocatoriaController {
return "redirect:/convocatorias";
}
/* @RequestMapping("/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());
model.addAttribute("listaConvocatoria", convoRepo.findAll());
}
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);
model.addAttribute("listaConvocatoria", convoRepo.findAll());
}
return "convocatoria-form";
}*/
@RequestMapping("/convocatoria/{id}")
public String guardarConvocatoria(@ModelAttribute ConvocatoriaCargo convocatoria, BindingResult result, @PathVariable(required = false) Long id,Model model) {
if(id != null) convocatoria.setId(id);
convocatoria=convoRepo.findByIdConvocatoriaCargo(id);
@RequestMapping("/cerrar/{id}")
public String cerrarConvocatoria( @PathVariable(required = false) Long id) {
ConvocatoriaCargo convocatoria=convoRepo.getById(id);
if(convocatoria == null || convocatoria.getEstado() == EstadoConvocatoria.cerrado) return "error";
convocatoria.setEstado(EstadoConvocatoria.cerrado);
convocatoria.setFechaFin(new Date());
convocatoria.getCargo().setExisteConvocatoria(false);
convoRepo.save(convocatoria);
return "redirect:/convocatorias";
}
}
......@@ -21,8 +21,8 @@ import org.springframework.web.servlet.view.RedirectView;
import javax.validation.ConstraintViolationException;
@Controller
@RequestMapping("/work-with-us")
public class PostulanteController {
PostulanteRepository post;
TecnologiaRepository tecRepo;
......@@ -55,7 +55,7 @@ public class PostulanteController {
}
@RequestMapping(value = "/work-with-us",method = RequestMethod.GET)
@RequestMapping(method = RequestMethod.GET)
public String getFormPostulante(Model model){
model.addAttribute("tecnologias", tecRepo.findAll());
model.addAttribute("tiposDeEstudio", TipoDeEstudio.values());
......@@ -77,7 +77,7 @@ public class PostulanteController {
}
@PostMapping(value = "/work-with-us",consumes = "multipart/form-data")
@PostMapping(consumes = "multipart/form-data")
public RedirectView guardarPostulante(@RequestPart(name = "file",required = false) MultipartFile file,@RequestPart("postulante") Postulante postulante, RedirectAttributes redirectAttributes){
//Codigo encargado de modificar postulacion si se envia mismo CI
//Codigo encargado de modificar postulacion si se envia mismo CI
......@@ -117,7 +117,7 @@ public class PostulanteController {
@GetMapping("/work-with-us/postulacion-correcta")
@GetMapping("/postulacion-correcta")
public String successPostulation(Model model){
model.addAttribute("mensaje1", "Tu informacion se ha recibido correctamente!");
model.addAttribute("mensaje2", " espera por que nos pongamos en contacto!");
......
......@@ -3,6 +3,7 @@ package com.roshka.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.roshka.DTO.ConvocatoriaDTO;
import com.roshka.DTO.PostulanteListaDTO;
import com.roshka.modelo.DBFile;
import com.roshka.modelo.EstadoPostulante;
......@@ -36,9 +37,11 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
@Controller
@RequestMapping("/postulantes")
public class PostulanteRRHHController {
PostulanteRepository post;
TecnologiaRepository tecRepo;
......@@ -48,7 +51,7 @@ public class PostulanteRRHHController {
CiudadRepository ciuRepo;
EstudioRepository estudioRepository;
PostulanteTecnologiaRepository postulanteTecnologiaRepository;
ConvocatoriaRepository cargoRepo;
ConvocatoriaRepository convRepo;
CargoRepository carRepo;
DBFileRepository fileRepo;
......@@ -58,7 +61,7 @@ public class PostulanteRRHHController {
InstitucionRepository institucionRepository, DepartamentoRepository depRepo,
CiudadRepository ciuRepo, EstudioRepository estudioRepository,
PostulanteTecnologiaRepository postulanteTecnologiaRepository,
ConvocatoriaRepository cargoRepo, CargoRepository carRepo, DBFileRepository fileRepo) {
ConvocatoriaRepository convRepo, CargoRepository carRepo, DBFileRepository fileRepo) {
this.post = post;
this.tecRepo = tecRepo;
this.expRepo = expRepo;
......@@ -67,12 +70,12 @@ public class PostulanteRRHHController {
this.ciuRepo = ciuRepo;
this.estudioRepository = estudioRepository;
this.postulanteTecnologiaRepository = postulanteTecnologiaRepository;
this.cargoRepo =cargoRepo;
this.convRepo =convRepo;
this.carRepo=carRepo;
this.fileRepo = fileRepo;
}
@RequestMapping("/postulantes")
@RequestMapping()
public String postulantes(HttpServletRequest request, Model model,
@RequestParam(required = false)Long tecId,
@RequestParam(required = false)String nombre,
......@@ -93,10 +96,13 @@ public class PostulanteRRHHController {
model.addAttribute("estadoP", EstadoPostulante.values());
model.addAttribute("cargos", carRepo.findAll());
model.addAttribute("cargoRepo", cargoRepo);
//model.addAttribute("convocatoriaC", cargoRepo.findAll());
try {
model.addAttribute("convocatoriaC", new ObjectMapper().writeValueAsString(cargoRepo.findAll()));
//se convierte a DTO las convocatorias
model.addAttribute("convocatoriaC", new ObjectMapper().writeValueAsString(
convRepo.findAll().stream().map(conv ->
new ConvocatoriaDTO(conv.getId(), conv.getCargoId(), conv.getEstado(), conv.getFechaInicio(), conv.getFechaFin()) )
.collect(Collectors.toList()))
);
} catch (JsonProcessingException er) {
// TODO Auto-generated catch block
er.printStackTrace();
......@@ -111,7 +117,7 @@ public class PostulanteRRHHController {
Page<Postulante> postulantesPag = post.postulantesMultiFiltro(
nombre == null || nombre.trim().isEmpty() ?
new TypedParameterValue(StringType.INSTANCE,null) :
new TypedParameterValue(StringType.INSTANCE,"%"+nombre+"%"),
new TypedParameterValue(StringType.INSTANCE,"%"+nombre.trim()+"%"),
lvlEng, lvlTec, tecId, instId,cargoId,page,estado,convId, infRange, supRange);
model.addAttribute("numeroOcurrencias", postulantesPag.getTotalElements());
List<Postulante> postulantes = postulantesPag.getContent();
......@@ -134,7 +140,7 @@ public class PostulanteRRHHController {
}
@RequestMapping("/postulantesExcel")
@RequestMapping("/excel")
public void exportPostulantesExcel(HttpServletResponse response, Model model,
@RequestParam(required = false)Long tecId,
@RequestParam(required = false)String nombre,
......@@ -186,8 +192,8 @@ public class PostulanteRRHHController {
filtros.put("institucion", instId == null ? "-" : institucionRepository.findById(instId).get().getNombre());
filtros.put("estado", estado == null ? "-" : estado.getEstado());
filtros.put("experienciaEnMeses", expInMonths == null ? "-" : expInMonths.toString());
filtros.put("convocatoria", convId == null ? "-" : cargoRepo.findById(convId).get().getCargo().getNombre());
filtros.put("convocatoriaFecha", convId == null ? "-" : cargoRepo.findById(convId).get().getFechaInicio().toString());
filtros.put("convocatoria", convId == null ? "-" : convRepo.findById(convId).get().getCargo().getNombre());
filtros.put("convocatoriaFecha", convId == null ? "-" : convRepo.findById(convId).get().getFechaInicio().toString());
PostulantesExcelExporter excelExporter = new PostulantesExcelExporter(postulantesDTO, filtros);
......@@ -195,7 +201,7 @@ public class PostulanteRRHHController {
}
@GetMapping({"/postulantes/{postulanteId}"})
@GetMapping({"/{postulanteId}"})
public String getPostulanteDetalle(Model model, @PathVariable("postulanteId") Long postulanteId) {
Postulante p = post.findById(postulanteId).orElse(null);
model.addAttribute("postulante",p);
......@@ -206,7 +212,7 @@ public class PostulanteRRHHController {
}
@PostMapping({"/postulantes/{postulanteId}"})
@PostMapping({"/{postulanteId}"})
public String setPostulanteEstado(@ModelAttribute Postulante postulante, BindingResult result, @PathVariable("postulanteId") Long postulanteId) {
//post.setPostulanteEstadoAndComentario(postulante.getEstadoPostulante(),postulante.getComentarioRRHH(), postulante.getId());
Postulante postulanteVd = post.getById(postulanteId);
......@@ -221,7 +227,7 @@ public class PostulanteRRHHController {
return "redirect:/postulantes/"+postulanteId;
}
@GetMapping("/postulantes/cvFile/{fileId}")
@GetMapping("/cvFile/{fileId}")
public ResponseEntity<Resource> downloadFile(@PathVariable String fileId) {
// Load file from database
DBFile dbFile;
......@@ -240,7 +246,7 @@ public class PostulanteRRHHController {
}
@GetMapping("/postulantes/{id}/pdf")
@GetMapping("/{id}/pdf")
public ResponseEntity<Resource> downloadPDF(@PathVariable Long id) {
// Load file from database
PdfGenerator pdf = new PdfGenerator();
......
......@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@Controller
@RequestMapping("/tecnologias")
public class TecnologiaController {
TecnologiaRepository tecRepo;
......@@ -26,7 +27,7 @@ public TecnologiaController(TecnologiaRepository tecRepo){
}
@GetMapping(path = {"/tecnologia","/tecnologia/{id}"})
@GetMapping(path = {"/agregar","/modificar/{id}"})
public String addtecnologiaView(Model model,@PathVariable(required = false) Long id) {
......@@ -35,7 +36,7 @@ public String addtecnologiaView(Model model,@PathVariable(required = false) Long
return "tecnologia-form";
}
@RequestMapping("/tecnologias")
@RequestMapping()
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"));
......@@ -46,14 +47,14 @@ public String addtecnologiaView(Model model,@PathVariable(required = false) Long
model.addAttribute("pages", tecnologiaPag.getTotalPages());
}
else {
Page<Tecnologia> tecnologiaPag=tecRepo.findByNombreContainingIgnoreCase(nombre,page);
Page<Tecnologia> tecnologiaPag=tecRepo.findByNombreContainingIgnoreCase(nombre.trim(),page);
model.addAttribute("pages", tecnologiaPag.getTotalPages());
model.addAttribute("tecnologias", tecnologiaPag.getContent());
}
return "tecnologias";
}
@PostMapping(path = {"/tecnologia","/tecnologia/{id}"})
@PostMapping(path = {"/agregar","/modificar/{id}"})
public String addtecnologia(@Valid @ModelAttribute Tecnologia tecnologia, BindingResult result, @PathVariable(required = false) Long id, Model model) {
if(result.hasErrors() || (id==null && tecRepo.existsByNombreIgnoreCase(tecnologia.getNombre()))){
model.addAttribute("mismoNombre", true);
......
......@@ -16,7 +16,7 @@ spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
#server.port=8888
spring.mvc.view.prefix=/jsp/
spring.mvc.view.suffix=.jsp
server.error.whitelabel.enabled=false
spring.mail.host=smtp.gmail.com
spring.mail.username=fpunascrumkanban@gmail.com
spring.mail.password=fpunascrumkanban123
......@@ -24,8 +24,6 @@ spring.mail.port=587
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
jsp-inheritance-prefix=/jsp/layouts/
jsp-inheritance-suffix=.jsp
## MULTIPART (MultipartProperties)
# Enable multipart uploads
......
......@@ -21,13 +21,13 @@
"nroDocument": 1931312,
"ciudadId": 197,
"telefono": "(902) 453-2114",
"fechaNacimiento": "2021-06-10",
"fechaNacimiento": "1980-06-10",
"nivelIngles": 2,
"experiencias": [
{
"institucion": "Tripsch",
"fechaDesde": "2014-01-08",
"fechaHasta": "2016-01-01",
"fechaHasta": "2014-04-01",
"cargo": "developer frontend",
"descripcion": "Sit velit cupidatat sit aute commodo nisi esse sint eu sint nisi et.",
"nombreReferencia": "Sallie",
......@@ -103,7 +103,7 @@
"nroDocument": 4879946,
"ciudadId": 47,
"telefono": "(975) 451-3454",
"fechaNacimiento": "2020-12-03",
"fechaNacimiento": "1981-12-03",
"nivelIngles": 5,
"experiencias": [
{
......@@ -196,7 +196,7 @@
"nroDocument": 5481163,
"ciudadId": 181,
"telefono": "(907) 524-2462",
"fechaNacimiento": "2020-12-02",
"fechaNacimiento": "1982-12-02",
"nivelIngles": 1,
"experiencias": [
{
......@@ -286,7 +286,7 @@
"nroDocument": 3617097,
"ciudadId": 98,
"telefono": "(897) 507-2999",
"fechaNacimiento": "2021-05-21",
"fechaNacimiento": "1983-05-21",
"nivelIngles": 4,
"experiencias": [
{
......@@ -378,13 +378,13 @@
"nroDocument": 5713887,
"ciudadId": 131,
"telefono": "(974) 548-2840",
"fechaNacimiento": "2021-02-06",
"fechaNacimiento": "1984-02-06",
"nivelIngles": 3,
"experiencias": [
{
"institucion": "Bleendot",
"fechaDesde": "2014-05-22",
"fechaHasta": "2016-01-01",
"fechaHasta": "2014-07-01",
"cargo": "dba",
"descripcion": "Eu sit magna id ullamco cupidatat nisi incididunt id dolore Lorem cupidatat in.",
"nombreReferencia": "Mason",
......@@ -468,13 +468,13 @@
"nroDocument": 1488230,
"ciudadId": 11,
"telefono": "(824) 412-3682",
"fechaNacimiento": "2021-01-27",
"fechaNacimiento": "1985-01-27",
"nivelIngles": 1,
"experiencias": [
{
"institucion": "Codact",
"fechaDesde": "2014-07-20",
"fechaHasta": "2016-01-01",
"fechaHasta": "2014-12-01",
"cargo": "dba",
"descripcion": "Anim laboris occaecat excepteur excepteur incididunt ad cupidatat commodo eiusmod tempor nisi est voluptate reprehenderit.",
"nombreReferencia": "Tanya",
......@@ -517,7 +517,7 @@
"tecnologias": [
{
"tecnologia": {
"id": 7
"id": 9
},
"nivel": 1
},
......@@ -551,13 +551,13 @@
"nroDocument": 4884655,
"ciudadId": 162,
"telefono": "(907) 537-2762",
"fechaNacimiento": "2021-09-12",
"fechaNacimiento": "1986-09-12",
"nivelIngles": 5,
"experiencias": [
{
"institucion": "Fuelton",
"fechaDesde": "2014-04-02",
"fechaHasta": "2016-01-01",
"fechaHasta": "2015-01-01",
"cargo": "developer frontend",
"descripcion": "Nostrud quis pariatur Lorem dolor proident deserunt esse sunt.",
"nombreReferencia": "Chan",
......@@ -636,7 +636,7 @@
"nroDocument": 2671061,
"ciudadId": 226,
"telefono": "(916) 488-2247",
"fechaNacimiento": "2020-11-14",
"fechaNacimiento": "1987-11-14",
"nivelIngles": 4,
"experiencias": [
{
......@@ -719,7 +719,7 @@
"nroDocument": 4740134,
"ciudadId": 218,
"telefono": "(817) 499-3717",
"fechaNacimiento": "2021-03-13",
"fechaNacimiento": "1988-03-13",
"nivelIngles": 5,
"experiencias": [
{
......@@ -788,7 +788,7 @@
"nroDocument": 4274813,
"ciudadId": 3,
"telefono": "(837) 402-3553",
"fechaNacimiento": "2021-06-27",
"fechaNacimiento": "1989-06-27",
"nivelIngles": 2,
"experiencias": [
{
......@@ -878,7 +878,7 @@
"nroDocument": 5839103,
"ciudadId": 43,
"telefono": "(942) 566-2313",
"fechaNacimiento": "2021-08-01",
"fechaNacimiento": "1990-08-01",
"nivelIngles": 5,
"experiencias": [
{
......@@ -961,7 +961,7 @@
"nroDocument": 1576323,
"ciudadId": 53,
"telefono": "(950) 437-2238",
"fechaNacimiento": "2021-10-30",
"fechaNacimiento": "1991-10-30",
"nivelIngles": 4,
"experiencias": [
{
......@@ -1037,7 +1037,7 @@
"nroDocument": 2976754,
"ciudadId": 215,
"telefono": "(819) 461-2714",
"fechaNacimiento": "2021-05-01",
"fechaNacimiento": "1992-05-01",
"nivelIngles": 4,
"experiencias": [
{
......@@ -1137,7 +1137,7 @@
"nroDocument": 1022119,
"ciudadId": 183,
"telefono": "(981) 425-3589",
"fechaNacimiento": "2021-03-22",
"fechaNacimiento": "1993-03-22",
"nivelIngles": 2,
"experiencias": [
{
......@@ -1207,7 +1207,7 @@
"nroDocument": 3466668,
"ciudadId": 249,
"telefono": "(868) 420-2944",
"fechaNacimiento": "2021-10-01",
"fechaNacimiento": "1994-10-01",
"nivelIngles": 4,
"experiencias": [
{
......@@ -1290,7 +1290,7 @@
"nroDocument": 2186440,
"ciudadId": 73,
"telefono": "(935) 475-2605",
"fechaNacimiento": "2021-08-12",
"fechaNacimiento": "1995-08-12",
"nivelIngles": 5,
"experiencias": [
{
......@@ -1354,7 +1354,7 @@
"nroDocument": 3796850,
"ciudadId": 202,
"telefono": "(852) 464-2931",
"fechaNacimiento": "2021-06-01",
"fechaNacimiento": "1996-06-01",
"nivelIngles": 4,
"experiencias": [
{
......@@ -1399,7 +1399,7 @@
},
{
"tecnologia": {
"id": 4
"id": 9
},
"nivel": 4
},
......@@ -1445,7 +1445,7 @@
"nroDocument": 3623434,
"ciudadId": 150,
"telefono": "(822) 487-2387",
"fechaNacimiento": "2020-11-08",
"fechaNacimiento": "1997-11-08",
"nivelIngles": 2,
"experiencias": [
{
......@@ -1534,7 +1534,7 @@
"nroDocument": 3406555,
"ciudadId": 13,
"telefono": "(812) 584-3129",
"fechaNacimiento": "2021-09-23",
"fechaNacimiento": "1998-09-23",
"nivelIngles": 1,
"experiencias": [
{
......@@ -1627,7 +1627,7 @@
"nroDocument": 4000978,
"ciudadId": 133,
"telefono": "(839) 412-3286",
"fechaNacimiento": "2021-04-08",
"fechaNacimiento": "1999-04-08",
"nivelIngles": 2,
"experiencias": [
{
......@@ -1724,7 +1724,7 @@
"nroDocument": 1006103,
"ciudadId": 182,
"telefono": "(813) 418-3346",
"fechaNacimiento": "2021-11-04",
"fechaNacimiento": "1980-11-04",
"nivelIngles": 4,
"experiencias": [
{
......@@ -1808,7 +1808,7 @@
"nroDocument": 2267680,
"ciudadId": 63,
"telefono": "(858) 426-3958",
"fechaNacimiento": "2021-08-12",
"fechaNacimiento": "1981-08-12",
"nivelIngles": 4,
"experiencias": [
{
......@@ -1917,7 +1917,7 @@
"nroDocument": 5542891,
"ciudadId": 97,
"telefono": "(950) 568-2011",
"fechaNacimiento": "2021-08-06",
"fechaNacimiento": "1982-08-06",
"nivelIngles": 5,
"experiencias": [
{
......@@ -1994,7 +1994,7 @@
"nroDocument": 1786934,
"ciudadId": 245,
"telefono": "(982) 523-2626",
"fechaNacimiento": "2021-09-22",
"fechaNacimiento": "1983-09-22",
"nivelIngles": 5,
"experiencias": [
{
......@@ -2070,7 +2070,7 @@
"nroDocument": 5603527,
"ciudadId": 74,
"telefono": "(908) 532-2333",
"fechaNacimiento": "2021-08-25",
"fechaNacimiento": "1984-08-25",
"nivelIngles": 5,
"experiencias": [
{
......@@ -2169,7 +2169,7 @@
"nroDocument": 2399194,
"ciudadId": 122,
"telefono": "(980) 566-3470",
"fechaNacimiento": "2021-06-18",
"fechaNacimiento": "1985-06-18",
"nivelIngles": 2,
"experiencias": [
{
......@@ -2255,7 +2255,7 @@
"nroDocument": 5541715,
"ciudadId": 218,
"telefono": "(846) 582-2018",
"fechaNacimiento": "2021-01-13",
"fechaNacimiento": "1986-01-13",
"nivelIngles": 5,
"experiencias": [
{
......@@ -2318,7 +2318,7 @@
"nroDocument": 1491237,
"ciudadId": 177,
"telefono": "(852) 552-2879",
"fechaNacimiento": "2021-03-27",
"fechaNacimiento": "1987-03-27",
"nivelIngles": 5,
"experiencias": [
{
......@@ -2418,7 +2418,7 @@
"nroDocument": 3396988,
"ciudadId": 23,
"telefono": "(948) 472-2691",
"fechaNacimiento": "2021-08-16",
"fechaNacimiento": "1988-08-16",
"nivelIngles": 5,
"experiencias": [
{
......@@ -2504,7 +2504,7 @@
"nroDocument": 5901523,
"ciudadId": 44,
"telefono": "(967) 576-2818",
"fechaNacimiento": "2021-09-12",
"fechaNacimiento": "1989-09-12",
"nivelIngles": 2,
"experiencias": [
{
......@@ -2573,7 +2573,7 @@
"nroDocument": 5063647,
"ciudadId": 27,
"telefono": "(901) 446-2284",
"fechaNacimiento": "2021-05-23",
"fechaNacimiento": "1990-05-23",
"nivelIngles": 3,
"experiencias": [
{
......@@ -2647,7 +2647,7 @@
"nroDocument": 4699791,
"ciudadId": 192,
"telefono": "(842) 489-3465",
"fechaNacimiento": "2021-06-11",
"fechaNacimiento": "1991-06-11",
"nivelIngles": 2,
"experiencias": [
{
......@@ -2724,13 +2724,13 @@
"nroDocument": 2012089,
"ciudadId": 67,
"telefono": "(954) 447-3151",
"fechaNacimiento": "2021-02-14",
"fechaNacimiento": "1992-02-14",
"nivelIngles": 1,
"experiencias": [
{
"institucion": "Quizka",
"fechaDesde": "2014-09-22",
"fechaHasta": "2016-01-01",
"fechaHasta": "2015-06-01",
"cargo": "developer frontend",
"descripcion": "Veniam ea veniam ut Lorem cillum elit exercitation pariatur elit elit fugiat sit exercitation non.",
"nombreReferencia": "Humphrey",
......@@ -2788,7 +2788,7 @@
"nroDocument": 2529945,
"ciudadId": 78,
"telefono": "(920) 502-3490",
"fechaNacimiento": "2021-10-25",
"fechaNacimiento": "1993-10-25",
"nivelIngles": 3,
"experiencias": [
{
......@@ -2876,7 +2876,7 @@
"nroDocument": 1121378,
"ciudadId": 126,
"telefono": "(815) 404-3974",
"fechaNacimiento": "2021-03-16",
"fechaNacimiento": "1994-03-16",
"nivelIngles": 4,
"experiencias": [
{
......@@ -2941,7 +2941,7 @@
},
{
"tecnologia": {
"id": 5
"id": 9
},
"nivel": 3
},
......@@ -2990,7 +2990,7 @@
"nroDocument": 1424921,
"ciudadId": 87,
"telefono": "(921) 592-2048",
"fechaNacimiento": "2021-07-28",
"fechaNacimiento": "1995-07-28",
"nivelIngles": 5,
"experiencias": [
{
......@@ -3070,7 +3070,7 @@
"nroDocument": 5193911,
"ciudadId": 63,
"telefono": "(867) 553-2599",
"fechaNacimiento": "2021-03-03",
"fechaNacimiento": "1996-03-03",
"nivelIngles": 1,
"experiencias": [
{
......@@ -3155,7 +3155,7 @@
"nroDocument": 4212974,
"ciudadId": 204,
"telefono": "(859) 540-3824",
"fechaNacimiento": "2021-03-26",
"fechaNacimiento": "1997-03-26",
"nivelIngles": 3,
"experiencias": [
{
......@@ -3235,7 +3235,7 @@
"nroDocument": 3741003,
"ciudadId": 210,
"telefono": "(889) 446-2043",
"fechaNacimiento": "2021-05-02",
"fechaNacimiento": "1998-05-02",
"nivelIngles": 1,
"experiencias": [
{
......@@ -3314,7 +3314,7 @@
"nroDocument": 1787314,
"ciudadId": 223,
"telefono": "(839) 466-2513",
"fechaNacimiento": "2021-10-10",
"fechaNacimiento": "1999-10-10",
"nivelIngles": 4,
"experiencias": [
{
......@@ -3394,7 +3394,7 @@
"nroDocument": 5196272,
"ciudadId": 49,
"telefono": "(903) 541-3165",
"fechaNacimiento": "2021-08-20",
"fechaNacimiento": "1980-08-20",
"nivelIngles": 4,
"experiencias": [
{
......@@ -3502,7 +3502,7 @@
"nroDocument": 4431767,
"ciudadId": 230,
"telefono": "(810) 471-2703",
"fechaNacimiento": "2021-08-24",
"fechaNacimiento": "1981-08-24",
"nivelIngles": 5,
"experiencias": [
{
......@@ -3602,7 +3602,7 @@
"nroDocument": 1686867,
"ciudadId": 245,
"telefono": "(958) 454-3232",
"fechaNacimiento": "2020-12-18",
"fechaNacimiento": "1982-12-18",
"nivelIngles": 3,
"experiencias": [
{
......@@ -3697,13 +3697,13 @@
"nroDocument": 2162566,
"ciudadId": 161,
"telefono": "(838) 581-3481",
"fechaNacimiento": "2021-10-19",
"fechaNacimiento": "1983-10-19",
"nivelIngles": 3,
"experiencias": [
{
"institucion": "Anocha",
"fechaDesde": "2014-08-23",
"fechaHasta": "2016-01-01",
"fechaHasta": "2014-10-01",
"cargo": "developer frontend",
"descripcion": "Deserunt cupidatat proident occaecat cupidatat ullamco magna esse sit deserunt anim sunt esse.",
"nombreReferencia": "Nina",
......@@ -3713,7 +3713,7 @@
{
"institucion": "Hairport",
"fechaDesde": "2014-11-23",
"fechaHasta": "2016-01-01",
"fechaHasta": "2015-02-01",
"cargo": "developer frontend",
"descripcion": "Occaecat ad sunt dolore laborum adipisicing exercitation nisi et aute id anim.",
"nombreReferencia": "Chavez",
......@@ -3723,7 +3723,7 @@
{
"institucion": "Xurban",
"fechaDesde": "2014-12-08",
"fechaHasta": "2016-01-01",
"fechaHasta": "2015-01-01",
"cargo": "developer backend",
"descripcion": "Veniam et nostrud consectetur magna aute cupidatat aute elit do non veniam.",
"nombreReferencia": "Ball",
......@@ -3772,7 +3772,7 @@
},
{
"tecnologia": {
"id": 3
"id": 9
},
"nivel": 3
},
......@@ -3803,7 +3803,7 @@
"nroDocument": 1453177,
"ciudadId": 73,
"telefono": "(972) 572-2318",
"fechaNacimiento": "2021-06-09",
"fechaNacimiento": "1984-06-09",
"nivelIngles": 4,
"experiencias": [
{
......@@ -3895,7 +3895,7 @@
"nroDocument": 2003119,
"ciudadId": 136,
"telefono": "(897) 499-2259",
"fechaNacimiento": "2021-02-08",
"fechaNacimiento": "1985-02-08",
"nivelIngles": 5,
"experiencias": [
{
......@@ -3976,7 +3976,7 @@
"nroDocument": 2568572,
"ciudadId": 70,
"telefono": "(928) 514-3477",
"fechaNacimiento": "2021-01-17",
"fechaNacimiento": "1986-01-17",
"nivelIngles": 5,
"experiencias": [
{
......@@ -4061,7 +4061,7 @@
"nroDocument": 5638888,
"ciudadId": 29,
"telefono": "(977) 470-3927",
"fechaNacimiento": "2021-03-14",
"fechaNacimiento": "1987-03-14",
"nivelIngles": 2,
"experiencias": [
{
......@@ -4147,7 +4147,7 @@
"nroDocument": 3690565,
"ciudadId": 50,
"telefono": "(931) 592-3309",
"fechaNacimiento": "2021-06-07",
"fechaNacimiento": "1988-06-07",
"nivelIngles": 4,
"experiencias": [
{
......@@ -4232,7 +4232,7 @@
"nroDocument": 1591093,
"ciudadId": 37,
"telefono": "(800) 578-3214",
"fechaNacimiento": "2020-12-11",
"fechaNacimiento": "1989-12-11",
"nivelIngles": 4,
"experiencias": [
{
......
......@@ -30,5 +30,9 @@
{
"id": 8,
"nombre": "sqlserver"
},
{
"id": 9,
"nombre": "java"
}
]
\ No newline at end of file
......@@ -256,77 +256,3 @@ label:hover {
-moz-appearance: textfield;
}
.pointer {cursor: pointer;}
/*
.size-placeholder::placeholder{
background-size: 18px 18px;
background-repeat: no-repeat;
background-position: right center;
}
/*Nombre
.nombre-ph::placeholder{
background-image: url(../img/placeholder/name_ph.png);
}
Apellido
#apellido::placeholder{
background-image: url(../img/placeholder/lastname_ph.png);
}
Email
#correo::placeholder{
background-image: url(../img/placeholder/email_ph.png);
}
Numero de documento*/
/*
.nroDocument-ph::placeholder{
background-image: url(../img/placeholder/nroDocumento_ph.png);
margin-left: 5px;
}
Direccion
#direccion::placeholder{
background-image: url(../img/placeholder/adress_ph.png);
background-size: 14px 14px;
}*/
/*Telefono*/
/*
.telefono-ph::placeholder{
background-image: url(../img/placeholder/telephone_ph.png);
}
/*Modal Estudio
#institucionEstudio::placeholder{
background-image: url(../img/placeholder/studios_ph.png);
}
#temaDeEstudio::placeholder{
background-image: url(../img/placeholder/studios_ph.png);
}
#institucionExperiencia::placeholder{
background-image: url(../img/placeholder/studios_ph.png);
}
#cargo::placeholder{
background-image: url(../img/placeholder/cargo_ph.png);
}
#descripcion::placeholder{
background-image: url(../img/placeholder/description_ph.png);
}
#refNombre::placeholder{
background-image: url(../img/placeholder/name_ph.png);
}*/
/*
.telefono-ph::placeholder{
background-image: url(../img/placeholder/telephone_ph.png);
}
#motivoSalida::placeholder{
background-image: url(../img/placeholder/motivoSalida_ph.png);
}
#relacion::placeholder{
background-image: url(../img/placeholder/relacion_ph.png);
}
*/
/*Prueba Font Awesome*/
......@@ -10,7 +10,7 @@
<h5>Cargo</h5>
</div>
<form:form
action="/cargo/${cargo.id == null ? '' : cargo.id}"
action="/cargos/${cargo.id == null ? 'agregar' : 'modificar/'.concat(cargo.id)}"
method="post"
modelAttribute="cargo"
class="d-flex flex-column"
......
......@@ -50,10 +50,10 @@ contentType="text/html;charset=UTF-8" language="java" %>
>Ver Convocatorias</a
>
</td>
<td><a href="/cargo/${cargo.id}">Editar cargo</a></td>
<td><a href="/cargos/modificar/${cargo.id}">Editar cargo</a></td>
<td>
<c:if test="${!cargo.isExisteConvocatoria()}">
<a class="btn btn-secondary" href="/convocatoria/crear/${cargo.id}">Abrir Convocatoria</a>
<a class="btn btn-secondary" href="/convocatorias/crear/${cargo.id}">Abrir Convocatoria</a>
</c:if>
</td>
</tr>
......
......@@ -92,7 +92,7 @@
<td><a href="/postulantes?convId=${convocatoria.id}">Ver postulantes</a></td>
<td>
<c:if test="${convocatoria.getEstado() != 'cerrado'}">
<a class="btn btn-secondary" href="/convocatoria/${convocatoria.id}">Cerrar convocatoria</a>
<a class="btn btn-secondary" href="/convocatorias/cerrar/${convocatoria.id}">Cerrar convocatoria</a>
</c:if>
</td>
</tr>
......
......@@ -390,49 +390,49 @@
</div>
</div>
<layout:put block="scripts" type="APPEND">
<script src="../valEdad.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
document.querySelector('#pdf').addEventListener("click", async ()=>{
var buttonsRow = document.querySelector('#buttonRow');
var element = document.getElementById('element-to-print');
var carousels = document.querySelectorAll(".pdf-carousel");
var hrs = document.querySelectorAll(".lineas-pdf");
var opt = {
margin: [1, 1, 1, 1],
filename: 'myfile.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 1, height: 1400, width: 1300 },
jsPDF: { unit: 'in', format: 'a2', orientation: 'portrait' }
};
buttonsRow.style.display = "none";
carousels.forEach((element)=>{
element.classList.remove('carousel-item')
});
hrs.forEach((element)=>{
element.style.display = "block"
});
await html2pdf().set(opt).from(element).toPdf().save();
buttonsRow.style.display = "block";
carousels.forEach((element)=>{
element.classList.add('carousel-item')
});
hrs.forEach((element)=>{
element.style.display = "none"
});
})
<%--location.replace("/postulantes/${postulante.id}/")--%>
</script>
</layout:put>
</layout:put>
<layout:put block="scripts" type="APPEND">
<script src="/js/valEdad.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script>
document.querySelector('#pdf').addEventListener("click", async ()=>{
var buttonsRow = document.querySelector('#buttonRow');
var element = document.getElementById('element-to-print');
var carousels = document.querySelectorAll(".pdf-carousel");
var hrs = document.querySelectorAll(".lineas-pdf");
var opt = {
margin: [1, 1, 1, 1],
filename: 'myfile.pdf',
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 1, height: 1400, width: 1300 },
jsPDF: { unit: 'in', format: 'a2', orientation: 'portrait' }
};
buttonsRow.style.display = "none";
carousels.forEach((element)=>{
element.classList.remove('carousel-item')
});
hrs.forEach((element)=>{
element.style.display = "block"
});
await html2pdf().set(opt).from(element).toPdf().save();
buttonsRow.style.display = "block";
carousels.forEach((element)=>{
element.classList.add('carousel-item')
});
hrs.forEach((element)=>{
element.style.display = "none"
});
})
<%--location.replace("/postulantes/${postulante.id}/")--%>
</script>
</layout:put>
</layout:extends>
<%@ 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" %>
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Nunito+Sans:400,400i,700,900&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.1/font/bootstrap-icons.css">
<link rel="icon" href="/img/LogoRoshka.ico">
</head>
<style>
body {
text-align: center;
padding: 40px 0;
background: #EBF0F5;
}
h1 {
color: #ff0000;
font-family: "Nunito Sans", "Helvetica Neue", sans-serif;
font-weight: 900;
font-size: 40px;
margin-bottom: 10px;
}
p {
color: #404F5E;
font-family: "Nunito Sans", "Helvetica Neue", sans-serif;
font-size:20px;
margin: 0;
}
i {
color: #ff0000;
font-size: 100px;
line-height: 200px;
margin-left:-15px;
}
.card {
background: white;
padding: 60px;
border-radius: 4px;
box-shadow: 0 2px 3px #C8D0D8;
display: inline-block;
margin: 0 auto;
}
</style>
<body>
<div class="card">
<h1>
<i class="bi bi-emoji-smile-upside-down"></i>
</h1>
<h1>Oops!</h1>
<p>Ha ocurrido un error.<br/>Ponganse en contacto con los bootcampers.</p>
</div>
</body>
</html>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Nunito+Sans:400,400i,700,900&display=swap" rel="stylesheet">
<link rel="icon" href="../img/LogoRoshka.ico">
<link rel="icon" href="/img/LogoRoshka.ico">
</head>
<style>
body {
......
......@@ -4,8 +4,8 @@
<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%>
<layout:extends name="layouts/base.jsp">
<layout:put block="cssDeclaracion" type="REPLACE">
<link href="../css/indexStyle.css" rel="stylesheet" type="text/css"/>
<link rel="icon" href="../img/LogoRoshka.ico">
<link href="/css/indexStyle.css" rel="stylesheet" type="text/css"/>
<link rel="icon" href="/img/LogoRoshka.ico">
</layout:put>
<layout:put block="contents" type="REPLACE">
<body>
......
......@@ -9,10 +9,10 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<link rel="icon" href="../img/LogoRoshka.ico">
<link rel="icon" href="/img/LogoRoshka.ico">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.1/font/bootstrap-icons.css">
<layout:block name="cssDeclaracion">
<link href="../css/cargoStyle.css" rel="stylesheet" type="text/css"/>
<link href="/css/cargoStyle.css" rel="stylesheet" type="text/css"/>
</layout:block>
<title>RRHH</title>
......@@ -38,7 +38,7 @@
Cargos
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<li><a class="dropdown-item" href="/cargo">Agregar Cargo</a></li>
<li><a class="dropdown-item" href="/cargos/agregar">Agregar Cargo</a></li>
<li><a class="dropdown-item" href="/cargos">Listar cargos</a></li>
<li><a class="dropdown-item" href="/convocatorias">Listar convocatorias</a></li>
</ul>
......@@ -48,7 +48,7 @@
Tecnologías
</a>
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<li><a class="dropdown-item" href="/tecnologia">Agregar</a></li>
<li><a class="dropdown-item" href="/tecnologias/agregar">Agregar</a></li>
<li><a class="dropdown-item" href="/tecnologias">Listar</a></li>
</ul>
</li>
......
......@@ -8,8 +8,8 @@
<title>Login</title>
<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://getbootstrap.com/docs/4.0/examples/signin/signin.css" rel="stylesheet" crossorigin="anonymous">
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<link rel="icon" href="../img/LogoRoshka.ico">
<link href="/css/style.css" rel="stylesheet" type="text/css"/>
<link rel="icon" href="/img/LogoRoshka.ico">
</head>
<body>
<jsp:include page="alerts.jsp"/>
......@@ -22,8 +22,8 @@
<form:form method="post" action="/login">
<h3>Ingresar</h3>
<div align="center">
<img src="../img/LogoRoshka.ico" class="rounded img-fluid" id="image" style="width:auto;height:auto;" alt=""/>
<div>
<img src="/img/LogoRoshka.ico" class="rounded img-fluid" id="image" style="width:auto;height:auto;" alt=""/>
</div>
<div class="form-outline mb-4">
<input type="email" id="typeEmailX-2" class="form-control form-control-lg" name="email" placeholder="example@example.com"/>
......
......@@ -11,9 +11,9 @@
<!-- 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">
<title>Curriculum</title>
<link href="../css/formPostulanteStyle.css" rel="stylesheet" type="text/css"/>
<link href="/css/formPostulanteStyle.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.1/font/bootstrap-icons.css">
<link rel="icon" href="../img/LogoRoshka.ico">
<link rel="icon" href="/img/LogoRoshka.ico">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Shippori+Antique+B1">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
......@@ -519,6 +519,6 @@
<script>
var ciudades = ${ciudades};
</script>
<script src="./main.js"></script>
<script src="/js/main.js"></script>
</body>
</html>
\ No newline at end of file
......@@ -5,7 +5,7 @@
<%@ taglib uri="http://kwonnam.pe.kr/jsp/template-inheritance" prefix="layout"%>
<layout:extends name="layouts/base.jsp">
<layout:put block="cssDeclaracion" type="APPEND">
<link href="../css/PostulanteStyle.css" rel="stylesheet" type="text/css"/>
<link href="/css/PostulanteStyle.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
</layout:put>
......@@ -22,7 +22,7 @@
<button class="btn btn-primary">Buscar</button>
</div>
<div class="col" style="float: left;">
<a href="/postulantesExcel?${query}" type="button" class="btn btn-light float-end">
<a href="/postulantes/excel?${query}" type="button" class="btn btn-light float-end">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-file-earmark-excel-fill" viewBox="0 0 16 16">
<path d="M9.293 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.707A1 1 0 0 0 13.707 4L10 .293A1 1 0 0 0 9.293 0zM9.5 3.5v-2l3 3h-2a1 1 0 0 1-1-1zM5.884 6.68 8 9.219l2.116-2.54a.5.5 0 1 1 .768.641L8.651 10l2.233 2.68a.5.5 0 0 1-.768.64L8 10.781l-2.116 2.54a.5.5 0 0 1-.768-.641L7.349 10 5.116 7.32a.5.5 0 1 1 .768-.64z"></path>
</svg>
......@@ -257,7 +257,7 @@
<script>
var convocatorias = ${convocatoriaC};
</script>
<script src="./Convo.js"></script>
<script src="/js/Convo.js"></script>
<script>
function habilitarLvlTec(){
//si se selecciono una tecnologia entonces permitir seleccionar un nivel
......
......@@ -10,7 +10,7 @@
<h5>Tecnología</h5>
</div>
<form:form
action="/tecnologia/${tecnologia.id == null ? '' : tecnologia.id}"
action="/tecnologias/${tecnologia.id == null ? 'agregar' : 'modificar/'.concat(tecnologia.id)}"
method="post"
modelAttribute="tecnologia"
class="d-flex flex-column"
......
......@@ -49,7 +49,7 @@
<th scope="row">${sta.index+1}</th>
<td>${tecnologia.getNombre()}</td>
<td><a href="/tecnologia/${tecnologia.id}"><i class="bi bi-pencil-fill"></i></a></td>
<td><a href="/tecnologias/modificar/${tecnologia.id}"><i class="bi bi-pencil-fill"></i></a></td>
</tr>
</c:forEach>
......
### TalentoHumano
Talento humano es una aplicación web desarrollada con Java Spring Boot, jsp, css, javascript, postgreSQL, ayudara a Recursos Humanos de Roshka con la recepción de curriculum de un persona que quiere postularse a un puesto vacante en Roshka, mediante la recolección de Datos de un formulario, donde también se podrá adjuntar su curriculum en formato pdf o word, el postulante deberá completar un formulario y los encargados de la revisión de estos podrán visualizar los datos de cada Postulante que haya llenado y enviado el formulario, desde la misma aplicación Web podrá descargar el Curriculum del postulante en formato pdf así también podrá descargar el Curriculum adjuntado por el postulante.
# Uso de la Aplicación web
## Uso del Postulante
El Postulante deberá completar los datos Requeridos para poder enviar el formulario
# <img alt="YAP" src="https://i.imgur.com/lgoRaKe.png">
## Uso Recurso Humanos
El Usuario de Recurso Humanos dispondrá de una cuenta con el cual podrá loguearse.
# <img alt="YAP" src="https://imgur.com/oIyrrVp.png">
Una vez Logueado el Usuario se le abrirá el Home de la Aplicación.
# <img alt="YAP" src="https://imgur.com/12Qs1Ff.png">
Desde el Home podrá seleccionar a donde quiere ir.
# <img alt="YAP" src="https://imgur.com/9bXeYAO.png">
Opción de agregar cargo, donde podrá ingresar un cargo en la empresa.
# <img alt="YAP" src="https://imgur.com/fCXL9je.png">
Opción listar cargos, desde donde tendrá la posibilidad de abrir una convocatoria para un cargo, editar el nombre del cargo, podrá visualizar las convocatorias abiertas y cerradas del cargo en específico que seleccione y también podrá filtrar una búsqueda de un cargo en específico por su nombre.
# <img alt="YAP" src="https://imgur.com/ieQQYRk.png">
Opción de Listar Convocatorias, desde ahí podrá visualizar todas las convocatorias que se han abierto o cerrado independientemente del cargo, también podrá cerrar una convocatoria abierta y filtrar por cargo y estado(abierto o cerrado).
# <img alt="YAP" src="https://imgur.com/Nyvpr5A.png">
Opción de cargar tecnologías al igual que cargar cargos el usuario podrá ingresar una nueva tecnología para cargarla a la base de datos.
# <img alt="YAP" src="https://imgur.com/Wnmsq4U.png">
Opción de listar tecnologías donde podrá visualizar todas las tecnologías cargadas y filtrar de por nombre.
# <img alt="YAP" src="https://imgur.com/SdiYI1A.png">
Opción de visualizar Postulantes, donde podrá ver a todos los postulantes que llenaron el formulario, tendrá la opción de filtrar datos para realizar una búsqueda en específico, descargar un Excel de todos los postulantes cargos o los postulantes filtrados.
# <img alt="YAP" src="https://imgur.com/ApA7A5a.png">
## Diagrama de la base de datos
# <img alt="YAP" src="./db_diagram.png">
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