@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(); }
// 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"; }