From d94c367e3d428dcf81466ceefaee1f8321dbaded Mon Sep 17 00:00:00 2001 From: nobohan Date: Mon, 8 Nov 2021 14:47:50 +0100 Subject: [PATCH] accompanying period work: can delete the work --- .../AccompanyingCourseWorkController.php | 71 ++++++++----------- .../AccompanyingCourseWork/delete.html.twig | 12 ++-- .../list_by_accompanying_period.html.twig | 5 ++ .../translations/messages.fr.yml | 2 + 4 files changed, 42 insertions(+), 48 deletions(-) diff --git a/src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseWorkController.php b/src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseWorkController.php index 6c5ffc7cb..ec65d08ab 100644 --- a/src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseWorkController.php +++ b/src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseWorkController.php @@ -13,6 +13,7 @@ use Symfony\Component\Serializer\SerializerInterface; use Symfony\Component\Translation\TranslatorInterface; use Symfony\Component\Form\Form; use Chill\PersonBundle\Repository\AccompanyingPeriod\AccompanyingPeriodWorkRepository; +use Psr\Log\LoggerInterface; use Symfony\Component\Form\Extension\Core\Type\SubmitType; class AccompanyingCourseWorkController extends AbstractController @@ -21,17 +22,20 @@ class AccompanyingCourseWorkController extends AbstractController private SerializerInterface $serializer; private AccompanyingPeriodWorkRepository $workRepository; private PaginatorFactory $paginator; + protected LoggerInterface $logger; public function __construct( TranslatorInterface $trans, SerializerInterface $serializer, AccompanyingPeriodWorkRepository $workRepository, PaginatorFactory $paginator + // LoggerInterface $logger, ) { $this->trans = $trans; $this->serializer = $serializer; $this->workRepository = $workRepository; $this->paginator = $paginator; + // $this->logger = $logger; } /** @@ -114,65 +118,48 @@ class AccompanyingCourseWorkController extends AbstractController * @Route( * "{_locale}/person/accompanying-period/work/{id}/delete", * name="chill_person_accompanying_period_work_delete", - * methods={"GET"} + * methods={"GET", "POST", "DELETE"} * ) */ - public function deleteWork(AccompanyingPeriodWork $work): Response + public function deleteWork(AccompanyingPeriodWork $work, Request $request): Response { // TODO ACL - $em = $this->getDoctrine()->getManager(); dump($work); - // [$person, $accompanyingPeriod] = $this->getEntity($request); - - // /* @var $activity Activity */ - // $activity = $em->getRepository('ChillActivityBundle:Activity')->find($id); - - // if (!$activity) { - // throw $this->createNotFoundException('Unable to find Activity entity.'); - // } - - // TODO - // $this->denyAccessUnlessGranted('CHILL_ACTIVITY_DELETE', $activity); $form = $this->createDeleteForm($work->getId()); - // if ($request->getMethod() === Request::METHOD_DELETE) { - // $form->handleRequest($request); + if ($request->getMethod() === Request::METHOD_DELETE) { + $form->handleRequest($request); - // if ($form->isValid()) { + if ($form->isValid()) { - // // $this->logger->notice("An activity has been removed", array( - // // 'by_user' => $this->getUser()->getUsername(), - // // 'activity_id' => $activity->getId(), - // // 'person_id' => $activity->getPerson() ? $activity->getPerson()->getId() : null, - // // 'comment' => $activity->getComment()->getComment(), - // // 'scope_id' => $activity->getScope() ? $activity->getScope()->getId() : null, - // // 'reasons_ids' => $activity->getReasons() - // // ->map(function ($ar) { return $ar->getId(); }) - // // ->toArray(), - // // 'type_id' => $activity->getType()->getId(), - // // 'duration' => $activity->getDurationTime() ? $activity->getDurationTime()->format('U') : null, - // // 'date' => $activity->getDate()->format('Y-m-d'), - // // 'attendee' => $activity->getAttendee() - // // )); //TODO + // $this->logger->notice("An accompanying period work has been removed", [ + // 'by_user' => $this->getUser()->getUsername(), + // 'work_id' => $work->getId(), + // 'accompanying_period_id' => $work->getAccompanyingPeriod()->getId() + // ]); - // $em->remove($work); - // $em->flush(); + $em->remove($work); + $em->flush(); - // // $this->addFlash('success', $this->get('translator') - // // ->trans("The activity has been successfully removed.")); + $this->addFlash( + 'success', + //$translator->trans("The accompanying period work has been successfully removed.") //TODO translation + "The accompanying period work has been successfully removed." + ); - // // $params = $this->buildParamsToUrl($person, $accompanyingPeriod); - // // return $this->redirectToRoute('chill_activity_activity_list', $params); - // } - // } + return $this->redirectToRoute('chill_person_accompanying_period_work_list', [ + 'id' => $work->getAccompanyingPeriod()->getId() + ]); + } + } - return $this->render('@ChillPerson/AccompanyingCourseWork/delete.html.twig', array( + return $this->render('@ChillPerson/AccompanyingCourseWork/delete.html.twig', [ 'accompanyingCourse' => $work->getAccompanyingPeriod(), 'work' => $work, 'delete_form' => $form->createView() - )); + ]); } private function createDeleteForm(int $id): Form @@ -182,7 +169,7 @@ class AccompanyingCourseWorkController extends AbstractController return $this->createFormBuilder() ->setAction($this->generateUrl('chill_person_accompanying_period_work_delete', $params)) ->setMethod('DELETE') - ->add('submit', SubmitType::class, array('label' => 'Delete')) + ->add('submit', SubmitType::class, ['label' => 'Delete']) ->getForm() ; } diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/delete.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/delete.html.twig index e3f2c644e..dba361a24 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/delete.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/delete.html.twig @@ -1,16 +1,16 @@ {% extends "@ChillPerson/AccompanyingCourse/layout.html.twig" %} -{% set activeRouteKey = 'chill_activity_activity_list' %} +{% set activeRouteKey = 'chill_person_accompanying_period_work_list' %} -{% block title 'Remove activity'|trans %} +{% block title 'accompanying_course_work.remove'|trans %} {% block content %} {{ include('@ChillMain/Util/confirmation_template.html.twig', { - 'title' : 'Remove activity'|trans, - 'confirm_question' : 'Are you sure you want to remove the activity about "%name%" ?'|trans({ '%name%' : work.id } ), - 'cancel_route' : 'chill_activity_activity_list', - 'cancel_parameters' : { 'accompanying_period_id' : work.id}, + 'title' : 'accompanying_course_work.remove'|trans, + 'confirm_question' : 'Are you sure you want to remove the work of the accompanying period %name% ?'|trans({ '%name%' : accompanyingCourse.id } ), + 'cancel_route' : 'chill_person_accompanying_period_work_list', + 'cancel_parameters' : {'id' : accompanyingCourse.id}, 'form' : delete_form } ) }} {% endblock %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/list_by_accompanying_period.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/list_by_accompanying_period.html.twig index dd8beded5..797f1bcc8 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/list_by_accompanying_period.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/list_by_accompanying_period.html.twig @@ -103,6 +103,11 @@ href="{{ chill_path_add_return_path('chill_person_accompanying_period_work_edit', { 'id': w.id }) }}" >{% if buttonText is not defined or buttonText == true %}{{ 'Edit'|trans }}{% endif %} +
  • + {% if buttonText is not defined or buttonText == true %}{{ 'Delete'|trans }}{% endif %} +
  • diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml index af3ca6f05..96cf5a469 100644 --- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml @@ -405,6 +405,7 @@ Back to household: Revenir au ménage # accompanying course work Accompanying Course Actions: Actions d'accompagnements Accompanying Course Action: Action d'accompagnement +Are you sure you want to remove the work of the accompanying period %name% ?: Êtes-vous sûr de vouloir supprimer l'action de la période d'accompagnement %name% ? accompanying_course_work: create: Créer une action Create accompanying course work: Créer une action d'accompagnement @@ -419,6 +420,7 @@ accompanying_course_work: results: Résultats - orientations goal: Objectif - motif - dispositif Any work: Aucune action d'accompagnement + remove: Supprimer une action d'accompagnement # Person addresses: Adresses de résidence