From 0b6b25fd95b7d87e3f391f7e6e3e6a3cfd5539c1 Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Wed, 4 Oct 2023 12:47:23 +0200 Subject: [PATCH] improve histories order since User entity --- .../UserJobScopeHistoriesController.php | 20 ++++++------ src/Bundle/ChillMainBundle/Entity/User.php | 32 +++++++++++++++++++ .../Resources/views/User/history.html.twig | 4 +-- 3 files changed, 45 insertions(+), 11 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Controller/UserJobScopeHistoriesController.php b/src/Bundle/ChillMainBundle/Controller/UserJobScopeHistoriesController.php index 4014e0593..55d7aceb7 100644 --- a/src/Bundle/ChillMainBundle/Controller/UserJobScopeHistoriesController.php +++ b/src/Bundle/ChillMainBundle/Controller/UserJobScopeHistoriesController.php @@ -28,16 +28,18 @@ class UserJobScopeHistoriesController extends AbstractController */ public function indexAction(User $user): Response { - $jobHistories = $user->getUserJobHistories(); - $scopeHistories = $user->getMainScopeHistories(); - + $jobHistories = $user->getUserJobHistoriesOrdered(); + $scopeHistories = $user->getMainScopeHistoriesOrdered(); return new Response( - $this->engine->render('@ChillMain/User/history.html.twig', [ - 'user' => $user, - 'jobHistories' => $jobHistories, - 'scopeHistories' => $scopeHistories, - ] - )); + $this->engine->render( + '@ChillMain/User/history.html.twig', + [ + 'user' => $user, + 'jobHistories' => $jobHistories, + 'scopeHistories' => $scopeHistories, + ] + ) + ); } } diff --git a/src/Bundle/ChillMainBundle/Entity/User.php b/src/Bundle/ChillMainBundle/Entity/User.php index 64f0e18f6..33c8be166 100644 --- a/src/Bundle/ChillMainBundle/Entity/User.php +++ b/src/Bundle/ChillMainBundle/Entity/User.php @@ -283,6 +283,22 @@ class User implements UserInterface, \Stringable return $this->scopeHistories; } + /** + * @return ArrayCollection|UserScopeHistory[] + */ + public function getMainScopeHistoriesOrdered(): ArrayCollection + { + $scopeHistories = $this->getMainScopeHistories(); + + $sortedScopeHistories = $scopeHistories->toArray(); + + usort($sortedScopeHistories, function ($a, $b) { + return $a->getStartDate() < $b->getStartDate() ? 1 : -1; + }); + + return new ArrayCollection($sortedScopeHistories); + } + /** * @return string */ @@ -321,6 +337,22 @@ class User implements UserInterface, \Stringable return $this->jobHistories; } + /** + * @return ArrayCollection|UserJobHistory[] + */ + public function getUserJobHistoriesOrdered(): ArrayCollection + { + $jobHistories = $this->getUserJobHistories(); + + $sortedJobHistories = $jobHistories->toArray(); + + usort($sortedJobHistories, function ($a, $b) { + return $a->getStartDate() < $b->getStartDate() ? 1 : -1; + }); + + return new ArrayCollection($sortedJobHistories); + } + /** * @return string */ diff --git a/src/Bundle/ChillMainBundle/Resources/views/User/history.html.twig b/src/Bundle/ChillMainBundle/Resources/views/User/history.html.twig index ec38ec388..eb1e0e461 100644 --- a/src/Bundle/ChillMainBundle/Resources/views/User/history.html.twig +++ b/src/Bundle/ChillMainBundle/Resources/views/User/history.html.twig @@ -16,7 +16,7 @@ - {% for entity in jobHistories|reverse %} + {% for entity in jobHistories %} {{ entity.startDate|format_datetime('medium') }} @@ -48,7 +48,7 @@ - {% for entity in scopeHistories|reverse %} + {% for entity in scopeHistories %} {{ entity.startDate|format_datetime('medium') }}