diff --git a/apps/maarch_entreprise/Views/baskets-administration.component.html b/apps/maarch_entreprise/Views/baskets-administration.component.html
index daa9ab160788e79d2c060d0d76de796bb1ab01da..5585ad10804adce991ff4bd556c49e00df5bfc17 100644
--- a/apps/maarch_entreprise/Views/baskets-administration.component.html
+++ b/apps/maarch_entreprise/Views/baskets-administration.component.html
@@ -76,7 +76,6 @@
         </mat-sidenav-content>
         <mat-sidenav #snav2 [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" fixedTopGap="56"
             position='end' [opened]="mobileQuery.matches ? false : false">
-
             <mat-list>
                 <span dnd-sortable-container [dropZones]="['boxers-zone']" [sortableData]="basketsOrder">
                     <mat-list-item disableRipple="true" *ngFor="let basket of basketsOrder;let i = index" title="deplacer" dnd-sortable
@@ -86,7 +85,6 @@
                     </mat-list-item>
                 </span>
             </mat-list>
-
         </mat-sidenav>
     </mat-sidenav-container>
 </div>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/Views/priorities-administration.component.html b/apps/maarch_entreprise/Views/priorities-administration.component.html
index b1403e74bf13791b6a37e86dad4210f6e21af2ef..e3e48d2614dbc67e07160631aa0ff70fdeae9509 100755
--- a/apps/maarch_entreprise/Views/priorities-administration.component.html
+++ b/apps/maarch_entreprise/Views/priorities-administration.component.html
@@ -22,6 +22,12 @@
                         {{lang.add}}
                     </p>
                 </a>
+                <a mat-list-item (click)="snav2.toggle()">
+                    <mat-icon color="primary" mat-list-icon class="fa fa-list-ol"></mat-icon>
+                    <p mat-line>
+                        {{lang.basketsOrder}}
+                    </p>
+                </a>
             </mat-nav-list>
             <mat-divider></mat-divider>
             <menu-app></menu-app>
@@ -93,11 +99,16 @@
             </mat-card>
         </mat-sidenav-content>
         <mat-sidenav #snav2 [mode]="mobileQuery.matches ? 'over' : 'side'" [fixedInViewport]="mobileQuery.matches" fixedTopGap="56"
-            position='end' [opened]="mobileQuery.matches ? false : false">
-
-            <mat-nav-list>
-                <h3 mat-subheader>Actions</h3>
-            </mat-nav-list>
+                     position='end' [opened]="mobileQuery.matches ? false : false">
+            <mat-list>
+                <span dnd-sortable-container [dropZones]="['boxers-zone']" [sortableData]="prioritiesOrder">
+                    <mat-list-item disableRipple="true" *ngFor="let priority of prioritiesOrder;let i = index" title="deplacer" dnd-sortable
+                                   [sortableIndex]="i" (onDropSuccess)="updatePrioritiesOrder()">
+                        <mat-icon color="primary" mat-list-icon class="fa fa-inbox"></mat-icon>
+                        <p mat-line>{{i+1}} - {{priority.label}}</p>
+                    </mat-list-item>
+                </span>
+            </mat-list>
         </mat-sidenav>
     </mat-sidenav-container>
 </div>
\ No newline at end of file
diff --git a/apps/maarch_entreprise/class/class_business_app_tools_Abstract.php b/apps/maarch_entreprise/class/class_business_app_tools_Abstract.php
index d7c0ee256e3dce9aacaf8656ba23e2bf6d063e82..b901bf3fe8e31475a1dc92fe9b8ab945d59d11db 100755
--- a/apps/maarch_entreprise/class/class_business_app_tools_Abstract.php
+++ b/apps/maarch_entreprise/class/class_business_app_tools_Abstract.php
@@ -560,7 +560,7 @@ abstract class business_app_tools_Abstract extends Database
         $_SESSION['mail_priorities_color']      = [];
         $_SESSION['default_mail_priority']      = 0;
 
-        $priorities = \Priority\models\PriorityModel::get();
+        $priorities = \Priority\models\PriorityModel::get(['orderBy' => ['"order" NULLS LAST']]);
         $i = 0;
         foreach ($priorities as $priority) {
             $_SESSION['mail_priorities'][$i] = $priority['label'];
diff --git a/apps/maarch_entreprise/js/angular/app/administration/priorities-administration.component.ts b/apps/maarch_entreprise/js/angular/app/administration/priorities-administration.component.ts
index 0ee7d78c609653e668c1942ed5d10c85a907a589..d618710e6d2f3d109f9e868494b9b67b29eb51c5 100644
--- a/apps/maarch_entreprise/js/angular/app/administration/priorities-administration.component.ts
+++ b/apps/maarch_entreprise/js/angular/app/administration/priorities-administration.component.ts
@@ -3,7 +3,7 @@ import { MediaMatcher } from '@angular/cdk/layout';
 import { HttpClient } from '@angular/common/http';
 import { LANG } from '../translate.component';
 import { NotificationService } from '../notification.service';
-import { MatPaginator, MatTableDataSource, MatSort } from '@angular/material';
+import {MatPaginator, MatTableDataSource, MatSort } from '@angular/material';
 
 declare function $j(selector: any): any;
 
@@ -23,9 +23,11 @@ export class PrioritiesAdministrationComponent implements OnInit {
     loading         : boolean   = false;
 
     priorities      : any[]     = [];
+    prioritiesOrder : any[]     = [];
     dataSource      : any;
     displayedColumns            = ['label', 'delays', 'working_days', 'default_priority', 'actions'];
 
+
     @ViewChild(MatPaginator) paginator: MatPaginator;
     @ViewChild(MatSort) sort: MatSort;
     applyFilter(filterValue: string) {
@@ -53,6 +55,12 @@ export class PrioritiesAdministrationComponent implements OnInit {
             .subscribe((data: any) => {
                 this.priorities = data["priorities"];
                 this.loading = false;
+                this.http.get(this.coreUrl + "rest/sortedPriorities")
+                    .subscribe((data: any) => {
+                        this.prioritiesOrder = data['priotities'];
+                    }, () => {
+                        location.href = "index.php";
+                    });
                 setTimeout(() => {
                     this.dataSource = new MatTableDataSource(this.priorities);
                     this.dataSource.paginator = this.paginator;
@@ -79,4 +87,14 @@ export class PrioritiesAdministrationComponent implements OnInit {
                 })
         }
     }
+
+    updatePrioritiesOrder() {
+        this.http.put(this.coreUrl + "rest/sortedPriorities", this.prioritiesOrder)
+            .subscribe((data: any) => {
+                this.prioritiesOrder = data['priorities'];
+                this.notify.success(this.lang.modificationSaved);
+            }, (err) => {
+                this.notify.error(err.error.errors);
+            });
+    }
 }
diff --git a/rest/index.php b/rest/index.php
index 2ab3fdbff25d06d34ca89a5f9533245926b1dea8..8fd578d8236f6bce6403440e9ed89334cdb9f0b1 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -228,6 +228,8 @@ $app->post('/priorities', \Priority\controllers\PriorityController::class . ':cr
 $app->get('/priorities/{id}', \Priority\controllers\PriorityController::class . ':getById');
 $app->put('/priorities/{id}', \Priority\controllers\PriorityController::class . ':update');
 $app->delete('/priorities/{id}', \Priority\controllers\PriorityController::class . ':delete');
+$app->get('/sortedPriorities', \Priority\controllers\PriorityController::class . ':getSorted');
+$app->put('/sortedPriorities', \Priority\controllers\PriorityController::class . ':updateSort');
 
 //Reports
 $app->get('/reports/groups', \Report\controllers\ReportController::class . ':getGroups');
diff --git a/sql/data_fr.sql b/sql/data_fr.sql
index c475e2cb151f2b1d297fc1ab7ebdb1a15d1f51fd..edcccbe7bd3e4a2d77d333802fb5539402669516 100755
--- a/sql/data_fr.sql
+++ b/sql/data_fr.sql
@@ -1697,10 +1697,10 @@ Select setval('templates_seq', (select max(template_id)+1 from templates), false
 
 /* PRIORITIES */
 TRUNCATE TABLE priorities;
-INSERT INTO priorities (id, label, color, working_days, delays, default_priority) VALUES ('poiuytre1357nbvc', 'Normal', '#009dc5', TRUE, null, TRUE);
-INSERT INTO priorities (id, label, color, working_days, delays, default_priority) VALUES ('poiuytre1379nbvc', 'Urgent', '#ffa500', TRUE, 8, FALSE);
-INSERT INTO priorities (id, label, color, working_days, delays, default_priority) VALUES ('poiuytre1391nbvc', 'Très urgent', '#ff0000', TRUE, 4, FALSE);
-INSERT INTO priorities (id, label, color, working_days, delays, default_priority) VALUES ('poiuytre1313nbvc', 'SVA/SVR', '#ffa500', TRUE, null, FALSE);
+INSERT INTO priorities (id, label, color, working_days, delays, default_priority, "order") VALUES ('poiuytre1357nbvc', 'Normal', '#009dc5', TRUE, null, TRUE, 1);
+INSERT INTO priorities (id, label, color, working_days, delays, default_priority, "order") VALUES ('poiuytre1379nbvc', 'Urgent', '#ffa500', TRUE, 8, FALSE, 2);
+INSERT INTO priorities (id, label, color, working_days, delays, default_priority, "order") VALUES ('poiuytre1391nbvc', 'Très urgent', '#ff0000', TRUE, 4, FALSE, 3);
+INSERT INTO priorities (id, label, color, working_days, delays, default_priority, "order") VALUES ('poiuytre1313nbvc', 'SVA/SVR', '#ffa500', TRUE, null, FALSE, 4);
 
 ------------
 --NOTIFICATIONS
diff --git a/sql/develop.sql b/sql/develop.sql
index ff7d476073a79b2b293ff60773701d5bc7b845b2..4e1f7fe999d5dbefdbc59b1eacacc873c2b077e6 100755
--- a/sql/develop.sql
+++ b/sql/develop.sql
@@ -23,6 +23,7 @@ CREATE TABLE priorities
   working_days boolean NOT NULL,
   delays integer,
   default_priority boolean NOT NULL DEFAULT FALSE,
+  order integer,
   CONSTRAINT priorities_pkey PRIMARY KEY (id)
 )
 WITH (OIDS=FALSE);
diff --git a/sql/structure.sql b/sql/structure.sql
index 0b538f4c8d0f8a6558b68a750f24c74afdf61dcc..5257d305d984d6b0d013d7ae9e80746a5431da02 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -1981,6 +1981,7 @@ CREATE TABLE priorities
   working_days boolean NOT NULL,
   delays integer,
   default_priority boolean NOT NULL DEFAULT FALSE,
+  order integer,
   CONSTRAINT priorities_pkey PRIMARY KEY (id)
 )
 WITH (OIDS=FALSE);
diff --git a/src/app/basket/controllers/BasketController.php b/src/app/basket/controllers/BasketController.php
index 916fd41ecb532405cbbc9c49a3fc33c94580930d..8ffe4a05f1515080c8bb899370a686ea93306a74 100644
--- a/src/app/basket/controllers/BasketController.php
+++ b/src/app/basket/controllers/BasketController.php
@@ -180,11 +180,6 @@ class BasketController
             return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
         }
 
-        $theBasket = BasketModel::getById(['id' => $aArgs['id'], 'select' => ['basket_order']]);
-        if (empty($theBasket)) {
-            return $response->withStatus(400)->withJson(['errors' => 'Basket not found']);
-        }
-
         $data = $request->getParams();
 
         foreach ($data as $key => $basketToUpdate) {
diff --git a/src/app/priority/controllers/PriorityController.php b/src/app/priority/controllers/PriorityController.php
index 880ab5e60f07d0b9fa5666a9cf60be435e9aca2c..d355e7e7ff65721421406f2743f6c5216aded30d 100644
--- a/src/app/priority/controllers/PriorityController.php
+++ b/src/app/priority/controllers/PriorityController.php
@@ -116,4 +116,49 @@ class PriorityController
 
         return $response->withJson(['priorities' => PriorityModel::get()]);
     }
+
+    public function getSorted(Request $request, Response $response)
+    {
+        if (!ServiceModel::hasService(['id' => 'admin_priorities', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
+            return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
+        }
+
+        $priorities = PriorityModel::get([
+            'select'    => ['id', 'label', '"order"'],
+            'orderBy'   => ['"order" NULLS LAST']
+        ]);
+
+        return $response->withJson(['priotities' => $priorities]);
+    }
+
+    public function updateSort(Request $request, Response $response)
+    {
+        if (!ServiceModel::hasService(['id' => 'admin_priorities', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
+            return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
+        }
+
+        $data = $request->getParams();
+
+        foreach ($data as $key => $priorityToUpdate) {
+            if ($key != $priorityToUpdate['order']) {
+                PriorityModel::updateOrder(['id' => $priorityToUpdate['id'], 'order' => $key]);
+            }
+        }
+
+        HistoryController::add([
+            'tableName' => 'priorities',
+            'recordId'  => $GLOBALS['userId'],
+            'eventType' => 'UP',
+            'info'      => _PRIORITY_SORT_MODIFICATION,
+            'moduleId'  => 'priority',
+            'eventId'   => 'priorityModification',
+        ]);
+
+        $priorities = PriorityModel::get([
+            'select'    => ['id', 'label', '"order"'],
+            'orderBy'   => ['"order" NULLS LAST']
+        ]);
+
+        return $response->withJson(['priorities' => $priorities]);
+    }
 }
diff --git a/src/app/priority/models/PriorityModelAbstract.php b/src/app/priority/models/PriorityModelAbstract.php
index ff7873800ea0370eaf18dbf78cee10a4543fb888..fccccffac039ef9c8406abdc8f7d0b936b584164 100644
--- a/src/app/priority/models/PriorityModelAbstract.php
+++ b/src/app/priority/models/PriorityModelAbstract.php
@@ -20,11 +20,14 @@ abstract class PriorityModelAbstract
 {
     public static function get(array $aArgs = [])
     {
-        ValidatorModel::arrayType($aArgs, ['select']);
+        ValidatorModel::arrayType($aArgs, ['select', 'where', 'data', 'orderBy']);
 
         $aReturn = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['priorities'],
+            'where'     => $aArgs['where'],
+            'data'      => $aArgs['data'],
+            'order_by'  => $aArgs['orderBy']
         ]);
 
         return $aReturn;
@@ -96,6 +99,24 @@ abstract class PriorityModelAbstract
         return true;
     }
 
+    public static function updateOrder(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['id']);
+        ValidatorModel::stringType($aArgs, ['id']);
+        ValidatorModel::intVal($aArgs, ['order']);
+
+        DatabaseModel::update([
+            'table'     => 'priorities',
+            'set'       => [
+                '"order"'  => $aArgs['order']
+            ],
+            'where'     => ['id = ?'],
+            'data'      => [$aArgs['id']]
+        ]);
+
+        return true;
+    }
+
     public static function resetDefaultPriority()
     {
         DatabaseModel::update([
diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php
index 4a8154a4842248b74c7f9012e455858634af3499..3d608d29a4ae3de62be71930e646410f7d974b69 100644
--- a/src/core/lang/lang-en.php
+++ b/src/core/lang/lang-en.php
@@ -57,6 +57,7 @@ define('_PARAMETER_SUPPRESSION', 'Parameter suppression');
 define('_PRIORITY_CREATION', 'Priority creation');
 define('_PRIORITY_MODIFICATION', 'Priority modification');
 define('_PRIORITY_SUPPRESSION', 'Priority suppression');
+define('_PRIORITY_SORT_MODIFICATION', 'Priorities order modification');
 define('_REPORT_MODIFICATION', 'Report modification');
 define('_STATUS_ADDED', 'Statut added');
 define('_STATUS_DELETED', 'Statut deleted');
diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php
index af87aabdd1601e1ca3bdb46c6a10fc99db9110ce..fe99a6545a90df5e522a7f9f6cd12db78c367eda 100644
--- a/src/core/lang/lang-fr.php
+++ b/src/core/lang/lang-fr.php
@@ -57,6 +57,7 @@ define('_PARAMETER_SUPPRESSION', 'Suppression paramètre');
 define('_PRIORITY_CREATION', 'Création priorité');
 define('_PRIORITY_MODIFICATION', 'Modification priorité');
 define('_PRIORITY_SUPPRESSION', 'Suppression priorité');
+define('_PRIORITY_SORT_MODIFICATION', 'Modification ordre priorités');
 define('_REPORT_MODIFICATION', 'Modification états et édition');
 define('_STATUS_ADDED', 'Statut ajouté');
 define('_STATUS_DELETED', 'Statut supprimé');