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