diff --git a/apps/maarch_entreprise/js/angular/app/administration/groups-administration.component.js b/apps/maarch_entreprise/js/angular/app/administration/groups-administration.component.js
index 8a4888360825640f385949813b0a65cb0178860f..766bf7b17aae71c2a8bddbf1cf2676948a9531d4 100644
--- a/apps/maarch_entreprise/js/angular/app/administration/groups-administration.component.js
+++ b/apps/maarch_entreprise/js/angular/app/administration/groups-administration.component.js
@@ -56,7 +56,6 @@ var GroupsAdministrationComponent = (function () {
                 });
             }
         }
-        console.log(this.groupsForAssign);
     };
     GroupsAdministrationComponent.prototype.reassignUsers = function (group, groupId) {
         var _this = this;
diff --git a/apps/maarch_entreprise/js/angular/app/administration/notification-administration.component.ts b/apps/maarch_entreprise/js/angular/app/administration/notification-administration.component.ts
index 1981f8b61c73144437bb4a378bebfac809d008f6..368072511f184667a4700ace9cc5354f75f3881c 100644
--- a/apps/maarch_entreprise/js/angular/app/administration/notification-administration.component.ts
+++ b/apps/maarch_entreprise/js/angular/app/administration/notification-administration.component.ts
@@ -5,8 +5,6 @@ import { ActivatedRoute, Router } from '@angular/router';
 import { NotificationService } from '../notification.service';
 
 declare function $j(selector: any) : any;
-declare function successNotification(message: string) : void;
-declare function errorNotification(message: string) : void;
 
 declare var angularGlobals : any;
 
@@ -18,127 +16,104 @@ declare var angularGlobals : any;
 export class NotificationAdministrationComponent implements OnInit {
 
     coreUrl             : string;
-    notificationId              : string;
-    creationMode                : boolean;
-    notification                : any         = {
-                                                    diffusionType_label  : null
-                                                };
-    loading                     : boolean   = false;
-    lang                        : any       = LANG;
+
+    creationMode        : boolean;
+    notification        : any       = {
+        diffusionType_label  : null
+    };
+    loading              : boolean   = false;
+    lang                 : any       = LANG;
 
 
     constructor(public http: HttpClient, private route: ActivatedRoute, private router: Router, private notify: NotificationService) {
     }
 
+    updateBreadcrumb(applicationName: string){
+        if ($j('#ariane')[0]) {
+            $j('#ariane')[0].innerHTML = "<a href='index.php?reinit=true'>" + applicationName + "</a> > <a onclick='location.hash = \"/administration\"' style='cursor: pointer'>Administration</a> > <a onclick='location.hash = \"/administration/notifications\"' style='cursor: pointer'>notifications</a>";
+        }
+    }
+
     ngOnInit(): void {
-        this.prepareNotifications();
+        this.updateBreadcrumb(angularGlobals.applicationName);
         this.loading = true;
         this.coreUrl = angularGlobals.coreUrl;
-        this.updateBreadcrumb(angularGlobals.applicationName);
+
         this.route.params.subscribe(params => {
-            console.log(params['identifier']);
-            if(typeof params['identifier']== "undefined"){
-            //if(params['identifier']== "new"){
+            if (typeof params['identifier'] == "undefined") {
                 this.creationMode = true;
                 this.http.get(this.coreUrl + 'rest/administration/notifications/new')
                     .subscribe((data : any) => {
                         this.notification = data.notification;
                                     
                         this.loading = false;
-                        // setTimeout(() => {
-                        //             $j("select").chosen({width:"100%",disable_search_threshold: 10, search_contains: true});     
-                        //         }, 0);
                     }, (err) => {
-                        errorNotification(JSON.parse(err._body).errors);
+                        this.notify.error(err.error.errors);
                     });
-            }else {
+            } else {
                 this.creationMode = false;
                 this.http.get(this.coreUrl + 'rest/administration/notifications/' + params['identifier'])
-                .subscribe((data : any) => {
+                    .subscribe((data : any) => {
             
-                    this.notification = data.notification;
-                    console.log(data.notification);
-                    this.loading = false;
-                    setTimeout(() => {
-                        $j("select").chosen({width:"100%",disable_search_threshold: 10, search_contains: true});       
-                    }, 0);
-                });
-
+                        this.notification = data.notification;
+                        this.loading = false;
+                    }, (err) => {
+                        this.notify.error(err.error.errors);
+                    });
             } 
         });
     }
 
-    selectAll(event:any){
+    selectAll(event: any) {
         var target = event.target.getAttribute("data-target");
         $j('#' + target + ' option').prop('selected', true);
         $j('#' + target).trigger('chosen:updated');
-       
     }
 
-    unselectAll(event:any){
+    unselectAll(event: any) {
         var target = event.target.getAttribute("data-target");
         $j('#' + target + ' option').prop('selected', false);
         $j('#' + target).trigger('chosen:updated');
     }
 
     onSubmit() {
-        //affect value of select
-        if($j("#groupslist").chosen().val()){
-            this.notification.diffusion_properties = $j("#groupslist").chosen().val();
-        }else if($j("#entitieslist").chosen().val()){
-            this.notification.diffusion_properties = $j("#entitieslist").chosen().val();
-        }else if($j("#statuseslist").chosen().val()){
-            this.notification.diffusion_properties = $j("#statuseslist").chosen().val();
-        }else if($j("#userslist").chosen().val()){
-            this.notification.diffusion_properties = $j("#userslist").chosen().val();
+        if ($j("#groupslist").val()) {
+            this.notification.diffusion_properties = $j("#groupslist").val();
+        } else if($j("#entitieslist").val()) {
+            this.notification.diffusion_properties = $j("#entitieslist").val();
+        } else if($j("#statuseslist").val()) {
+            this.notification.diffusion_properties = $j("#statuseslist").val();
+        } else if($j("#userslist").val()) {
+            this.notification.diffusion_properties = $j("#userslist").val();
         }
-        console.log($j("#groupslistJd").chosen().val());
-        console.log($j("#entitieslistJd").chosen().val());
-        console.log($j("#statuseslistJd").chosen().val());
-        console.log($j("#userslistJd").chosen().val());
-        console.log($j("#joinDocJd").chosen().val());
-        if($j("#joinDocJd").chosen().val() == null){
+        if ($j("#joinDocJd").val() == null) {
             this.notification.attachfor_properties = '';
-        }else if($j("#groupslistJd").chosen().val()){
-            this.notification.attachfor_properties = $j("#groupslistJd").chosen().val();
-        }else if($j("#entitieslistJd").chosen().val()){
-            console.log($j("#entitieslistJd").chosen().val());
-            this.notification.attachfor_properties = $j("#entitieslistJd").chosen().val();
-        }else if($j("#statuseslistJd").chosen().val()){
-            this.notification.attachfor_properties = $j("#statuseslistJd").chosen().val();
-        }else if($j("#userslistJd").chosen().val()){
-            this.notification.attachfor_properties = $j("#userslistJd").chosen().val();
+        } else if ($j("#groupslistJd").val()) {
+            this.notification.attachfor_properties = $j("#groupslistJd").val();
+        } else if($j("#entitieslistJd").val()) {
+            this.notification.attachfor_properties = $j("#entitieslistJd").val();
+        } else if($j("#statuseslistJd").val()) {
+            this.notification.attachfor_properties = $j("#statuseslistJd").val();
+        } else if($j("#userslistJd").val()) {
+            this.notification.attachfor_properties = $j("#userslistJd").val();
         }
+
         if (this.creationMode) {
-            console.log(this.notification);
             this.http.post(this.coreUrl + 'rest/notifications', this.notification)
-            .subscribe((data : any) => {
-                this.router.navigate(['/administration/notifications']);
-                this.notify.success(this.lang.newNotificationAdded+' « '+this.notification.notification_id+' »');
-            },(err) => {
-                this.notify.error(err.error.errors);
-            });
-        }else{
+                .subscribe((data : any) => {
+                    this.router.navigate(['/administration/notifications']);
+                    this.notify.success(this.lang.newNotificationAdded+' « '+this.notification.notification_id+' »');
+                },(err) => {
+                    this.notify.error(err.error.errors);
+                });
+        } else {
             this.http.put(this.coreUrl + 'rest/notifications/' + this.notification.notification_sid, this.notification)
-            .subscribe((data : any) => {
-                this.router.navigate(['/administration/notifications']);
-                this.notify.success(this.lang.notificationUpdated+' « '+this.notification.notification_id+' »');
-            },(err) => {
-                this.notify.error(err.error.errors);
-            });
-        }
-    }
-    
-
-    prepareNotifications() {
-        $j('#inner_content').remove();
-    }
-
-    updateBreadcrumb(applicationName: string){
-        if ($j('#ariane')[0]) {
-            $j('#ariane')[0].innerHTML = "<a href='index.php?reinit=true'>" + applicationName + "</a> > <a onclick='location.hash = \"/administration\"' style='cursor: pointer'>Administration</a> > <a onclick='location.hash = \"/administration/notifications\"' style='cursor: pointer'>notifications</a>";
+                .subscribe((data : any) => {
+                    this.router.navigate(['/administration/notifications']);
+                    this.notify.success(this.lang.notificationUpdated+' « '+this.notification.notification_id+' »');
+                },(err) => {
+                    this.notify.error(err.error.errors);
+                });
         }
     }
-
-
 }
diff --git a/apps/maarch_entreprise/js/angular/app/administration/notifications-administration.component.ts b/apps/maarch_entreprise/js/angular/app/administration/notifications-administration.component.ts
index d9d10cfec8a5ed5e9257dbf2d53166d33cdf926b..23608487adb200577f5750a9b27f3fff221faa0e 100644
--- a/apps/maarch_entreprise/js/angular/app/administration/notifications-administration.component.ts
+++ b/apps/maarch_entreprise/js/angular/app/administration/notifications-administration.component.ts
@@ -4,8 +4,6 @@ import { LANG } from '../translate.component';
 import { NotificationService } from '../notification.service';
 
 declare function $j(selector: any) : any;
-declare function successNotification(message: string) : void;
-declare function errorNotification(message: string) : void;
 
 declare var angularGlobals : any;
 
@@ -17,7 +15,8 @@ declare var angularGlobals : any;
 export class NotificationsAdministrationComponent implements OnInit {
 
     coreUrl                     : string;
-    notifications               : any[] = [];
+
+    notifications               : any[]     = [];
     loading                     : boolean   = false;
     lang                        : any       = LANG;
 
@@ -26,42 +25,36 @@ export class NotificationsAdministrationComponent implements OnInit {
     }
 
     ngOnInit(): void {
-        this.coreUrl = angularGlobals.coreUrl;
-
-        this.prepareNotifications();
+        this.updateBreadcrumb(angularGlobals.applicationName);
 
+        this.coreUrl = angularGlobals.coreUrl;
         this.loading = true;
 
         this.http.get(this.coreUrl + 'rest/notifications')
             .subscribe((data : any) => {
                 this.notifications = data.notifications;
-                this.updateBreadcrumb(angularGlobals.applicationName);              
                 this.loading = false;
             }, (err) => {
-                errorNotification(JSON.parse(err._body).errors);
+                this.notify.error(err.error.errors);
             });
     }
 
-    prepareNotifications() {
-        $j('#inner_content').remove();
-    }
-
-    updateBreadcrumb(applicationName: string){
+    updateBreadcrumb(applicationName: string) {
         $j('#ariane')[0].innerHTML = "<a href='index.php?reinit=true'>" + applicationName + "</a> > "+
                                             "<a onclick='location.hash = \"/administration\"' style='cursor: pointer'>" + this.lang.administration + "</a> > " + this.lang.admin_notifications;
     }
 
-    deleteNotification(notification : any){
-        var resp = confirm(this.lang.deleteMsg + " ?");
-        if(resp){
-            this.http.delete(this.coreUrl + 'rest/notifications/'+notification.notification_sid)
+    deleteNotification(notification : any) {
+        let r = confirm(this.lang.deleteMsg);
+
+        if (r) {
+            this.http.delete(this.coreUrl + 'rest/notifications/' + notification.notification_sid)
                 .subscribe((data : any) => {
-                    this.notifications = data.notifications
+                    this.notifications = data.notifications;
                     this.notify.success(data.success);
                 }, (err) => {
                     this.notify.error(err.error.errors);
                 });
         }
     }
-
 }
diff --git a/apps/maarch_entreprise/js/angular/app/profile.component.js b/apps/maarch_entreprise/js/angular/app/profile.component.js
index a23a45903052710ca625be1ef6cffb1052a327ca..b68831156973044040cfee7760635cbab7283ad7 100755
--- a/apps/maarch_entreprise/js/angular/app/profile.component.js
+++ b/apps/maarch_entreprise/js/angular/app/profile.component.js
@@ -40,6 +40,7 @@ var ProfileComponent = (function () {
             title: "",
         };
         this.userAbsenceModel = [];
+        this.basketsToRedirect = [];
         this.showPassword = false;
         this.selectedSignature = -1;
         this.selectedSignatureLabel = "";
diff --git a/apps/maarch_entreprise/js/angular/app/profile.component.ts b/apps/maarch_entreprise/js/angular/app/profile.component.ts
index a6240c5d9c5aff5e64f5157dd602268c979335da..c475cd84fc09e309266b2da85baaac49fbe5eb09 100755
--- a/apps/maarch_entreprise/js/angular/app/profile.component.ts
+++ b/apps/maarch_entreprise/js/angular/app/profile.component.ts
@@ -41,6 +41,7 @@ export class ProfileComponent implements OnInit {
         title                   : "",
     };
     userAbsenceModel            : any[]     = [];
+    basketsToRedirect           : string[]  = [];
 
     showPassword                : boolean   = false;
     selectedSignature           : number    = -1;
diff --git a/apps/maarch_entreprise/template/header.html b/apps/maarch_entreprise/template/header.html
index c97bb7886cb6dec288f4646eb3fa812517650dad..d4d0caf879e5b89a5ad23a28390dfa096ba469bf 100755
--- a/apps/maarch_entreprise/template/header.html
+++ b/apps/maarch_entreprise/template/header.html
@@ -9,20 +9,28 @@ require_once 'core/Models/UserModel.php';
                         $userGroups=\Core\Models\UserModel::getGroupsByUserId(['userId'=> $_SESSION['user']['UserId']]);
                         
                         if(!empty($userGroups)){
-                            $strUserInfos.=" (";
-                            for($i=0;$i<count($userGroups);$i++){
-                                if($i==count($userGroups)-1){
-                                    $strUserInfos.=$userGroups[$i]['group_desc'];
-                                } else {
-                                    $strUserInfos.=$userGroups[$i]['group_desc'].", ";
-                                }                                
+                            if(count($userGroups)>=2){
+                                $strGroupList=" ";
+                                for($i=0;$i<count($userGroups);$i++){
+                                    if($i==count($userGroups)-1){
+                                        $strGroupList.=$userGroups[$i]['group_desc'];
+                                    } else {
+                                        $strGroupList.=$userGroups[$i]['group_desc']."<br><br>";
+                                    }                                
+                                }
+                                $strUserInfos .= ' <div id="header_usergroups"  class="header_usergroups" title="'.$strGroupList.'" style="display:inline-block;">('.count($userGroups).' groupes)</div>';
+                            }else{
+                                $strUserInfos .= ' ('.$userGroups[0]['group_desc'].')';
                             }
-                            $strUserInfos.=")";
                         }
                         
                         echo $strUserInfos;
                     ?>
                 </div>
+                <script>$j(".header_usergroups").tooltipster({
+                    delay : 0,
+                    contentAsHTML:true
+                });</script>
             <div id="menu" onmouseover="ShowHideMenu('menunav','on');" onmouseout="ShowHideMenu('menunav','off');" class="off">
                 <p>
                     <span style="background:url('data:image/png;base64,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');background-position: 10px 0px;background-size:25%;
diff --git a/core/Controllers/ResController.php b/core/Controllers/ResController.php
index c40325dee5200b2799a15db79d1717e7bf786c88..009677baabd095b959e0a1bb5db428925f75b756 100755
--- a/core/Controllers/ResController.php
+++ b/core/Controllers/ResController.php
@@ -34,19 +34,22 @@ class ResController
 {
     public function create(RequestInterface $request, ResponseInterface $response, $aArgs)
     {
-        if(empty($aArgs)) {
-            
-            $aArgs = $request->getQueryParams();
 
-            $aArgs['data'] = json_decode($aArgs['data']);
+        if (empty($aArgs)) {
+            $aArgs = $request->getParsedBody();
+        }
 
-            $aArgs['data'] = $this->object2array($aArgs['data']);
+        // if(empty($aArgs)) {
+        //     $aArgs = $request->getQueryParams();
+        //     $aArgs['data'] = json_decode($aArgs['data']);
+        //     $aArgs['data'] = $this->object2array($aArgs['data']);
+        //     //FIX pb if data has parent
+        //     if (isset($aArgs['data']['data'])) {
+        //         $aArgs['data'] = $aArgs['data']['data'];
+        //     }
+        // }
 
-            //FIX pb if data has parent
-            if (isset($aArgs['data']['data'])) {
-                $aArgs['data'] = $aArgs['data']['data'];
-            }
-        }
+        $aArgs['data'] = $this->object2array($aArgs['data']);
 
         //*****************************************************************************************
         //LOG ONLY LOG FOR DEBUG
@@ -641,13 +644,15 @@ class ResController
             if (strtoupper($data[$i]['column']) == strtoupper('custom_t10')) {
                 $mail = array();
                 $theString = str_replace(">", "", $data[$i]['value']);
+
                 $mail = explode("<", $theString);
                 $user = $userModel->getByEmail(['mail' => $mail[count($mail) -1]]);
+
                 $userIdFound = $user[0]['user_id'];
                 if (!empty($userIdFound)) {
                     $toAddressFound = true;
                     $destUser = $userIdFound;
-                    $entity = $entityModel->getByUserId(['user_id' => $destUser]);
+                    $entity = $entityModel->getByUserId(['userId' => $destUser]);
                     if (!empty($entity[0]['entity_id'])) {
                         $userEntity = $entity[0]['entity_id'];
                         $userPrimaryEntity = true;
diff --git a/core/Controllers/ResExtController.php b/core/Controllers/ResExtController.php
index 8bee0e0f90e9f05e8ab8ed50ed3a34e6378418cd..5159938eca57a274a154dbe877e4ba0fad4f7b1f 100755
--- a/core/Controllers/ResExtController.php
+++ b/core/Controllers/ResExtController.php
@@ -27,19 +27,25 @@ class ResExtController
 {
     public function create(RequestInterface $request, ResponseInterface $response, $aArgs)
     {
-        if(empty($aArgs)) {
+        if (empty($aArgs)) {
+            $aArgs = $request->getParsedBody();
+        }
+
+        $aArgs['data'] = $this->object2array($aArgs['data']);
+        
+        // if(empty($aArgs)) {
             
-            $aArgs = $request->getQueryParams();
+        //     $aArgs = $request->getQueryParams();
 
-            $aArgs['data'] = json_decode($aArgs['data']);
+        //     $aArgs['data'] = json_decode($aArgs['data']);
 
-            $aArgs['data'] = $this->object2array($aArgs['data']);
+        //     $aArgs['data'] = $this->object2array($aArgs['data']);
 
-            //FIX pb if data has parent
-            if (isset($aArgs['data']['data'])) {
-                $aArgs['data'] = $aArgs['data']['data'];
-            }
-        }
+        //     //FIX pb if data has parent
+        //     if (isset($aArgs['data']['data'])) {
+        //         $aArgs['data'] = $aArgs['data']['data'];
+        //     }
+        // }
 
         //*****************************************************************************************
         //LOG ONLY LOG FOR DEBUG
diff --git a/core/Controllers/UserController.php b/core/Controllers/UserController.php
index 8ff46c8411d7582f1f8429eba172178c6bfabf0d..25b7f95536205a4a259f3c19cfea10046419e76c 100755
--- a/core/Controllers/UserController.php
+++ b/core/Controllers/UserController.php
@@ -42,7 +42,8 @@ class UserController
         $user['groups'] = UserModel::getGroupsByUserId(['userId' => $_SESSION['user']['UserId']]);
         $user['entities'] = UserModel::getEntitiesById(['userId' => $_SESSION['user']['UserId']]);
         $user['baskets'] = BasketsModel::getBasketsByUserId(['userId' => $_SESSION['user']['UserId']]);
-        
+        $user['redirectedBaskets'] = BasketsModel::getBasketsRedirectedByUserId(['userId' => $_SESSION['user']['UserId']]);
+
         return $response->withJson($user);
     }
 
@@ -214,7 +215,7 @@ class UserController
         return $response->withJson(['success' => _UPDATED_PASSWORD]);
     }
 
-    public function setBasketsRedirectionForAbsence(RequestInterface $request, ResponseInterface $response, $aArgs) {
+    public function setRedirectedBaskets(RequestInterface $request, ResponseInterface $response, $aArgs) {
         $error = $this->hasUsersRights(['id' => $aArgs['id'], 'himself' => true]);
         if (!empty($error['error'])) {
             return $response->withStatus($error['status'])->withJson(['errors' => $error['error']]);
@@ -254,6 +255,19 @@ class UserController
         ]);
     }
 
+    public function deleteRedirectedBaskets(RequestInterface $request, ResponseInterface $response, $aArgs) {
+        $error = $this->hasUsersRights(['id' => $aArgs['id'], 'himself' => true]);
+        if (!empty($error['error'])) {
+            return $response->withStatus($error['status'])->withJson(['errors' => $error['error']]);
+        }
+
+        $user = UserModel::getById(['id' => $aArgs['id'], 'select' => ['user_id']]);
+
+        BasketsModel::deleteBasketRedirection(['userId' => $user['user_id'], 'basketId' => $aArgs['basketId']]);
+
+        return $response->withJson(['redirectedBaskets' => BasketsModel::getRedirectedBasketsByUserId(['userId' => $user['user_id']])]);
+    }
+
     public function updateStatus(RequestInterface $request, ResponseInterface $response, $aArgs) {
         $error = $this->hasUsersRights(['id' => $aArgs['id'], 'himself' => true]);
         if (!empty($error['error'])) {
diff --git a/core/Test/ResControllerTest.php b/core/Test/ResControllerTest.php
index 6ed1101d217785d738725e2085b8ac0d5a2a85d0..9539dcac7bbf098f6745e0a1e16b4ad4f53c66a0 100755
--- a/core/Test/ResControllerTest.php
+++ b/core/Test/ResControllerTest.php
@@ -226,7 +226,7 @@ class ResControllerTest extends TestCase
         $request = \Slim\Http\Request::createFromEnvironment($environment);
         $response = new \Slim\Http\Response();
         $response = $action->create($request, $response, $aArgs);
-        //print_r($response);exit;
+        
         $this->assertGreaterThan(1, json_decode($response->getBody())->resId);
     }
 
diff --git a/modules/basket/Models/BasketsModelAbstract.php b/modules/basket/Models/BasketsModelAbstract.php
index 7d1f2edc4d189505c1d15a9b2eb01455dfea817e..7f1e48504c2d37999bdafe2dbde24a32625403b0 100755
--- a/modules/basket/Models/BasketsModelAbstract.php
+++ b/modules/basket/Models/BasketsModelAbstract.php
@@ -168,4 +168,40 @@ class BasketsModelAbstract
 
         return true;
     }
+
+    public static function deleteBasketRedirection(array $aArgs)
+    {
+        ValidatorModel::notEmpty($aArgs, ['userId', 'basketId']);
+        ValidatorModel::stringType($aArgs, ['userId', 'basketId']);
+
+        DatabaseModel::delete([
+            'table' => 'user_abs',
+            'where' => ['(user_abs = ? OR basket_owner = ?)', 'basket_id = ?'],
+            'data'  => [$aArgs['userId'], $aArgs['userId'], $aArgs['basketId']]
+        ]);
+
+        return true;
+    }
+
+    public static function getRedirectedBasketsByUserId(array $aArgs) {
+        ValidatorModel::notEmpty($aArgs, ['userId']);
+        ValidatorModel::stringType($aArgs, ['userId']);
+
+        $aBaskets = DatabaseModel::select([
+            'select'    => ['ba.basket_id', 'ba.basket_name', 'ua.new_user', 'ua.basket_owner'],
+            'table'     => ['baskets ba, user_abs ua'],
+            'where'     => ['ua.user_abs = ?', 'ua.basket_id = ba.basket_id'],
+            'data'      => [$aArgs['userId']],
+            'order_by'  => ['ua.system_id']
+        ]);
+
+        foreach ($aBaskets as $key => $value) {
+            $user = UserModel::getById(['userId' => $value['new_user'], 'select' => ['firstname', 'lastname']]);
+            $aBaskets[$key]['userToDisplay'] = "{$user['firstname']} {$user['lastname']} ({$value['new_user']})";
+            $aBaskets[$key]['user'] = "{$user['firstname']} {$user['lastname']}";
+        }
+
+        return $aBaskets;
+    }
+
 }
\ No newline at end of file
diff --git a/modules/basket/class/class_admin_basket_Abstract.php b/modules/basket/class/class_admin_basket_Abstract.php
index 35f72b161ef52404ce5ef7d43b7b30cb1a50d446..ab3446a746667a1dd872c6add8dabb84c4207dc0 100755
--- a/modules/basket/class/class_admin_basket_Abstract.php
+++ b/modules/basket/class/class_admin_basket_Abstract.php
@@ -132,6 +132,7 @@ abstract class admin_basket_Abstract extends Database
         
         if ($mode == "add") {
             $_SESSION['m_admin']['basket']['coll_id'] = $_SESSION['collections'][0]['id'];
+            $_SESSION['m_admin']['basket']['color'] = '#666666';
         }
         
         // If mode "Up", Loading the informations of the basket in session
@@ -154,6 +155,11 @@ abstract class admin_basket_Abstract extends Database
                     $line = $stmt->fetchObject();
                     $_SESSION['m_admin']['basket']['desc'] = functions::show_string($line->basket_desc);
                     $_SESSION['m_admin']['basket']['name'] = functions::show_string($line->basket_name);
+                    if (empty($line->color)) {
+                        $_SESSION['m_admin']['basket']['color'] = '#666666';
+                    } else {
+                        $_SESSION['m_admin']['basket']['color'] = functions::show_string($line->color);
+                    }
                     $_SESSION['m_admin']['basket']['clause'] = functions::show_string($line->basket_clause);
                     $_SESSION['m_admin']['basket']['is_generic'] = functions::show_string($line->is_generic);
                     $_SESSION['m_admin']['basket']['is_visible'] = functions::show_string($line->is_visible);
@@ -248,6 +254,11 @@ abstract class admin_basket_Abstract extends Database
                                     <label><?php echo _BASKET;?> : </label>
                                     <input name="basketname"  type="text" id="basketname" value="<?php functions::xecho($_SESSION['m_admin']['basket']['name']);?>" />
                                 </p>
+                                <p>
+                                    <label>Couleur : </label>
+                                    <input name="color" type="color" id="color" style="width: 38%;" value="<?php functions::xecho($_SESSION['m_admin']['basket']['color']);?>" />
+                                    <a title="Réinitialiser la couleur" style="cursor: pointer" onclick="$j('#color')[0].value = '#666666'"><i class="fa fa-magic"></i></a>
+                                </p>
                                 <p>
                                     <label><?php echo _DESC;?> : </label>
                                     <textarea  cols="30" rows="4"  name="basketdesc"  style="width:200px;" id="basketdesc" ><?php functions::xecho($_SESSION['m_admin']['basket']['desc']);?></textarea>
@@ -446,6 +457,10 @@ abstract class admin_basket_Abstract extends Database
         {
             $_SESSION['m_admin']['basket']['name'] = $this->wash($_REQUEST['basketname'], "no", _THE_BASKET, 'yes', 0, 255);
         }
+        if(!empty($_REQUEST['color']))
+        {
+            $_SESSION['m_admin']['basket']['color'] = $this->wash($_REQUEST['color'], "no", _THE_BASKET, 'yes', 0, 255);
+        }
         if (isset($_REQUEST['basketdesc']) && !empty($_REQUEST['basketdesc']))
         {
             $_SESSION['m_admin']['basket']['desc'] = $this->wash($_REQUEST['basketdesc'], "no", _THE_DESC, 'yes', 0, 255);
@@ -544,8 +559,8 @@ abstract class admin_basket_Abstract extends Database
                         exit();
                     }
                     $db->query(
-                        "INSERT INTO ".$_SESSION['tablename']['bask_baskets']." ( coll_id, basket_id, basket_name, basket_desc , basket_clause, is_visible, is_folder_basket, flag_notif ) "
-                        ."VALUES (?,?,?,?,?,?,?,?)", array($_SESSION['m_admin']['basket']['coll_id'],$_SESSION['m_admin']['basket']['basketId'],$_SESSION['m_admin']['basket']['name'],$_SESSION['m_admin']['basket']['desc'],$tmp,$_SESSION['m_admin']['basket']['is_visible'],$_SESSION['m_admin']['basket']['is_folder_basket'],$_SESSION['m_admin']['basket']['flag_notif']));
+                        "INSERT INTO ".$_SESSION['tablename']['bask_baskets']." ( coll_id, basket_id, basket_name, basket_desc , basket_clause, is_visible, is_folder_basket, flag_notif, color) "
+                        ."VALUES (?,?,?,?,?,?,?,?,?)", array($_SESSION['m_admin']['basket']['coll_id'],$_SESSION['m_admin']['basket']['basketId'],$_SESSION['m_admin']['basket']['name'],$_SESSION['m_admin']['basket']['desc'],$tmp,$_SESSION['m_admin']['basket']['is_visible'],$_SESSION['m_admin']['basket']['is_folder_basket'],$_SESSION['m_admin']['basket']['flag_notif'], $_SESSION['m_admin']['basket']['color']));
                     $this->load_db();
 
                     // Log in database if required
@@ -594,7 +609,7 @@ abstract class admin_basket_Abstract extends Database
                     exit();
                 }
 
-                $db->query("UPDATE ".$_SESSION['tablename']['bask_baskets']." set basket_name = ? , coll_id = ? , basket_desc = ? ,basket_clause = ?, is_folder_basket = ?, is_visible = ?, flag_notif = ? where basket_id = ?",array($name,$_SESSION['m_admin']['basket']['coll_id'],$desc, $tmp, $_SESSION['m_admin']['basket']['is_folder_basket'], $_SESSION['m_admin']['basket']['is_visible'], $_SESSION['m_admin']['basket']['flag_notif'], $_SESSION['m_admin']['basket']['basketId']));
+                $db->query("UPDATE baskets set basket_name = ? , coll_id = ? , basket_desc = ? ,basket_clause = ?, is_folder_basket = ?, is_visible = ?, flag_notif = ?, color = ? where basket_id = ?",array($name,$_SESSION['m_admin']['basket']['coll_id'],$desc, $tmp, $_SESSION['m_admin']['basket']['is_folder_basket'], $_SESSION['m_admin']['basket']['is_visible'], $_SESSION['m_admin']['basket']['flag_notif'], $_SESSION['m_admin']['basket']['color'], $_SESSION['m_admin']['basket']['basketId']));
                 $this->load_db();
 
                 // Log in database if required
diff --git a/modules/basket/class/class_modules_tools_Abstract.php b/modules/basket/class/class_modules_tools_Abstract.php
index 078743e28ca85022866acf2bd33eb90447e3db25..c1b05be7481cba463c78b4fdb80bc3b771abe623 100755
--- a/modules/basket/class/class_modules_tools_Abstract.php
+++ b/modules/basket/class/class_modules_tools_Abstract.php
@@ -795,7 +795,7 @@ abstract class basket_Abstract extends Database
         $secCtrl = new SecurityControler();
         $stmt = $db->query(
             "select basket_id, coll_id, basket_name, basket_desc, "
-            . "basket_clause, is_visible, is_generic, is_folder_basket from "
+            . "basket_clause, is_visible, is_generic, is_folder_basket, color from "
             . BASKET_TABLE . " where basket_id = ? and enabled = 'Y'",array($basketId));
         $res = $stmt->fetchObject();
         $tab['id'] = $res->basket_id;
@@ -811,6 +811,7 @@ abstract class basket_Abstract extends Database
         $tab['is_generic'] = $res->is_generic;
         $tab['desc'] = $this->show_string($res->basket_desc);
         $tab['name'] = $this->show_string($res->basket_name);
+        $tab['color'] = $this->show_string($res->color);
         $tab['clause'] = $res->basket_clause;
         $tab['is_visible'] = $res->is_visible;
         $tab['is_folder_basket'] = $res->is_folder_basket;
diff --git a/modules/basket/display_basket_list.php b/modules/basket/display_basket_list.php
index 1cbfbc3d25cff2f754f130461cd26042cc1e88ec..06dad9cc6270cb4fd5b846e27b175dfb4529ac76 100755
--- a/modules/basket/display_basket_list.php
+++ b/modules/basket/display_basket_list.php
@@ -75,6 +75,7 @@ if ($core_tools->test_service('display_basket_list','basket', false)) {
                 <h2><?php echo _MY_BASKETS;?> : </h2>
             
             <?php
+            $redirectedBaskets = \Baskets\Models\BasketsModel::getRedirectedBasketsByUserId(['userId' => $_SESSION['user']['UserId']]);
             $countColl = count($collWithUserBaskets);
             $currentGroup = '';
             for ($cpt=0;$cpt<$countColl;$cpt++) {
@@ -132,7 +133,7 @@ if ($core_tools->test_service('display_basket_list','basket', false)) {
                                     . '" name="nb_' . $_SESSION['user']['baskets'][$i]['id']
                                     . '"><i class="fa-li fa fa-spinner fa-spin" style="margin-left: -10px;position: inherit;margin-right: -7px;"></i>'
                                     . '</span></b> <i class="fa-li fa fa-folder" style="padding-top: 5px;padding-bottom: 5px;"></i>'
-                                    . functions::xssafe($_SESSION['user']['baskets'][$i]['name'])
+                                    . '<span style="color: ' .$_SESSION['user']['baskets'][$i]['color'] . '">' . functions::xssafe($_SESSION['user']['baskets'][$i]['name']) . '</span>'
                                     . ' </a></li>';
                             } else {
                                 echo '<li style="padding-top: 5px;padding-bottom: 5px;"><a title="'.$_SESSION['user']['baskets'][$i]['desc'].'" href="'
@@ -143,7 +144,7 @@ if ($core_tools->test_service('display_basket_list','basket', false)) {
                                     . '" name="nb_' . $_SESSION['user']['baskets'][$i]['id']
                                     . '"><i class="fa-li fa fa-spinner fa-spin" style=";margin-left: -10px;position: inherit;margin-right: -7px;"></i>'
                                     . '</span></b> <i class="fa-li fa fa-tasks" style="padding-top: 5px;padding-bottom: 5px;"></i> '
-                                    . functions::xssafe($_SESSION['user']['baskets'][$i]['name'])
+                                    . '<span style="color: ' .$_SESSION['user']['baskets'][$i]['color'] . '">' . functions::xssafe($_SESSION['user']['baskets'][$i]['name']) . '</span>'
                                     . ' </a></li>';
                             }
                         }
diff --git a/modules/basket/xml/IVS/validation_rules.xml b/modules/basket/xml/IVS/validation_rules.xml
index 61cc7445af06fc1f8d606762686f65655f68bf36..a7dd2a1c52fbcbc565b36c8970d203eaf042e8c9 100755
--- a/modules/basket/xml/IVS/validation_rules.xml
+++ b/modules/basket/xml/IVS/validation_rules.xml
@@ -18,6 +18,7 @@
       <parameter name="collection" type="collection_list" />
       <parameter name="basketId" type="identifier" />
       <parameter name="basketname" type="string" />
+      <parameter name="color" type="string" />
       <parameter name="basketdesc" type="string" />
       <parameter name="basketclause" type="string" />
       <parameter name="Submit" type="string" />
diff --git a/modules/entities/class/class_manage_entities_Abstract.php b/modules/entities/class/class_manage_entities_Abstract.php
index 286fbcbe3e04f9f7b8c95155d1e573f201c60a7c..6ca7714207fa58f951d77caf020dc4168f3039d3 100755
--- a/modules/entities/class/class_manage_entities_Abstract.php
+++ b/modules/entities/class/class_manage_entities_Abstract.php
@@ -52,6 +52,7 @@ abstract class entity_Abstract extends functions
                     $line = $stmt->fetchObject();
                     $_SESSION['m_admin']['entity']['label']              = functions::show_string($line->entity_label);
                     $_SESSION['m_admin']['entity']['short_label']        = functions::show_string($line->short_label);
+                    $_SESSION['m_admin']['entity']['entity_full_name']   = functions::show_string($line->entity_full_name);                    
                     $_SESSION['m_admin']['entity']['enabled']            = functions::show_string($line->enabled);
                     $_SESSION['m_admin']['entity']['adrs1']              = functions::show_string($line->adrs_1);
                     $_SESSION['m_admin']['entity']['adrs2']              = functions::show_string($line->adrs_2);
@@ -155,6 +156,10 @@ abstract class entity_Abstract extends functions
                         <label><?php echo _SHORT_LABEL;?> : </label>
                         <input name="short_label"  type="text" id="short_label" value="<?php if(isset($_SESSION['m_admin']['entity']['short_label'])){ functions::xecho($_SESSION['m_admin']['entity']['short_label']);} ?>" /><span class="red_asterisk"><i class="fa fa-star"></i></span>
                     </p>
+                    <p style="text-align:right;">
+                        <label><?php echo _ENTITY_FULL_NAME;?> : </label>
+                        <textarea name="entity_full_name" style="margin-right: 7px" type="text" id="entity_full_name"><?php if(isset($_SESSION['m_admin']['entity']['entity_full_name'])){ functions::xecho($_SESSION['m_admin']['entity']['entity_full_name']);}?></textarea>
+                    </p>
                     <p style="text-align:right;">
                         <label><?php echo _ENTITY_ADR_1;?> : </label>
                         <input name="adrs1"  style="margin-right: 7px" type="text" id="adrs1" value="<?php if(isset( $_SESSION['m_admin']['entity']['adrs1'])){functions::xecho($_SESSION['m_admin']['entity']['adrs1']); }?>" />
@@ -736,10 +741,10 @@ abstract class entity_Abstract extends functions
     {
         $entities = array();
         $db = new Database();
-        $stmt = $db->query("select e.entity_id,e.entity_label,e.short_label, ue.primary_entity, ue.user_role from ".ENT_ENTITIES." e, ".ENT_USERS_ENTITIES." ue where ue.entity_id = e.entity_id and ue.user_id = ? order by e.entity_label",array(trim($user_id)));
+        $stmt = $db->query("select e.entity_id,e.entity_label,e.short_label,e.entity_full_name ue.primary_entity, ue.user_role from ".ENT_ENTITIES." e, ".ENT_USERS_ENTITIES." ue where ue.entity_id = e.entity_id and ue.user_id = ? order by e.entity_label",array(trim($user_id)));        
         while($res = $stmt->fetchObject())
         {
-            array_push($entities, array('ID' => $res->entity_id, 'LABEL' => $res->entity_label, 'SHORT_LABEL' => $res->short_label,'PRIMARY' => $res->entity_label, 'ROLE' => $res->user_role ));
+            array_push($entities, array('ID' => $res->entity_id, 'LABEL' => $res->entity_label, 'SHORT_LABEL' => $res->short_label,'ENTITY_FULL_NAME' => $res->entity_full_name, 'PRIMARY' => $res->entity_label, 'ROLE' => $res->user_role ));            
         }
         return $entities;
     }
@@ -941,6 +946,11 @@ abstract class entity_Abstract extends functions
         {
             $_SESSION['error'].= _SHORT_LABEL_MISSING."<br/>";
         }
+        $_SESSION['m_admin']['entity']['entity_full_name'] = '';
+        if(isset($_REQUEST['entity_full_name']) && !empty($_REQUEST['entity_full_name'])){
+            $_SESSION['m_admin']['entity']['entity_full_name'] = functions::wash(utf8_decode($_REQUEST['entity_full_name']), "no", _FULL_NAME, 'yes', 0);
+            $_SESSION['m_admin']['entity']['entity_full_name'] = utf8_encode($_SESSION['m_admin']['entity']['entity_full_name']);
+        }
         $_SESSION['m_admin']['entity']['adrs1'] = '';
         if(isset($_REQUEST['adrs1']) && !empty($_REQUEST['adrs1']))
         {
@@ -1097,7 +1107,7 @@ abstract class entity_Abstract extends functions
                         $entityPath .= $entityIdForTree . '/' . $_SESSION['m_admin']['entity']['entityId'];
                     }
                     
-                    $stmt = $db->query('INSERT INTO '.ENT_ENTITIES." (entity_id, entity_label, short_label, adrs_1, adrs_2, adrs_3, zipcode, city, country, email, business_id, parent_entity_id, entity_type, entity_path, archival_agency, archival_agreement) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",array($_SESSION['m_admin']['entity']['entityId'],$_SESSION['m_admin']['entity']['label'],$_SESSION['m_admin']['entity']['short_label'],$_SESSION['m_admin']['entity']['adrs1'],$_SESSION['m_admin']['entity']['adrs2'],$_SESSION['m_admin']['entity']['adrs3'],$_SESSION['m_admin']['entity']['zcode'],$_SESSION['m_admin']['entity']['city'],$_SESSION['m_admin']['entity']['country'],$_SESSION['m_admin']['entity']['email'],$_SESSION['m_admin']['entity']['business'],$_SESSION['m_admin']['entity']['parent'],$_SESSION['m_admin']['entity']['type'],$entityPath,$_SESSION['m_admin']['entity']['archival_agency'],$_SESSION['m_admin']['entity']['archival_agreement']));
+                    $stmt = $db->query('INSERT INTO '.ENT_ENTITIES." (entity_id, entity_label, short_label, adrs_1, adrs_2, adrs_3, zipcode, city, country, email, business_id, parent_entity_id, entity_type, entity_path, archival_agency, archival_agreement, entity_full_name) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",array($_SESSION['m_admin']['entity']['entityId'],$_SESSION['m_admin']['entity']['label'],$_SESSION['m_admin']['entity']['short_label'],$_SESSION['m_admin']['entity']['adrs1'],$_SESSION['m_admin']['entity']['adrs2'],$_SESSION['m_admin']['entity']['adrs3'],$_SESSION['m_admin']['entity']['zcode'],$_SESSION['m_admin']['entity']['city'],$_SESSION['m_admin']['entity']['country'],$_SESSION['m_admin']['entity']['email'],$_SESSION['m_admin']['entity']['business'],$_SESSION['m_admin']['entity']['parent'],$_SESSION['m_admin']['entity']['type'],$entityPath,$_SESSION['m_admin']['entity']['archival_agency'],$_SESSION['m_admin']['entity']['archival_agreement'],$_SESSION['m_admin']['entity']['entity_full_name']));                    
                     $_SESSION['service_tag'] = 'entity_add_db';
                     $core->execute_modules_services($_SESSION['modules_services'], 'entity_add_db', "include");
                     $core->execute_app_services($_SESSION['app_services'], 'entity_add_db', 'include');
@@ -1147,7 +1157,7 @@ abstract class entity_Abstract extends functions
                     $entityPath .= $entityIdForTree . '/' . $_SESSION['m_admin']['entity']['entityId'];
                 }
                     
-                $stmt = $db->query('UPDATE '.ENT_ENTITIES." set entity_label = ? , short_label = ? , adrs_1 = ?, adrs_2 = ?, adrs_3 = ?, zipcode = ?, city = ?, country = ?, email = ?, business_id = ?, parent_entity_id = ?, entity_type = ?, entity_path = ?, archival_agency = ?, archival_agreement = ? where entity_id = ?",array($_SESSION['m_admin']['entity']['label'], $_SESSION['m_admin']['entity']['short_label'], $_SESSION['m_admin']['entity']['adrs1'], $_SESSION['m_admin']['entity']['adrs2'],$_SESSION['m_admin']['entity']['adrs3'], $_SESSION['m_admin']['entity']['zcode'], $_SESSION['m_admin']['entity']['city'], $_SESSION['m_admin']['entity']['country'], $_SESSION['m_admin']['entity']['email'], $_SESSION['m_admin']['entity']['business'], $_SESSION['m_admin']['entity']['parent'], $_SESSION['m_admin']['entity']['type'], $entityPath, $_SESSION['m_admin']['entity']['archival_agency'], $_SESSION['m_admin']['entity']['archival_agreement'],$_SESSION['m_admin']['entity']['entityId']));
+                $stmt = $db->query('UPDATE '.ENT_ENTITIES." set entity_label = ? , short_label = ? , adrs_1 = ?, adrs_2 = ?, adrs_3 = ?, zipcode = ?, city = ?, country = ?, email = ?, business_id = ?, parent_entity_id = ?, entity_type = ?, entity_path = ?, archival_agency = ?, archival_agreement = ?, entity_full_name = ? where entity_id = ?",array($_SESSION['m_admin']['entity']['label'], $_SESSION['m_admin']['entity']['short_label'], $_SESSION['m_admin']['entity']['adrs1'], $_SESSION['m_admin']['entity']['adrs2'],$_SESSION['m_admin']['entity']['adrs3'], $_SESSION['m_admin']['entity']['zcode'], $_SESSION['m_admin']['entity']['city'], $_SESSION['m_admin']['entity']['country'], $_SESSION['m_admin']['entity']['email'], $_SESSION['m_admin']['entity']['business'], $_SESSION['m_admin']['entity']['parent'], $_SESSION['m_admin']['entity']['type'], $entityPath, $_SESSION['m_admin']['entity']['archival_agency'], $_SESSION['m_admin']['entity']['archival_agreement'], $_SESSION['m_admin']['entity']['entity_full_name'], $_SESSION['m_admin']['entity']['entityId']));                
                 $_SESSION['service_tag'] = 'entity_up_db';
                 $core->execute_modules_services($_SESSION['modules_services'], 'entity_up_db', "include");
                 $core->execute_app_services($_SESSION['app_services'], 'entity_up_db', 'include');
diff --git a/modules/entities/difflist_display.php b/modules/entities/difflist_display.php
index ee7a3f08293b757125781958ddb6c13966aa2893..c4193b6fb907c2e16e80948b05533a95df349c2e 100755
--- a/modules/entities/difflist_display.php
+++ b/modules/entities/difflist_display.php
@@ -39,7 +39,7 @@
                 if ($color == ' class="col"') $color = ' ';
                 else $color = ' class="col"';
                 
-                if (preg_match("/[DEL]/", $difflist[$role_id]['users'][$i]['process_comment'])) {
+                if (preg_match("/\[DEL\]/", $difflist[$role_id]['users'][$i]['process_comment'])) {
                     $styleMoved=" style='text-decoration: line-through;opacity:0.5;' ";
                     $descMoved=$difflist[$role_id]['users'][$i]['process_comment'];
                 } else {
diff --git a/modules/entities/lang/en.php b/modules/entities/lang/en.php
index af57e5a0b94b0df72263dde3363a57a1ee4be2de..49eafc29e003588a145e5ff30b6c86cfe38d768a 100755
--- a/modules/entities/lang/en.php
+++ b/modules/entities/lang/en.php
@@ -118,6 +118,8 @@ if (!defined("_ENTITY_LABEL"))
     define("_ENTITY_LABEL", "Name");
 if (!defined("_SHORT_LABEL"))
     define("_SHORT_LABEL", "Short name");
+if (!defined("_ENTITY_FULL_NAME"))
+    define("_ENTITY_FULL_NAME", "Full name");
 if (!defined("_ENTITY_ADR_1"))
     define("_ENTITY_ADR_1", "Address 1");
 if (!defined("_ENTITY_ADR_2"))
diff --git a/modules/entities/lang/fr.php b/modules/entities/lang/fr.php
index f60df86a340195fd742674c85b10ede4f31f3154..100191e684557f4919601ed989f16abd8d13b117 100755
--- a/modules/entities/lang/fr.php
+++ b/modules/entities/lang/fr.php
@@ -118,6 +118,8 @@ if (!defined("_ENTITY_LABEL"))
     define("_ENTITY_LABEL", "Nom");
 if (!defined("_SHORT_LABEL"))
     define("_SHORT_LABEL", "Nom court");
+if (!defined("_ENTITY_FULL_NAME"))
+    define("_ENTITY_FULL_NAME", "Nom complet");
 if (!defined("_ENTITY_ADR_1"))
     define("_ENTITY_ADR_1", "Adresse 1");
 if (!defined("_ENTITY_ADR_2"))
diff --git a/modules/entities/xml/IVS/validation_rules.xml b/modules/entities/xml/IVS/validation_rules.xml
index 0b94080959aea33d66f4a076c4c8b760cd9eeedd..82049567a0ded787cf29425e1d9db6d82e9eddde 100755
--- a/modules/entities/xml/IVS/validation_rules.xml
+++ b/modules/entities/xml/IVS/validation_rules.xml
@@ -70,6 +70,7 @@
 		<parameter name="mode" type="mode" />
 		<parameter name="parententity" type="identifier" />
 		<parameter name="short_label" type="string" />
+		<parameter name="entity_full_name" type="string" />
 		<parameter name="type" type="string" />
 		<parameter name="archival_agreement" type="string" />
 		<parameter name="archival_agency" type="string" />
diff --git a/modules/notifications/Controllers/NotificationController.php b/modules/notifications/Controllers/NotificationController.php
index 88ca6e3fd32e1f20ff3f8597cb090ab7983e90af..321b432a1eeefe76fb3be094ada21e3aba4a306d 100644
--- a/modules/notifications/Controllers/NotificationController.php
+++ b/modules/notifications/Controllers/NotificationController.php
@@ -21,7 +21,6 @@ use Psr\Http\Message\ResponseInterface;
 use Respect\Validation\Validator;
 use Notifications\Models\NotificationModel;
 use Core\Models\ServiceModel;
-use Core\Models\LangModel;
 use Core\Controllers\HistoryController;
 
 
@@ -43,6 +42,7 @@ class NotificationController
         if (!ServiceModel::hasService(['id' => 'admin_notif', 'userId' => $_SESSION['user']['UserId'], 'location' => 'notifications', 'type' => 'admin'])) {
             return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
         }
+
         $notification['notifications'] = NotificationModel::getByNotificationId(['notificationId' => $aArgs['id'], 'select' => ['notification_sid', 'notification_id', 'description', 'is_enabled', 'event_id', 'notification_mode', 'template_id', 'diffusion_type','diffusion_properties', 'attachfor_type','attachfor_properties']]);
         if (empty($notification['notifications'])) {
                 return $response->withStatus(400)->withJson(['errors' => 'Notification not found']);
@@ -65,44 +65,37 @@ class NotificationController
         $notificationInDb = NotificationModel::getByNotificationId(['notificationId' => $data['notification_id'], 'select' => ['notification_sid']]);
         
         if($data){
-            if(is_int($notificationInDb['notification_sid'])){
+            if(is_int($notificationInDb['notification_sid'])) {
                  return $response->withStatus(400)->withJson(['errors' => _NOTIFICATIONS_ERROR.' '._NOTIF_ALREADY_EXIST]);               
-            }elseif(strlen($data[description]) > 255){
+            }elseif(strlen($data['description']) > 255) {
                 return $response->withStatus(400)->withJson(['errors' => _NOTIFICATIONS_ERROR.' '._NOTIF_DESCRIPTION_TOO_LONG]);
-            }elseif(strlen($data[event_id]) > 255 && is_string($data[event_id])){
+            }elseif(strlen($data['event_id']) > 255 && is_string($data['event_id'])) {
                 return $response->withStatus(400)->withJson(['errors' => _NOTIFICATIONS_ERROR.' '._NOTIF_EVENT_TOO_LONG]);
-            }elseif(strlen($data[notification_mode]) > 30){
+            }elseif(strlen($data['notification_mode']) > 30){
                 return $response->withStatus(400)->withJson(['errors' => _NOTIFICATIONS_ERROR.' '._NOTIF_MODE_TOO_LONG]);
-            }elseif(Validator::intType()->notEmpty()->validate($data[template_id])){
+            }elseif(Validator::intType()->notEmpty()->validate($data['template_id'])){
                 return $response->withStatus(400)->withJson(['errors' => _NOTIFICATIONS_ERROR.' '._NOTIF_TEMPLATE_NOT_A_INT]);
-            }elseif(!is_string($data[diffusion_type])){
+            }elseif(!is_string($data['diffusion_type'])){
                 return $response->withStatus(400)->withJson(['errors' => _NOTIFICATIONS_ERROR.' '._NOTIF_DIFFUSION_IS_A_INT]);
             }
-            // elseif(!is_array($data[diffusion_properties])){
-            //     return $response->withStatus(400)->withJson(['errors' => _NOTIFICATIONS_ERROR.' '._NOTIF_DIFFUSION_PROPERTIES_NOT_INT]);
-            // }
 
-            if($data[is_enabled] == true){
-                $data[is_enabled] = 'Y';
+            if($data['is_enabled'] == true){
+                $data['is_enabled'] = 'Y';
             }else{
-                $data[is_enabled] = 'N';
+                $data['is_enabled'] = 'N';
             }
 
-            $data[notification_mode] = 'EMAIL';
+            $data['notification_mode'] = 'EMAIL';
             
-            if($data[diffusion_properties]){
-                $data[diffusion_properties] = implode(",",$data[diffusion_properties]);
+            if($data['diffusion_properties']){
+                $data['diffusion_properties'] = implode(",", $data['diffusion_properties']);
             }
             
-            if($data[attachfor_properties]){
-                $data[attachfor_properties] = implode(",",$data[attachfor_properties]);
+            if($data['attachfor_properties']){
+                $data['attachfor_properties'] = implode(",", $data['attachfor_properties']);
             }else{
-                $data[attachfor_properties] = '';
+                $data['attachfor_properties'] = '';
             }
-            
-            // elseif(!is_string($data[rss_url_template])){
-            //     return $response->withStatus(400)->withJson(['errors' => 'Notification error : rss_url_template is not in good format ']);
-            // }
 
             if (NotificationModel::create($data)) {
                 HistoryController::add([
@@ -129,33 +122,26 @@ class NotificationController
         $data = $request->getParams();
 
         $data['notification_sid'] = $aArgs['id'];
-        $data[diffusion_properties] = implode(",",$data[diffusion_properties]);
+        $data['diffusion_properties'] = implode(",", $data['diffusion_properties']);
         
-        $data[attachfor_properties] = implode(",",$data[attachfor_properties]);
-        // var_dump($aArgs);
-        // var_dump($data);
-        
-        //$aArgs   = self::manageValue($request);
-        //$errors  = $this->control($aArgs, 'update');
-
+        $data['attachfor_properties'] = implode(",", $data['attachfor_properties']);
         if (!empty($errors)) {
             return $response->withStatus(500)->withJson(['errors' => $errors]);
         }
 
         NotificationModel::update($data);
 
-            $notification = NotificationModel::getById(['notificationId' => $data['notification_id']]);
+        $notification = NotificationModel::getById(['notificationId' => $data['notification_id']]);
 
-            HistoryController::add([
-                'table_name' => 'notifications',
-                'record_id'  => $data['notification_sid'],
-                'event_type' => 'UP',
-                'event_id'   => 'notificationsup',
-                'info'       => _MODIFY_NOTIFICATIONS . ' : ' . $data['notification_sid']
-            ]);
+        HistoryController::add([
+            'table_name' => 'notifications',
+            'record_id'  => $data['notification_sid'],
+            'event_type' => 'UP',
+            'event_id'   => 'notificationsup',
+            'info'       => _MODIFY_NOTIFICATIONS . ' : ' . $data['notification_sid']
+        ]);
 
-            return $response->withJson(['notification'=> $notification]);
-         
+        return $response->withJson(['notification'=> $notification]);
     }
 
     public function delete(RequestInterface $request, ResponseInterface $response, $aArgs)
@@ -186,9 +172,10 @@ class NotificationController
         if (!ServiceModel::hasService(['id' => 'admin_notif', 'userId' => $_SESSION['user']['UserId'], 'location' => 'notifications', 'type' => 'admin'])) {
             return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
         }
+
         $notification = [];
-        $notification[diffusion_properties] = [];
-        $notification[attachfor_properties] = []; 
+        $notification['diffusion_properties'] = [];
+        $notification['attachfor_properties'] = [];
         $data = [];
 
         $data['event'] = NotificationModel::getEvent();
@@ -209,9 +196,9 @@ class NotificationController
         if (!ServiceModel::hasService(['id' => 'admin_notif', 'userId' => $_SESSION['user']['UserId'], 'location' => 'notifications', 'type' => 'admin'])) {
             return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
         }
+
         $notification = NotificationModel::getById(['notification_sid' => $aArgs['id'], 'select' => ['notification_sid', 'notification_id', 'description', 'is_enabled', 'event_id', 'notification_mode', 'template_id', 'diffusion_type','diffusion_properties', 'attachfor_type','attachfor_properties']]);
-        
-        
+
         $notification['diffusion_properties'] = explode(",",$notification['diffusion_properties']);
         
         foreach ($notification['diffusion_properties'] as $key => $value) {
diff --git a/modules/notifications/Models/NotificationModelAbstract.php b/modules/notifications/Models/NotificationModelAbstract.php
index 5c09dcaa3907ac0d250b1d5868569d47f4cbce35..22fd1ffd6d5a6a935a1b2bb743a49cab77d5acc7 100644
--- a/modules/notifications/Models/NotificationModelAbstract.php
+++ b/modules/notifications/Models/NotificationModelAbstract.php
@@ -25,7 +25,6 @@ class NotificationModelAbstract
 {
     public static function get(array $aArgs = [])
     {
-        ValidatorModel::notEmpty($aArgs, ['select']);        
         $aNotifications = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['notifications']
@@ -36,13 +35,15 @@ class NotificationModelAbstract
 
     public static function getById(array $aArgs = [])
     {
-        //ValidatorModel::notEmpty($aArgs, ['notification_sid']);
+        ValidatorModel::notEmpty($aArgs, ['notification_sid']);
+
         $aNotification = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['notifications'],
             'where'     => ['notification_sid = ?'],
             'data'      => [$aArgs['notification_sid']]
         ]);
+
         if (empty($aNotification[0])) {
             return [];
         }
@@ -52,13 +53,15 @@ class NotificationModelAbstract
 
     public static function getByNotificationId(array $aArgs = [])
     {
-        //ValidatorModel::notEmpty($aArgs, ['notificationId']);
+        ValidatorModel::notEmpty($aArgs, ['notificationId']);
+
         $aNotification = DatabaseModel::select([
             'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
             'table'     => ['notifications'],
             'where'     => ['notification_id = ?'],
             'data'      => [$aArgs['notificationId']]
         ]);
+
         if (empty($aNotification[0])) {
             return [];
         }
@@ -70,6 +73,7 @@ class NotificationModelAbstract
     {
         ValidatorModel::notEmpty($aArgs, ['notification_sid']);
         ValidatorModel::intVal($aArgs, ['notification_sid']);
+
         DatabaseModel::delete([
             'table'     => 'notifications',
             'where'     => ['notification_sid = ?'],
@@ -84,26 +88,25 @@ class NotificationModelAbstract
         ValidatorModel::notEmpty($aArgs, ['notification_id', 'description', 'is_enabled', 'event_id', 'notification_mode', 'template_id', 'diffusion_type', 'diffusion_properties']);
         ValidatorModel::intVal($aArgs, ['template_id']);
         ValidatorModel::stringType($aArgs, ['notification_id','description','is_enabled','event_id','notification_mode',]);
-         //var_dump($aArgs);exit;      
+
         DatabaseModel::insert([
             'table'         => 'notifications',
             'columnsValues' => [
-                'notification_id'   => $aArgs['notification_id'],
-                'description'     => $aArgs['description'],
-                'is_enabled' => $aArgs['is_enabled'],
-                'event_id' => $aArgs['event_id'],
-                'notification_mode' => $aArgs['notification_mode'],
-                'template_id' => $aArgs['template_id'],
-                'rss_url_template' => $aArgs['rss_url_template'],
-                'diffusion_type' => $aArgs['diffusion_type'],
-                'diffusion_properties' => $aArgs['diffusion_properties'],
-                'attachfor_type' => $aArgs['attachfor_type'],
-                'attachfor_properties' => $aArgs['attachfor_properties']
+                'notification_id'       => $aArgs['notification_id'],
+                'description'           => $aArgs['description'],
+                'is_enabled'            => $aArgs['is_enabled'],
+                'event_id'              => $aArgs['event_id'],
+                'notification_mode'     => $aArgs['notification_mode'],
+                'template_id'           => $aArgs['template_id'],
+                'rss_url_template'      => $aArgs['rss_url_template'],
+                'diffusion_type'        => $aArgs['diffusion_type'],
+                'diffusion_properties'  => $aArgs['diffusion_properties'],
+                'attachfor_type'        => $aArgs['attachfor_type'],
+                'attachfor_properties'  => $aArgs['attachfor_properties']
             ]
         ]);
 
         return true;
-
     }
 
     public static function update(array $aArgs)
@@ -111,7 +114,7 @@ class NotificationModelAbstract
         ValidatorModel::notEmpty($aArgs, ['notification_sid']);
         ValidatorModel::intVal($aArgs, ['notification_sid']);
 
-        $where['notification_sid'] = $aArgs['notification_sid'];
+        $notification_sid = $aArgs['notification_sid'];
         unset($aArgs['data']);
         unset($aArgs['notification_sid']);
 
@@ -119,7 +122,7 @@ class NotificationModelAbstract
             'table' => 'notifications',
             'set'   => $aArgs,
             'where' => ['notification_sid = ?'],
-            'data'  => [$where['notification_sid']]
+            'data'  => [$notification_sid]
         ]);
 
         return $aReturn;
@@ -127,7 +130,6 @@ class NotificationModelAbstract
 
     public static function getEvent()
     {
-        //get event action in the database
         $tabEvent_Type = DatabaseModel::select([
             'select'    => ['id, label_action'],
             'table'     => ['actions']
@@ -152,7 +154,6 @@ class NotificationModelAbstract
             }
         }
 
-        
         return $tabEvent_Type;
     }
 
@@ -162,8 +163,7 @@ class NotificationModelAbstract
             'select'    => ['template_id, template_label'],
             'table'     => ['templates'],
             'where'     => ['template_target = ?'],
-            'data'  => ['notifications']
-
+            'data'      => ['notifications']
         ]);
         
         return $tabTemplate;
diff --git a/modules/notifications/class/class_schedule_notifications_Abstract.php b/modules/notifications/class/class_schedule_notifications_Abstract.php
index 073e02ed0f1aa4cd746c448d990722b512e0ee85..383a65443b09bafa96352c333c624efea5f29991 100755
--- a/modules/notifications/class/class_schedule_notifications_Abstract.php
+++ b/modules/notifications/class/class_schedule_notifications_Abstract.php
@@ -155,7 +155,13 @@ abstract class ScheduleNotifications_Abstract
         fwrite($file_open, "\n");
         if ($notification_id == 'BASKETS') {      
             fwrite($file_open, 'php \'basket_event_stack.php\' -c '.$ConfigNotif.' -n '.$notification_id);
-        } else {
+        } 
+        else if ($notification_id == 'RELANCE1' || $notification_id == 'RELANCE2' || $notification_id == 'RET1' || $notification_id == 'RET2'){
+            fwrite($file_open, 'php \'process_event_stack.php\' -c '.$ConfigNotif.' -n '.$notification_id);
+            fwrite($file_open, "\n");
+            fwrite($file_open, 'php \'stack_letterbox_alerts.php\' -c '.$ConfigNotif);
+        }
+        else {
             fwrite($file_open, 'php \'process_event_stack.php\' -c '.$ConfigNotif.' -n '.$notification_id);
         }
         fwrite($file_open, "\n");
diff --git a/modules/visa/class/class_modules_tools_Abstract.php b/modules/visa/class/class_modules_tools_Abstract.php
index 5b4c9966cb7be7348e9f1bb6edb8d7ce828fe7e6..230eedd2815a21b87b7d0599de0aee8b53c3e752 100755
--- a/modules/visa/class/class_modules_tools_Abstract.php
+++ b/modules/visa/class/class_modules_tools_Abstract.php
@@ -412,10 +412,10 @@ abstract class visa_Abstract extends Database
 				users_entities.primary_entity = 'Y' and users.user_id = usergroup_content.user_id AND entities.entity_id = users_entities.entity_id AND group_id IN 
 				(SELECT group_id FROM usergroups_services WHERE service_id = ? AND group_id = ?)  order by users.lastname", array('visa_documents',$group_id));
 		}else{
-			$stmt = $db->query("SELECT users.user_id, users.firstname, users.lastname, usergroup_content.group_id,entities.entity_id, users.enabled from users, usergroup_content, users_entities,entities WHERE users_entities.user_id = users.user_id and users.status <> 'DEL' and 
+			$stmt = $db->query("SELECT distinct on(users.user_id) users.user_id, users.firstname, users.lastname, usergroup_content.group_id,entities.entity_id, users.enabled from users, usergroup_content, users_entities,entities WHERE users_entities.user_id = users.user_id and users.status <> 'DEL' and 
 				users_entities.primary_entity = 'Y' and users.user_id = usergroup_content.user_id AND entities.entity_id = users_entities.entity_id AND group_id IN 
 				(SELECT group_id FROM usergroups_services WHERE service_id = ?)  
-				order by users.lastname", array('visa_documents'));
+				order by users.user_id,users.lastname", array('visa_documents'));
 		}
 		
 		$tab_users = array();
@@ -626,7 +626,7 @@ abstract class visa_Abstract extends Database
                             
                             
                             $disabled = ' disabled="disabled"';
-							if(preg_match("/[DEL]/", $info_userVis['process_comment'])){
+							if(preg_match("/\[DEL\]/", $info_userVis['process_comment'])){
 								$info_vised = '';
 								$link_vis = 'times';
 								$vised = ' moved vised';
@@ -713,7 +713,7 @@ abstract class visa_Abstract extends Database
                         
                     }else{
 						$modif = 'false';
-                        if (preg_match("/[DEL]/", $info_userSign['process_comment'])) {
+                        if (preg_match("/\[DEL\]/", $info_userSign['process_comment'])) {
 							$info_vised = '';
 							$link_vis = 'times';
 							$vised = ' moved vised';
diff --git a/rest/index.php b/rest/index.php
index 85089f5e5dccde38af3e529ac4ee93d29a796c0b..b8bf83a3586bbd311b1367e9efe0e9189cb47ec6 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -189,7 +189,9 @@ $app->put('/users/{id}/status', \Core\Controllers\UserController::class . ':upda
 $app->post('/users/{id}/signatures', \Core\Controllers\UserController::class . ':addSignature');
 $app->put('/users/{id}/signatures/{signatureId}', \Core\Controllers\UserController::class . ':updateSignature');
 $app->delete('/users/{id}/signatures/{signatureId}', \Core\Controllers\UserController::class . ':deleteSignature');
-$app->post('/users/{id}/baskets/absence', \Core\Controllers\UserController::class . ':setBasketsRedirectionForAbsence');
+$app->post('/users/{id}/baskets/absence', \Core\Controllers\UserController::class . ':setRedirectedBaskets'); //TODO penser à une meilleure route
+$app->delete('/users/{id}/baskets/{basketId}/absence', \Core\Controllers\UserController::class . ':deleteRedirectedBaskets'); //TODO penser à une meilleure route
+
 
 //CurrentUser
 $app->put('/currentUser/password', \Core\Controllers\UserController::class . ':updateCurrentUserPassword');
diff --git a/sql/17_xx.sql b/sql/17_xx.sql
index d08837a236bc3c77b7ceb386a6b9d57b8847c560..17b476464a5cf9f9c8df069a3b075a6cae0b8462 100755
--- a/sql/17_xx.sql
+++ b/sql/17_xx.sql
@@ -102,4 +102,11 @@ ALTER TABLE sendmail ADD COLUMN res_version_att_id_list character varying(255);
 
 /*SALT*/
 UPDATE users set password = '$2y$10$C.QSslBKD3yNMfRPuZfcaubFwPKiCkqqOUyAdOr5FSGKPaePwuEjG', change_password = 'Y' WHERE user_id != 'superadmin';
-UPDATE users set password = '$2y$10$Vq244c5s2zmldjblmMXEN./Q2qZrqtGVgrbz/l1WfsUJbLco4E.e.' where user_id = 'superadmin';
\ No newline at end of file
+UPDATE users set password = '$2y$10$Vq244c5s2zmldjblmMXEN./Q2qZrqtGVgrbz/l1WfsUJbLco4E.e.' where user_id = 'superadmin';
+
+/*BASKETS COLOR*/
+ALTER TABLE baskets DROP COLUMN IF EXISTS color;
+ALTER TABLE baskets ADD color character varying(16);
+/*ENTITIES FULL NAME*/
+ALTER TABLE entities DROP COLUMN IF EXISTS entity_full_name;
+ALTER TABLE entities ADD entity_full_name text;
diff --git a/sql/structure.sql b/sql/structure.sql
index 37cfd797bd2f053f71e0709bf71f20522fb36bcf..0ae9896701acbf780675faca4d62a962842d7f90 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -633,6 +633,7 @@ CREATE TABLE entities
   entity_id character varying(32) NOT NULL,
   entity_label character varying(255),
   short_label character varying(50),
+  entity_full_name text,
   enabled character(1) NOT NULL DEFAULT 'Y'::bpchar,
   adrs_1 character varying(255),
   adrs_2 character varying(255),