diff --git a/Controller/HistoryController.php b/Controller/HistoryController.php index f5ffc555b..384b95bf4 100644 --- a/Controller/HistoryController.php +++ b/Controller/HistoryController.php @@ -22,6 +22,64 @@ class HistoryController extends Controller 'person' => $person)); } + + public function createAction($personId) { + $person = $this->_getPerson($personId); + + if ($person === null) { + return $this->createNotFoundException('Person not found'); + } + + $history = new PersonHistoryFile(new \DateTime()); + $history->setPerson($person); + + $motivesArray = $this->get('service_container') + ->getParameter('person.history.close.motives'); + + $form = $this->createForm(new PersonHistoryFileType($motivesArray), + $history); + + $request = $this->getRequest(); + + if ($request->getMethod() === 'POST') { + + $form->handleRequest($request); + + $errors = $this->_validatePerson($person); + + $flashBag = $this->get('session')->getFlashBag(); + + if ($form->isValid(array('Default', 'closed')) + && count($errors) === 0) { + $em = $this->getDoctrine()->getManager(); + + $em->persist($history); + + $em->flush(); + + $flashBag->add('success', + $this->get('translator')->trans( + 'controller.Person.history.create.done')); + + return $this->redirect($this->generateUrl('chill_person_history_list', + array('id' => $person->getId()))); + } else { + + $flashBag->add('danger', $this->get('translator') + ->trans('controller.Person.history.create.error')); + + foreach($errors as $error) { + $flashBag->add('info', $error->getMessage()); + } + } + } + + + + return $this->render('CLChillPersonBundle:History:update.html.twig', + array('form' => $form->createView(), + 'person' => $person ) ); + } public function updateAction($id, $historyId){ $em = $this->getDoctrine()->getManager(); diff --git a/Form/PersonHistoryFileType.php b/Form/PersonHistoryFileType.php index 7690a8dd2..069a414f4 100644 --- a/Form/PersonHistoryFileType.php +++ b/Form/PersonHistoryFileType.php @@ -32,7 +32,9 @@ class PersonHistoryFileType extends AbstractType 'choices' => $this->motives, 'required' => true )) - ->add('memo', 'textarea') + ->add('memo', 'textarea', array( + 'required' => false + )) ; } diff --git a/Resources/config/routing.yml b/Resources/config/routing.yml index 922bbfc40..710fb17fb 100644 --- a/Resources/config/routing.yml +++ b/Resources/config/routing.yml @@ -28,6 +28,11 @@ chill_person_history_list: menu: person order: 100 label: menu.person.history + +chill_person_history_create: + pattern: /{personId}/history/create + defaults: { _controller: CLChillPersonBundle:History:create } + chill_person_history_update: pattern: /{id}/history/{historyId}/update diff --git a/Resources/translations/messages.fr.yml b/Resources/translations/messages.fr.yml index 19ebf09d7..6da41a869 100644 --- a/Resources/translations/messages.fr.yml +++ b/Resources/translations/messages.fr.yml @@ -42,11 +42,14 @@ controller: open: done: Bravo ! Le dossier de %name% est maintenant ouvert. error: Les informations introduites ne sont pas valides. Le dossier n'a pu être ouvert. - error_in_fom: Le formulaire n'est pas valide. + error_in_form: Le formulaire n'est pas valide. is_not_closed: Le dossier de %name% n'est pas fermé. Il ne peut donc être ouvert. update: done: Bravo ! La mise à jour de l'historique a réussi ! error: Les données introduites ne sont pas valides. Veuillez vérifier les informations ci-dessous. + create: + done: Bravo ! L'historique a été modifié. + error: Les données introduites ne sont pas valides. Veuillez vérifier les informations ci-dessous. views: layout: @@ -92,6 +95,7 @@ views: edit: Modifier close: Clôre le dossier open: Ouvrir le dossier + create: Nouvel ouverture-fermeture à une autre date close: last_opening_since: Dernière ouverture le %last_opening%. action: Clotûrer diff --git a/Resources/views/History/list.html.twig b/Resources/views/History/list.html.twig index a8ca3cf6a..ab9a94f80 100644 --- a/Resources/views/History/list.html.twig +++ b/Resources/views/History/list.html.twig @@ -7,7 +7,7 @@ {% block personcontent %} -
{{ 'views.Person.hlist.dateOpening_title'|trans }} | @@ -17,8 +17,9 @@||
---|---|---|
{{ history.dateOpening|date(date_format) }} | {% spaceless %} {% if history.isOpen %} @@ -39,7 +40,14 @@ | |
+ {{ history.memo }}+ |
+