@RequestMapping(method = RequestMethod.POST, value = "/projet/approve") public String approve(@Valid @ModelAttribute("projet") Projet projet, BindingResult result) { if (result.hasErrors()) { return "projets"; } // projetService.approve(projet); projet.computeTotalBenef(); projetService.update(projet); try { projet.setStatus("approved"); projetService.update(projet); // tdrService.computeTdb(projet.getTdr()); tdrService.computeTdb(tdrService.getById(projet.getTdr().getId())); tdrService.publish(projet.getTdr()); } catch (Exception ex) { // TODO better error gestion ex.printStackTrace(); } return "redirect:list?tdrId=" + projet.getTdr().getId(); }
/** * Save the details of a projet * * @param map * @param tdrId * @return */ @RequestMapping(method = RequestMethod.POST, value = "/projet/save") public String save(@Valid @ModelAttribute("projet") Projet projet, BindingResult result) { if (result .hasErrors()) { // validation check, see // http://www.mkyong.com/spring-mvc/spring-3-mvc-and-jsr303-valid-example/ return "redirect:/projet/details/" + projet.getId(); } projet.computeTotalBenef(); projetService.update(projet); return "redirect:/projet/details/" + projet.getId(); }
// LATER put in a separate controller for only create & update requests @ModelAttribute("projet") public Projet initProjet( @RequestParam(value = "id", required = false) Long projetId, @RequestParam(value = "tdrId", required = false) Long tdrId) { if (projetId != null) { return projetService.getById(projetId); } else if (tdrId != null) { Projet projet = new Projet(); projet.setStatus("created"); Tdr tdr = tdrService.getById(tdrId); projet.setTdr(tdr); return projet; } return null; }
@RequestMapping("projet/list") public String list( @RequestParam(value = "tdrId", required = false) Long tdrId, Map<String, Object> map) { List<Projet> projets; Tdr tdr = null; if (tdrId != null && tdrId != 0) { tdr = tdrService.getById(tdrId); if (tdr != null) { projets = projetService.listByTdr(tdrId); // projets = tdr.getProjets(); // NO no session // projets = tdrService.getProjets(tdr); } else { throw new RuntimeException("no tdr for tdrId " + tdrId); // TODO better } } else { projets = projetService.list(); } map.put("projets", projets); // map.put("projet", new Projet()); // done by initProjet() map.put("tdr", tdr); map.put("tdrId", tdrId); return "projets"; }
@RequestMapping(method = RequestMethod.POST, value = "/projet/add") public String add(@Valid @ModelAttribute("projet") Projet projet, BindingResult result) { if (result.hasErrors()) { if (projet != null) { // result.getModel().put("projet", projet); // for form return "redirect:newProjet?tdrId=" + projet.getTdr().getId(); // TODO should return "newProjet" but at next save then projet is null !?! } return "redirect:/tdr/list"; } // Tdr tdr = tdrService.getById(projet.getTdr().getId());projet.setTdr(tdr); // done by // initProjet() projet.computeTotalBenef(); projetService.create(projet); return "redirect:list?tdrId=" + projet.getTdr().getId(); }
@RequestMapping(method = RequestMethod.GET, value = "projet/details/{projetId}") public String details(Map<String, Object> map, @PathVariable("projetId") long projetId) { Projet projet = projetService.getById(projetId); map.put("projet", projet); return "projetDetails"; }
@RequestMapping(method = RequestMethod.GET, value = "projet/delete/{projetId}") public String delete(@PathVariable("projetId") long projetId) { projetService.delete(projetId); return "redirect:/projet/list"; }