From d1f8f8268ed590b0ae9ac7707b43106b520697de Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Fri, 3 Apr 2020 11:25:08 +0200
Subject: [PATCH] FEAT #13676 TIME 0:05 order baskets by name instead of id

---
 .../folder/controllers/FolderController.php   |  8 ++--
 src/app/group/controllers/GroupController.php | 41 -------------------
 .../UserFollowedResourceController.php        |  2 +-
 .../app/folder/FolderControllerTest.php       |  8 ++--
 .../UserFollowedResourceControllerTest.php    |  8 ++--
 5 files changed, 13 insertions(+), 54 deletions(-)

diff --git a/src/app/folder/controllers/FolderController.php b/src/app/folder/controllers/FolderController.php
index 653df9a7bf2..191f0066fc4 100755
--- a/src/app/folder/controllers/FolderController.php
+++ b/src/app/folder/controllers/FolderController.php
@@ -882,10 +882,10 @@ class FolderController
         }
 
         $baskets = BasketModel::getWithPreferences([
-            'select'    => ['baskets.id', 'baskets.basket_name', 'baskets.basket_clause', 'users_baskets_preferences.group_serial_id', 'usergroups.group_desc'],
-            'where'     => ['users_baskets_preferences.user_serial_id = ?'],
-            'data'      => [$GLOBALS['id']],
-            'orderBy'    => ['baskets.id']
+            'select'  => ['baskets.id', 'baskets.basket_name', 'baskets.basket_clause', 'users_baskets_preferences.group_serial_id', 'usergroups.group_desc'],
+            'where'   => ['users_baskets_preferences.user_serial_id = ?'],
+            'data'    => [$GLOBALS['id']],
+            'orderBy' => ['baskets.basket_name']
         ]);
         $groupsBaskets = [];
         $inCheckedBaskets = [];
diff --git a/src/app/group/controllers/GroupController.php b/src/app/group/controllers/GroupController.php
index d6f83cba8ed..ab480c18d0e 100755
--- a/src/app/group/controllers/GroupController.php
+++ b/src/app/group/controllers/GroupController.php
@@ -356,45 +356,4 @@ class GroupController
 
         return $groupsClause;
     }
-
-    /**
-     * @codeCoverageIgnore
-     */
-    public static function arraySort($aArgs)
-    {
-        ValidatorModel::notEmpty($aArgs, ['data', 'on']);
-        ValidatorModel::arrayType($aArgs, ['data']);
-        ValidatorModel::stringType($aArgs, ['on']);
-
-        $order = SORT_ASC;
-        $sortableArray = [];
-
-        foreach ($aArgs['data'] as $k => $v) {
-            if (is_array($v)) {
-                foreach ($v as $k2 => $v2) {
-                    if ($k2 == $aArgs['on']) {
-                        $sortableArray[$k] = $v2;
-                    }
-                }
-            } else {
-                $sortableArray[$k] = $v;
-            }
-        }
-
-        switch ($order) {
-            case SORT_ASC:
-                asort($sortableArray);
-                break;
-            case SORT_DESC:
-                arsort($sortableArray);
-                break;
-        }
-
-        $newArray = [];
-        foreach ($sortableArray as $k => $v) {
-            $newArray[] = $aArgs['data'][$k];
-        }
-
-        return $newArray;
-    }
 }
diff --git a/src/app/resource/controllers/UserFollowedResourceController.php b/src/app/resource/controllers/UserFollowedResourceController.php
index cb020e3c6b3..4beb38e6e6a 100644
--- a/src/app/resource/controllers/UserFollowedResourceController.php
+++ b/src/app/resource/controllers/UserFollowedResourceController.php
@@ -180,7 +180,7 @@ class UserFollowedResourceController
             'select'    => ['baskets.id', 'baskets.basket_name', 'baskets.basket_clause', 'users_baskets_preferences.group_serial_id', 'usergroups.group_desc'],
             'where'     => ['users_baskets_preferences.user_serial_id = ?'],
             'data'      => [$GLOBALS['id']],
-            'orderBy'   => ['baskets.id']
+            'orderBy'   => ['baskets.basket_name']
         ]);
         $groupsBaskets = [];
         $inCheckedBaskets = [];
diff --git a/test/unitTests/app/folder/FolderControllerTest.php b/test/unitTests/app/folder/FolderControllerTest.php
index 928169dce4b..5bd1b98c87a 100755
--- a/test/unitTests/app/folder/FolderControllerTest.php
+++ b/test/unitTests/app/folder/FolderControllerTest.php
@@ -995,14 +995,14 @@ class FolderControllerTest extends TestCase
 
         $this->assertSame(2, $responseBody['groupsBaskets'][0]['groupId']);
         $this->assertSame('Utilisateur', $responseBody['groupsBaskets'][0]['groupName']);
-        $this->assertSame(4, $responseBody['groupsBaskets'][0]['basketId']);
-        $this->assertSame('Courriers à traiter', $responseBody['groupsBaskets'][0]['basketName']);
+        $this->assertSame(6, $responseBody['groupsBaskets'][0]['basketId']);
+        $this->assertSame('AR en masse : non envoyés', $responseBody['groupsBaskets'][0]['basketName']);
 
 
         $this->assertSame(2, $responseBody['groupsBaskets'][1]['groupId']);
         $this->assertSame('Utilisateur', $responseBody['groupsBaskets'][1]['groupName']);
-        $this->assertSame(6, $responseBody['groupsBaskets'][1]['basketId']);
-        $this->assertSame('AR en masse : non envoyés', $responseBody['groupsBaskets'][1]['basketName']);
+        $this->assertSame(4, $responseBody['groupsBaskets'][1]['basketId']);
+        $this->assertSame('Courriers à traiter', $responseBody['groupsBaskets'][1]['basketName']);
 
         $GLOBALS['userId'] = 'superadmin';
         $userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]);
diff --git a/test/unitTests/app/resource/UserFollowedResourceControllerTest.php b/test/unitTests/app/resource/UserFollowedResourceControllerTest.php
index 3812b84a1ed..25612754081 100644
--- a/test/unitTests/app/resource/UserFollowedResourceControllerTest.php
+++ b/test/unitTests/app/resource/UserFollowedResourceControllerTest.php
@@ -348,13 +348,13 @@ class UserFollowedResourceControllerTest extends TestCase
 
         $this->assertSame(2, $responseBody['groupsBaskets'][0]['groupId']);
         $this->assertSame('Utilisateur', $responseBody['groupsBaskets'][0]['groupName']);
-        $this->assertSame(4, $responseBody['groupsBaskets'][0]['basketId']);
-        $this->assertSame('Courriers à traiter', $responseBody['groupsBaskets'][0]['basketName']);
+        $this->assertSame(6, $responseBody['groupsBaskets'][0]['basketId']);
+        $this->assertSame('AR en masse : non envoyés', $responseBody['groupsBaskets'][0]['basketName']);
 
         $this->assertSame(2, $responseBody['groupsBaskets'][1]['groupId']);
         $this->assertSame('Utilisateur', $responseBody['groupsBaskets'][1]['groupName']);
-        $this->assertSame(6, $responseBody['groupsBaskets'][1]['basketId']);
-        $this->assertSame('AR en masse : non envoyés', $responseBody['groupsBaskets'][1]['basketName']);
+        $this->assertSame(4, $responseBody['groupsBaskets'][1]['basketId']);
+        $this->assertSame('Courriers à traiter', $responseBody['groupsBaskets'][1]['basketName']);
 
         $GLOBALS['userId'] = 'bblier';
         $userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['userId'], 'select' => ['id']]);
-- 
GitLab