diff --git a/Controller/SingleTaskController.php b/Controller/SingleTaskController.php index f163b57d0..58261f348 100644 --- a/Controller/SingleTaskController.php +++ b/Controller/SingleTaskController.php @@ -194,9 +194,10 @@ class SingleTaskController extends Controller $this->addFlash('success', $translator ->trans("The task has been updated")); - return $this->redirectToRoute('chill_task_singletask_list', [ - 'person_id' => $task->getPerson()->getId() - ]); + return $this->redirectToRoute( + 'chill_task_singletask_list', + $request->query->get('list_params', []) + ); } else { $this->addFlash('error', $translator->trans("This form contains errors")); @@ -277,9 +278,10 @@ class SingleTaskController extends Controller ->trans("The task has been successfully removed.")); return $this->redirect($this->generateUrl( - 'chill_task_singletask_list', array( - 'person_id' => $personId - ))); + 'chill_task_singletask_list', + $request->query->get('list_params', [ + 'person_id' => $person->getId() + ]))); } } diff --git a/Menu/UserMenuBuilder.php b/Menu/UserMenuBuilder.php index 3e07815a5..fe0588898 100644 --- a/Menu/UserMenuBuilder.php +++ b/Menu/UserMenuBuilder.php @@ -23,6 +23,7 @@ use Chill\TaskBundle\Templating\UI\CountNotificationTask; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Chill\TaskBundle\Repository\SingleTaskRepository; use Symfony\Component\Translation\TranslatorInterface; +use Chill\MainBundle\Entity\User; /** * @@ -66,19 +67,28 @@ class UserMenuBuilder implements LocalMenuBuilderInterface public function buildMenu($menuId, MenuItem $menu, array $parameters) { - $number = $this->counter->countNotification($this->tokenStorage->getToken() - ->getUser()); + $user = $this->tokenStorage->getToken()->getUser(); + $ended = $this->counter->countNotificationEnded($user); + $warning = $this->counter->countNotificationWarning($user); + if ($ended > 0) { + $this->addItemInMenu($menu, $user, '%number% tasks over deadline', $ended, -15); + } + + if ($warning > 0) { + $this->addItemInMenu($menu, $user, '%number% tasks near deadline', $warning, -14); + } + } + + protected function addItemInMenu(MenuItem $menu, User $u, $message, $number, $order) + { if ($number > 0) { $menu->addChild( - $this->translator->transChoice('%number% tasks near deadline', $number), + $this->translator->transChoice($message, $number), [ 'route' => 'chill_task_singletask_list', 'routeParameters' => [ - 'user_id' => $this->tokenStorage - ->getToken() - ->getUser() - ->getId(), + 'user_id' => $u->getId(), 'status' => [ SingleTaskRepository::DATE_STATUS_WARNING, SingleTaskRepository::DATE_STATUS_ENDED @@ -87,7 +97,7 @@ class UserMenuBuilder implements LocalMenuBuilderInterface ] ]) ->setExtras([ - 'order'=> -15, + 'order'=> $order, 'icon' => 'exclamation-triangle', 'entryclass' => 'user_menu__entry--warning-entry' ]); diff --git a/Resources/translations/messages.fr.yml b/Resources/translations/messages.fr.yml index f08d6aa05..cd3ead95f 100644 --- a/Resources/translations/messages.fr.yml +++ b/Resources/translations/messages.fr.yml @@ -81,4 +81,5 @@ cancel: annuler 'The task has been updated': 'La tâche a été mise à jour' 'The transition is successfully applied': 'La transition a bien été effectuée' 'The transition could not be applied': "La transition n'a pas pu être appliquée" -'%number% tasks near deadline': '{0} Aucune tâche à échance|{1} Une tâche à échéance | ]1,Inf[ %count% tâches à échéance' +'%number% tasks over deadline': '{0} Aucune tâche dépassée|{1} Une tâche dépassée | ]1,Inf[ %count% tâches dépassée' +'%number% tasks near deadline': '{0} Aucune tâche en rappel|{1} Une tâche en rappel | ]1,Inf[ %count% tâches en rappel' diff --git a/Resources/views/SingleTask/_list.html.twig b/Resources/views/SingleTask/_list.html.twig index 6d969bf3e..b6c1ebdbc 100644 --- a/Resources/views/SingleTask/_list.html.twig +++ b/Resources/views/SingleTask/_list.html.twig @@ -65,16 +65,16 @@ {% endif %}