From 2c5fa82380ac423db0c5879b1a33162ea4ccc613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Fri, 21 Oct 2022 10:40:51 +0200 Subject: [PATCH] Feature: [calendar] Add button to generate document immediatly after saving the calendar --- .../Controller/CalendarController.php | 18 ++++++++++++++++-- .../ChillCalendarBundle/Entity/Calendar.php | 4 ++-- .../Resources/views/Calendar/edit.html.twig | 11 ++++++----- .../Resources/views/Calendar/new.html.twig | 7 ++++--- .../translations/messages.fr.yml | 2 ++ 5 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php index ff470842c..487d50e3a 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php @@ -152,7 +152,10 @@ class CalendarController extends AbstractController $view = '@ChillCalendar/Calendar/editByUser.html.twig'; } - $form = $this->createForm(CalendarType::class, $entity); + $form = $this->createForm(CalendarType::class, $entity) + ->add('save', SubmitType::class) + ->add('save_and_create_doc', SubmitType::class); + $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { @@ -162,6 +165,10 @@ class CalendarController extends AbstractController $params = $this->buildParamsToUrl($user, $accompanyingPeriod); + if ($form->get('save_and_create_doc')->isClicked()) { + return $this->redirectToRoute('chill_calendar_calendardoc_pick_template', ['id' => $entity->getId()]); + } + return $this->redirectToRoute('chill_calendar_calendar_list_by_period', $params); } @@ -277,7 +284,10 @@ class CalendarController extends AbstractController $entity->setAccompanyingPeriod($accompanyingPeriod); } - $form = $this->createForm(CalendarType::class, $entity); + $form = $this->createForm(CalendarType::class, $entity) + ->add('save', SubmitType::class) + ->add('save_and_create_doc', SubmitType::class); + $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { @@ -288,6 +298,10 @@ class CalendarController extends AbstractController $params = $this->buildParamsToUrl($user, $accompanyingPeriod); + if ($form->get('save_and_create_doc')->isClicked()) { + return $this->redirectToRoute('chill_calendar_calendardoc_pick_template', ['id' => $entity->getId()]); + } + return $this->redirectToRoute('chill_calendar_calendar_list_by_period', $params); } diff --git a/src/Bundle/ChillCalendarBundle/Entity/Calendar.php b/src/Bundle/ChillCalendarBundle/Entity/Calendar.php index 2c8992aa0..9104f6131 100644 --- a/src/Bundle/ChillCalendarBundle/Entity/Calendar.php +++ b/src/Bundle/ChillCalendarBundle/Entity/Calendar.php @@ -611,7 +611,7 @@ class Calendar implements TrackCreationInterface, TrackUpdateInterface public function setEndDate(DateTimeImmutable $endDate): self { - if ($this->endDate->getTimestamp() !== $endDate->getTimestamp()) { + if (null === $this->endDate || $this->endDate->getTimestamp() !== $endDate->getTimestamp()) { $this->increaseaDatetimeVersion(); } @@ -662,7 +662,7 @@ class Calendar implements TrackCreationInterface, TrackUpdateInterface public function setStartDate(DateTimeImmutable $startDate): self { - if ($this->startDate->getTimestamp() !== $startDate->getTimestamp()) { + if (null === $this->startDate || $this->startDate->getTimestamp() !== $startDate->getTimestamp()) { $this->increaseaDatetimeVersion(); } diff --git a/src/Bundle/ChillCalendarBundle/Resources/views/Calendar/edit.html.twig b/src/Bundle/ChillCalendarBundle/Resources/views/Calendar/edit.html.twig index f609b9d44..fce022ac4 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/views/Calendar/edit.html.twig +++ b/src/Bundle/ChillCalendarBundle/Resources/views/Calendar/edit.html.twig @@ -77,11 +77,12 @@ {{ 'Cancel'|trans|chill_return_path_label }} -
  • - -
  • +
  • + {{ form_widget(form.save_and_create_doc, { 'attr' : { 'class' : 'btn btn-create' }, 'label': 'chill_calendar.Save and add a document'|trans }) }} +
  • +
  • + {{ form_widget(form.save, { 'attr' : { 'class' : 'btn btn-create' }, 'label': 'Save'|trans }) }} +
  • {{ form_end(form) }} diff --git a/src/Bundle/ChillCalendarBundle/Resources/views/Calendar/new.html.twig b/src/Bundle/ChillCalendarBundle/Resources/views/Calendar/new.html.twig index 26ce25655..2e2ca9ce1 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/views/Calendar/new.html.twig +++ b/src/Bundle/ChillCalendarBundle/Resources/views/Calendar/new.html.twig @@ -78,9 +78,10 @@
  • - + {{ form_widget(form.save_and_create_doc, { 'attr' : { 'class' : 'btn btn-create' }, 'label': 'chill_calendar.Create and add a document'|trans }) }} +
  • +
  • + {{ form_widget(form.save, { 'attr' : { 'class' : 'btn btn-create' }, 'label': 'Create'|trans }) }}
  • {{ form_end(form) }} diff --git a/src/Bundle/ChillCalendarBundle/translations/messages.fr.yml b/src/Bundle/ChillCalendarBundle/translations/messages.fr.yml index 95d99b867..bd9182e85 100644 --- a/src/Bundle/ChillCalendarBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillCalendarBundle/translations/messages.fr.yml @@ -52,6 +52,8 @@ chill_calendar: Next calendars: Prochains rendez-vous Add a document: Ajouter un document Documents: Documents + Create and add a document: Créer et ajouter un document + Save and add a document: Enregistrer et ajouter un document remote_ms_graph: