From 8836e245896b6038dacefb1294fa6b3c3ff2320e Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Tue, 9 Jan 2018 10:13:32 +0100
Subject: [PATCH] [REFACTORING] Remove groupbasket columns and table

---
 .../class/class_admin_basket_Abstract.php     |  4 +-
 .../class/class_modules_tools_Abstract.php    | 24 +-----
 modules/basket/manage_group_basket.php        |  8 +-
 .../class/class_manage_listdiff_Abstract.php  | 28 -------
 modules/entities/entities_tables.php          |  6 --
 .../entities/param_index_difflist_types.php   | 76 +-----------------
 modules/entities/param_workflow.php           | 56 +------------
 sql/17_xx.sql                                 |  5 ++
 sql/data_fr.sql                               | 80 +++++++++----------
 sql/structure.sql                             | 29 -------
 10 files changed, 54 insertions(+), 262 deletions(-)

diff --git a/modules/basket/class/class_admin_basket_Abstract.php b/modules/basket/class/class_admin_basket_Abstract.php
index 30b82f13de9..ffabca77cf8 100755
--- a/modules/basket/class/class_admin_basket_Abstract.php
+++ b/modules/basket/class/class_admin_basket_Abstract.php
@@ -743,8 +743,8 @@ abstract class admin_basket_Abstract extends Database
         for($i=0; $i < count($_SESSION['m_admin']['basket']['groups'] ); $i++)
         {
             // Update groupbasket table
-            $db->query("INSERT INTO ".$_SESSION['tablename']['bask_groupbasket']." (group_id, basket_id, sequence,  result_page, list_lock_clause, sublist_lock_clause)
-            VALUES (?,?,?,?,?,?)",array($_SESSION['m_admin']['basket']['groups'][$i]['GROUP_ID'],$_SESSION['m_admin']['basket']['basketId'],$_SESSION['m_admin']['basket']['groups'][$i]['SEQUENCE'],$_SESSION['m_admin']['basket']['groups'][$i]['RESULT_PAGE'],$_SESSION['m_admin']['basket']['groups'][$i]['LOCK_LIST'],$_SESSION['m_admin']['basket']['groups'][$i]['LOCK_SUBLIST']));
+            $db->query("INSERT INTO ".$_SESSION['tablename']['bask_groupbasket']." (group_id, basket_id,  result_page, list_lock_clause, sublist_lock_clause)
+            VALUES (?,?,?,?,?)",array($_SESSION['m_admin']['basket']['groups'][$i]['GROUP_ID'],$_SESSION['m_admin']['basket']['basketId'],$_SESSION['m_admin']['basket']['groups'][$i]['RESULT_PAGE'],$_SESSION['m_admin']['basket']['groups'][$i]['LOCK_LIST'],$_SESSION['m_admin']['basket']['groups'][$i]['LOCK_SUBLIST']));
 
             // Browses the actions array for the current basket - group couple and inserts the action in actions_groupbasket table  if needed
             for($j=0; $j < count($_SESSION['m_admin']['basket']['groups'][$i]['ACTIONS']); $j++)
diff --git a/modules/basket/class/class_modules_tools_Abstract.php b/modules/basket/class/class_modules_tools_Abstract.php
index 3879ab6e04b..ce2c5b6853f 100755
--- a/modules/basket/class/class_modules_tools_Abstract.php
+++ b/modules/basket/class/class_modules_tools_Abstract.php
@@ -430,24 +430,6 @@ abstract class basket_Abstract extends Database
             }
         }
         if ($ind > -1) {
-            //if no action on the basket we dont do the request on the groupbasket_difflist_types
-            if($_SESSION['user']['baskets'][$ind]['default_action'] != '' || $_SESSION['user']['baskets'][$ind]['default_action'] != null){
-                //selection du type de diffusion
-                $db = new Database();
-                $stmt = $db->query(
-                    "select difflist_type_id from groupbasket_difflist_types "
-                    . " where basket_id = ? "
-                    . "and group_id = ? "
-                    . "and action_id = ?",array($basketId,$_SESSION['user']['baskets'][$ind]['group_id'],$_SESSION['user']['baskets'][$ind]['default_action']));
-
-                if ($stmt->rowCount() <= 0) {
-                    $_SESSION['current_basket']['difflist_type'] = 'entity_id';
-                } else {
-                    $res = $stmt->fetchObject();
-                    $_SESSION['current_basket']['difflist_type'] = $res->difflist_type_id;
-                }
-            }
-
             $_SESSION['current_basket']['table'] = $_SESSION['user']['baskets'][$ind]['table'];
             $_SESSION['current_basket']['view'] = $_SESSION['user']['baskets'][$ind]['view'];
             $_SESSION['current_basket']['coll_id'] = $_SESSION['user']['baskets'][$ind]['coll_id'];
@@ -828,8 +810,7 @@ abstract class basket_Abstract extends Database
             $groupId = $res->group_id;
         }
         $stmt = $db->query(
-            "select can_redirect, can_delete, can_insert, "
-            . "result_page, list_lock_clause, sublist_lock_clause from "
+            "select result_page, list_lock_clause, sublist_lock_clause from "
             . GROUPBASKET_TABLE . " where group_id = ? and basket_id = ?",array($groupId,$basketId));
         $res = $stmt->fetchObject();
 
@@ -976,8 +957,7 @@ abstract class basket_Abstract extends Database
             $primaryGroup = $_SESSION['user']['primarygroup'];
         }
         $stmt = $db->query(
-            "select  can_redirect, can_delete, can_insert, "
-            . "result_page, list_lock_clause, "
+            "select result_page, list_lock_clause, "
             ."sublist_lock_clause from "
             . GROUPBASKET_TABLE . " where group_id = ? and basket_id = ? ",array($primaryGroup,$basketId));
 
diff --git a/modules/basket/manage_group_basket.php b/modules/basket/manage_group_basket.php
index 49d1aa7c9f5..c1b29883e50 100755
--- a/modules/basket/manage_group_basket.php
+++ b/modules/basket/manage_group_basket.php
@@ -83,17 +83,12 @@ else
     }
     
 	$old_group = "";
-	$seq = "";
 
 	if(isset($_REQUEST['old_group']) && !empty($_REQUEST['old_group']))
 	{
 		$old_group = $_REQUEST['old_group'];
 	}
 
-	$stmt = $db->query("select max(sequence) as seq from ".$_SESSION['tablename']['bask_groupbasket']." where group_id = ?",array($groupe));
-	$line = $stmt->fetchObject();
-	$seq = $line->seq +1;
-
 	$actions = array();
 
 	$_SESSION['m_admin']['basket_popup']['actions'] = array();
@@ -155,8 +150,7 @@ else
 		$tab = array(
                 "GROUP_ID"          => $groupe, 
                 "GROUP_LABEL"       => $res->group_desc, 
-                "SEQUENCE"          => $seq, 
-                "RESULT_PAGE"       => $respage, 
+                "RESULT_PAGE"       => $respage,
                 "LOCK_LIST"         => $list_whrere_clause, 
                 "LOCK_SUBLIST"      => $sublist_whrere_clause, 
                 "DEFAULT_ACTION"    => $default_action_page,  
diff --git a/modules/entities/class/class_manage_listdiff_Abstract.php b/modules/entities/class/class_manage_listdiff_Abstract.php
index 479f9e12371..bf924d5f5ae 100755
--- a/modules/entities/class/class_manage_listdiff_Abstract.php
+++ b/modules/entities/class/class_manage_listdiff_Abstract.php
@@ -990,33 +990,5 @@ abstract class diffusion_list_Abstract extends functions
             . " WHERE difflist_type_id = ?",array($difflist_type_id) 
         );
     }
-        
-    #**************************************************************************
-    # GROUPBASKET_DIFFLIST_TYPES
-    # Types of lists available for a given group in basket
-    #**************************************************************************   
-    #  Get list of available list model types for a given groupbasket
-    public function list_groupbasket_difflist_types(
-        $group_id,
-        $basket_id,
-        $action_id
-    ) {
-        $types = array();
-        $db = new Database();
-        $stmt = $db->query(
-            "select difflist_type_id from " . ENT_GROUPBASKET_DIFFLIST_TYPES
-            . " where group_id = ?" 
-                . " and basket_id = ?"
-                . " and action_id = ?",array($group_id,$basket_id,$action_id)
-        );
-        
-        $types = array();
-                
-        while ($type = $stmt->fetchObject()) { 
-            $types[] = (string) $type->difflist_type_id;
-        }
-        return $types;
-    }
 
-    
 }
diff --git a/modules/entities/entities_tables.php b/modules/entities/entities_tables.php
index 80027728ccc..2cb22ecd17f 100755
--- a/modules/entities/entities_tables.php
+++ b/modules/entities/entities_tables.php
@@ -47,9 +47,3 @@ if (! defined('ENT_GROUPBASKET_REDIRECT')) {
 if (! defined('ENT_DIFFLIST_TYPES')) {
     define('ENT_DIFFLIST_TYPES', 'difflist_types');
 }
-if (! defined('ENT_GROUPBASKET_DIFFLIST_TYPES')) {
-    define('ENT_GROUPBASKET_DIFFLIST_TYPES', 'groupbasket_difflist_types');
-}
-if (! defined('ENT_GROUPBASKET_DIFFLIST_ROLES')) {
-    define('ENT_GROUPBASKET_DIFFLIST_ROLES', 'groupbasket_difflist_roles');
-}
diff --git a/modules/entities/param_index_difflist_types.php b/modules/entities/param_index_difflist_types.php
index ceef925c62d..82d176f9eaf 100755
--- a/modules/entities/param_index_difflist_types.php
+++ b/modules/entities/param_index_difflist_types.php
@@ -140,33 +140,7 @@ elseif($_SESSION['service_tag'] == 'load_basket_session')
     
     for($cpt=0; $cpt < count($_SESSION['m_admin']['basket']['groups'] ); $cpt++)
     {
-        //$_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION'] = array();
-        $_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION']['difflist_types'] = array();
-        if(!empty($_SESSION['m_admin']['basket']['groups'][$cpt]['DEFAULT_ACTION'] ))
-        {
-            $query = "SELECT lmt.difflist_type_id, lmt.difflist_type_label FROM " . ENT_GROUPBASKET_DIFFLIST_TYPES . " gblmt left join " . ENT_DIFFLIST_TYPES 
-                . " lmt on lmt.difflist_type_id = gblmt.difflist_type_id "
-                . " where basket_id= ? and group_id = ? and action_id = ?";
-            $stmt = $db->query($query,array(trim($_SESSION['m_admin']['basket']['basketId']),trim($_SESSION['m_admin']['basket']['groups'][$cpt]['GROUP_ID']),$_SESSION['m_admin']['basket']['groups'][$cpt]['DEFAULT_ACTION']));
-            $difflist_types = array();
-            while($difflist_type = $stmt->fetchObject()) {
-                $difflist_types[] = array( 'difflist_type_id' => $difflist_type->difflist_type_id, 'difflist_type_label' => $difflist_type->difflist_type_label);
-            }
-            $_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION']['difflist_types'] = $difflist_types;
-        }
-        for($j=0;$j<count($_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS']);$j++)
-        {
-            
-            $query = "SELECT lmt.difflist_type_id, lmt.difflist_type_label FROM " . ENT_GROUPBASKET_DIFFLIST_TYPES . " gblmt left join " . ENT_DIFFLIST_TYPES 
-                . " lmt on lmt.difflist_type_id = gblmt.difflist_type_id "
-                . " where basket_id= ? and group_id = ? and action_id = ?";
-            $stmt = $db->query($query,array(trim($_SESSION['m_admin']['basket']['basketId']),trim($_SESSION['m_admin']['basket']['groups'][$cpt]['GROUP_ID']),$_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS'][$j]['ID_ACTION']));
-            $difflist_types = array();
-            while($difflist_type = $stmt->fetchObject()) {
-                $difflist_types[] = array( 'difflist_type_id' => $difflist_type->difflist_type_id, 'difflist_type_label' => $difflist_type->difflist_type_label);
-            }
-            $_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS'][$j]['difflist_types'] = $difflist_types;
-        }
+        $_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION']['difflist_types'] = [];
     }
 }
 elseif($_SESSION['service_tag'] == 'load_basket_db')
@@ -180,53 +154,5 @@ elseif($_SESSION['service_tag'] == 'load_basket_db')
             array_push($indexing_actions,$_SESSION['m_admin']['basket']['all_actions'][$cpt]['ID']);
         }
     }
-
-    for($cpt=0; $cpt < count($_SESSION['m_admin']['basket']['groups'] ); $cpt++)
-    {
-        $GroupBasket = $_SESSION['m_admin']['basket']['groups'][$cpt];
-        if(!empty($GroupBasket['DEFAULT_ACTION']) && in_array($GroupBasket['DEFAULT_ACTION'], $indexing_actions))
-        {   
-            //$ent->update_redirect_groupbasket_db($_SESSION['m_admin']['basket']['groups'][$cpt]['GROUP_ID'],  $_SESSION['m_admin']['basket']['basketId'],$_SESSION['m_admin']['basket']['groups'][$cpt]['DEFAULT_ACTION'],$_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION']['difflist_types']);
-            $stmt = $db->query(
-            "DELETE FROM " . ENT_GROUPBASKET_DIFFLIST_TYPES
-            . " where basket_id = ? "
-            . " and group_id = ? "
-            . " and action_id = ? ",array(trim($_SESSION['m_admin']['basket']['basketId']),trim($GroupBasket['GROUP_ID']),$GroupBasket['DEFAULT_ACTION']));
-            
-            for ($k = 0; $k < count($GroupBasket['PARAM_DEFAULT_ACTION']['difflist_types']); $k++) {
-                $difflist_type = $GroupBasket['PARAM_DEFAULT_ACTION']['difflist_types'][$k];
-                $stmt = $db->query(
-                    "INSERT INTO " . ENT_GROUPBASKET_DIFFLIST_TYPES
-                    . " (group_id, basket_id, action_id, difflist_type_id) values (?, ?, ?, ?)",array(trim($GroupBasket['GROUP_ID']),trim($_SESSION['m_admin']['basket']['basketId']),$GroupBasket['DEFAULT_ACTION'],$difflist_type['difflist_type_id'])
-                );
-            }
-        }
-        for($j=0;$j<count($GroupBasket['ACTIONS']);$j++)
-        {
-            $GroupBasketAction = $GroupBasket['ACTIONS'][$j];
-            if(in_array($GroupBasketAction['ID_ACTION'], $indexing_actions)) {
-                //$ent->update_redirect_groupbasket_db($_SESSION['m_admin']['basket']['groups'][$cpt]['GROUP_ID'],  $_SESSION['m_admin']['basket']['basketId'],$_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS'][$j]['ID_ACTION'],$_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS'][$j]['difflist_types']);
-                $db->query(
-                "DELETE FROM " . ENT_GROUPBASKET_DIFFLIST_TYPES
-                . " where basket_id= ? and group_id = ? and action_id = ?",array(trim($_SESSION['m_admin']['basket']['basketId']),trim($GroupBasket['GROUP_ID']),$GroupBasketAction['ID_ACTION']));
-
-                if (isset($GroupBasketAction['ID_ACTION']['difflist_types'])) {
-                    for ($k = 0; $k < count($GroupBasketAction['ID_ACTION']['difflist_types']); $k++) {
-                        $difflist_type = $GroupBasketAction['ID_ACTION']['difflist_types'][$k];
-                        $stmt = $db->query(
-                            "INSERT INTO " . ENT_GROUPBASKET_DIFFLIST_TYPES
-                            . " (group_id, basket_id, action_id, difflist_type_id) values (?, ?, ?, ?)",array(trim($GroupBasket['GROUP_ID']),trim($_SESSION['m_admin']['basket']['basketId']),$GroupBasketAction['ID_ACTION'],$difflist_type['difflist_type_id'])
-                        );
-                    }
-                }
-            }
-        }
-    }
-}
-else if($_SESSION['service_tag'] == 'del_basket' && !empty($_SESSION['temp_basket_id']))
-{
-    $db = new Database();
-    $stmt = $db->query("DELETE FROM ".ENT_GROUPBASKET_DIFFLIST_TYPES." WHERE basket_id = ?",array($_SESSION['temp_basket_id']));
-    unset($_SESSION['temp_basket_id']);
 }
 ?>
diff --git a/modules/entities/param_workflow.php b/modules/entities/param_workflow.php
index 11fb49f64b9..9b638375a34 100755
--- a/modules/entities/param_workflow.php
+++ b/modules/entities/param_workflow.php
@@ -217,19 +217,7 @@ if ($_SESSION['service_tag'] == 'group_basket') {
             $_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION']['STATUSES_LIST'] = $array;
         }
         //ROLES
-        $_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION']['ROLES_LIST'] = array();
-        if (!empty($_SESSION['m_admin']['basket']['groups'][$cpt]['DEFAULT_ACTION'])) {
-            $query = "SELECT difflist_role_id FROM " . ENT_GROUPBASKET_DIFFLIST_ROLES 
-                . " where basket_id= ?"
-                . " and group_id = ?"
-                . " and action_id = ?";
-            $stmt = $db->query($query,array(trim($_SESSION['m_admin']['basket']['basketId']),trim($_SESSION['m_admin']['basket']['groups'][$cpt]['GROUP_ID']),$_SESSION['m_admin']['basket']['groups'][$cpt]['DEFAULT_ACTION']));
-            $array = array();
-            while ($roles = $stmt->fetchObject()) {
-                $array[] = array('ID' => $roles->difflist_role_id);
-            }
-            $_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION']['ROLES_LIST'] = $array;
-        }
+        $_SESSION['m_admin']['basket']['groups'][$cpt]['PARAM_DEFAULT_ACTION']['ROLES_LIST'] = [];
         //STATUS
         for ($j=0;$j<count($_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS']);$j++) {
             $query = "SELECT status_id, label_status FROM " . GROUPBASKET_STATUS . " left join " . $_SESSION['tablename']['status']
@@ -247,16 +235,7 @@ if ($_SESSION['service_tag'] == 'group_basket') {
         $j=0;
         //ROLES
         for ($j=0;$j<count($_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS']);$j++) {
-            $query = "SELECT difflist_role_id FROM " . ENT_GROUPBASKET_DIFFLIST_ROLES
-                . " where basket_id= ?"
-                . " and group_id = ?"
-                . " and action_id = ?";
-            $stmt = $db->query($query,array(trim($_SESSION['m_admin']['basket']['basketId']),trim($_SESSION['m_admin']['basket']['groups'][$cpt]['GROUP_ID']),$_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS'][$j]['ID_ACTION']));
-            $array = array();
-            while ($roles = $stmt->fetchObject()) {
-                $array[] = array('ID' => $roles->difflist_role_id);
-            }
-            $_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS'][$j]['ROLES_LIST'] = $array;
+            $_SESSION['m_admin']['basket']['groups'][$cpt]['ACTIONS'][$j]['ROLES_LIST'] = [];
         }
     }
 } elseif ($_SESSION['service_tag'] == 'load_basket_db') {
@@ -271,15 +250,10 @@ if ($_SESSION['service_tag'] == 'group_basket') {
         $GroupBasket = $_SESSION['m_admin']['basket']['groups'][$cpt];
         if (!empty($GroupBasket['DEFAULT_ACTION']) && in_array($GroupBasket['DEFAULT_ACTION'], $workflow_actions)) {
             //STATUS
-            $stmt = $db->query(
+            $db->query(
                 "DELETE FROM " . GROUPBASKET_STATUS
                 . " where basket_id= ? and group_id = ? and action_id = ?",array(trim($_SESSION['m_admin']['basket']['basketId']),trim($GroupBasket['GROUP_ID']),$GroupBasket['DEFAULT_ACTION'])
             );
-            //ROLES
-            $stmt = $db->query(
-                "DELETE FROM " . ENT_GROUPBASKET_DIFFLIST_ROLES
-                . " where basket_id= ? and group_id = ? and action_id = ?",array(trim($_SESSION['m_admin']['basket']['basketId']),trim($GroupBasket['GROUP_ID']),$GroupBasket['DEFAULT_ACTION'])
-            );
             //STATUS
             for ($k = 0; $k < count($GroupBasket['PARAM_DEFAULT_ACTION']['STATUSES_LIST']); $k++) {
                 $Status = $GroupBasket['PARAM_DEFAULT_ACTION']['STATUSES_LIST'][$k];
@@ -290,14 +264,6 @@ if ($_SESSION['service_tag'] == 'group_basket') {
                     );
                 }
             }
-            //ROLES
-            for ($k=0;$k<count($GroupBasket['PARAM_DEFAULT_ACTION']['ROLES_LIST']);$k++) {
-                $Roles = $GroupBasket['PARAM_DEFAULT_ACTION']['ROLES_LIST'][$k];
-                $stmt = $db->query(
-                    "INSERT INTO " . ENT_GROUPBASKET_DIFFLIST_ROLES
-                    . " (group_id, basket_id, action_id, difflist_role_id) values (?, ?, ?, ?)",array(trim($GroupBasket['GROUP_ID']),trim($_SESSION['m_admin']['basket']['basketId']),$GroupBasket['DEFAULT_ACTION'],$Roles['ID'])
-                );
-            }
         }
         for ($j=0;$j<count($GroupBasket['ACTIONS']);$j++) {
             $GroupBasketAction = $GroupBasket['ACTIONS'][$j];
@@ -307,11 +273,6 @@ if ($_SESSION['service_tag'] == 'group_basket') {
                     "DELETE FROM " . GROUPBASKET_STATUS
                     . " where basket_id= ? and group_id = ? and action_id = ?",array(trim($_SESSION['m_admin']['basket']['basketId']),trim($GroupBasket['GROUP_ID']),$GroupBasketAction['ID_ACTION'])
                 );
-                //ROLES
-                $stmt = $db->query(
-                    "DELETE FROM " . ENT_GROUPBASKET_DIFFLIST_ROLES
-                    . " where basket_id= ? and group_id = ? and action_id = ?",array(trim($_SESSION['m_admin']['basket']['basketId']),trim($GroupBasket['GROUP_ID']),$GroupBasketAction['ID_ACTION'])
-                );
                 //STATUS
                 if (isset($GroupBasketAction['STATUSES_LIST'])) {
                     for ($k = 0; $k < count($GroupBasketAction['STATUSES_LIST']); $k++) {
@@ -324,22 +285,11 @@ if ($_SESSION['service_tag'] == 'group_basket') {
                         }
                     }
                 }
-                //ROLES
-                 if (isset($GroupBasketAction['ROLES_LIST'])) {
-                    for ($k = 0; $k < count($GroupBasketAction['ROLES_LIST']); $k++) {
-                        $Roles = $GroupBasketAction['ROLES_LIST'][$k];
-                        $stmt = $db->query(
-                            "INSERT INTO " . ENT_GROUPBASKET_DIFFLIST_ROLES
-                            . " (group_id, basket_id, action_id, difflist_role_id) values (?, ?, ?, ?)",array(trim($GroupBasket['GROUP_ID']),trim($_SESSION['m_admin']['basket']['basketId']),$GroupBasketAction['ID_ACTION'],$Roles['ID'])
-                        );
-                    }
-                }
             }
         }
     }
 } else if ($_SESSION['service_tag'] == 'del_basket' && !empty($_SESSION['temp_basket_id'])) {
     $db = new Database();
     $stmt = $db->query("delete from ".GROUPBASKET_STATUS." where basket_id = ?",array($_SESSION['temp_basket_id']));
-    $stmt = $db->query("delete from ".ENT_GROUPBASKET_DIFFLIST_ROLES." where basket_id = ?",array($_SESSION['temp_basket_id']));
     unset($_SESSION['temp_basket_id']);
 }
diff --git a/sql/17_xx.sql b/sql/17_xx.sql
index 3a24e62ab0b..1249d3157c3 100755
--- a/sql/17_xx.sql
+++ b/sql/17_xx.sql
@@ -360,4 +360,9 @@ ALTER TABLE notif_event_stack ALTER COLUMN record_id TYPE character varying(128)
 ALTER TABLE groupbasket DROP COLUMN IF EXISTS sequence;
 ALTER TABLE groupbasket DROP COLUMN IF EXISTS redirect_basketlist;
 ALTER TABLE groupbasket DROP COLUMN IF EXISTS redirect_grouplist;
+ALTER TABLE groupbasket DROP COLUMN IF EXISTS can_redirect;
+ALTER TABLE groupbasket DROP COLUMN IF EXISTS can_delete;
+ALTER TABLE groupbasket DROP COLUMN IF EXISTS can_insert;
+DROP TABLE IF EXISTS groupbasket_difflist_types;
+DROP TABLE IF EXISTS groupbasket_difflist_roles;
 
diff --git a/sql/data_fr.sql b/sql/data_fr.sql
index eb9337bbc85..f3beaa9022e 100755
--- a/sql/data_fr.sql
+++ b/sql/data_fr.sql
@@ -894,65 +894,65 @@ INSERT INTO baskets (basket_id, basket_name, basket_desc, basket_clause, coll_id
 -- Create GROUPBASKET
 TRUNCATE TABLE groupbasket;
 DELETE FROM groupbasket WHERE basket_id = 'QualificationBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('COURRIER', 'QualificationBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('COURRIER', 'QualificationBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'IndexingBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('COURRIER', 'IndexingBasket', 'redirect_to_action','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'IndexingBasket', 'redirect_to_action','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'IndexingBasket', 'redirect_to_action','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'IndexingBasket', 'redirect_to_action','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('ELU', 'IndexingBasket', 'redirect_to_action','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('COURRIER', 'IndexingBasket', 'redirect_to_action', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'IndexingBasket', 'redirect_to_action', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'IndexingBasket', 'redirect_to_action', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'IndexingBasket', 'redirect_to_action', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('ELU', 'IndexingBasket', 'redirect_to_action', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'CopyMailBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'CopyMailBasket', 'list_copies','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'CopyMailBasket', 'list_copies','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'CopyMailBasket', 'list_copies','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('ELU', 'CopyMailBasket', 'list_copies','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'CopyMailBasket', 'list_copies', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'CopyMailBasket', 'list_copies', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'CopyMailBasket', 'list_copies', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('ELU', 'CopyMailBasket', 'list_copies', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'RetourCourrier';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('COURRIER', 'RetourCourrier', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'RetourCourrier', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('COURRIER', 'RetourCourrier', 'list_with_attachments', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'RetourCourrier', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'DdeAvisBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'DdeAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'DdeAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'DdeAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('ELU', 'DdeAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'DdeAvisBasket', 'list_with_avis', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'DdeAvisBasket', 'list_with_avis', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'DdeAvisBasket', 'list_with_avis', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('ELU', 'DdeAvisBasket', 'list_with_avis', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'SupAvisBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'SupAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'SupAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'SupAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'SupAvisBasket', 'list_with_avis', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'SupAvisBasket', 'list_with_avis', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'SupAvisBasket', 'list_with_avis', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'RetAvisBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'RetAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'RetAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'RetAvisBasket', 'list_with_avis','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'RetAvisBasket', 'list_with_avis', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'RetAvisBasket', 'list_with_avis', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'RetAvisBasket', 'list_with_avis', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'ValidationBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'ValidationBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('DIRECTEUR', 'ValidationBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'ValidationBasket', 'list_with_attachments', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('DIRECTEUR', 'ValidationBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'InValidationBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'InValidationBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'InValidationBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'InValidationBasket', 'list_with_attachments', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'InValidationBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'MyBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'MyBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'MyBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'MyBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('ELU', 'MyBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'MyBasket', 'list_with_attachments', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESP_COURRIER', 'MyBasket', 'list_with_attachments', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'MyBasket', 'list_with_attachments', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('ELU', 'MyBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'LateMailBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'LateMailBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'LateMailBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'DepartmentBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'DepartmentBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'DepartmentBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'EvisBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'EvisBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'EvisBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'EsigBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'EsigBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'EsigBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'EsigARBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'EsigARBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('RESPONSABLE', 'EsigARBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'EenvBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'EenvBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'EenvBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'EenvARBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'EenvARBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('AGENT', 'EenvARBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'ToArcBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('ARCHIVISTE', 'ToArcBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('ARCHIVISTE', 'ToArcBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'SentArcBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('ARCHIVISTE', 'SentArcBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('ARCHIVISTE', 'SentArcBasket', 'list_with_attachments', NULL, NULL);
 DELETE FROM groupbasket WHERE basket_id = 'AckArcBasket';
-INSERT INTO groupbasket (group_id, basket_id, result_page, can_redirect, can_delete, can_insert, list_lock_clause, sublist_lock_clause) VALUES ('ARCHIVISTE', 'AckArcBasket', 'list_with_attachments','N', 'N', 'N', NULL, NULL);
+INSERT INTO groupbasket (group_id, basket_id, result_page, list_lock_clause, sublist_lock_clause) VALUES ('ARCHIVISTE', 'AckArcBasket', 'list_with_attachments', NULL, NULL);
 
 
 -- Create Security
diff --git a/sql/structure.sql b/sql/structure.sql
index cdf58c4b621..b577dbbd943 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -559,9 +559,6 @@ CREATE TABLE groupbasket
   group_id character varying(32) NOT NULL,
   basket_id character varying(32) NOT NULL,
   result_page character varying(255) DEFAULT 'show_list1.php'::character varying,
-  can_redirect character(1) NOT NULL DEFAULT 'N'::bpchar,
-  can_delete character(1) NOT NULL DEFAULT 'N'::bpchar,
-  can_insert character(1) NOT NULL DEFAULT 'N'::bpchar,
   list_lock_clause text,
   sublist_lock_clause text,
   CONSTRAINT groupbasket_pkey PRIMARY KEY (group_id, basket_id)
@@ -1986,32 +1983,6 @@ WITH (
   OIDS=FALSE
 );
 
-CREATE TABLE groupbasket_difflist_types
-(
-  system_id serial NOT NULL,
-  group_id character varying(32) NOT NULL,
-  basket_id character varying(32) NOT NULL,
-  action_id integer NOT NULL,
-  difflist_type_id character varying(50) NOT NULL,
-  CONSTRAINT groupbasket_difflist_types_pkey PRIMARY KEY (system_id )
-)
-WITH (
-  OIDS=FALSE
-);
-
-CREATE TABLE groupbasket_difflist_roles
-(
-  system_id serial NOT NULL,
-  group_id character varying(32) NOT NULL,
-  basket_id character varying(32) NOT NULL,
-  action_id integer NOT NULL,
-  difflist_role_id character varying(50) NOT NULL,
-  CONSTRAINT groupbasket_difflist_roles_pkey PRIMARY KEY (system_id)
-)
-WITH (
-  OIDS=FALSE
-);
-
 CREATE SEQUENCE allowed_ip_id_seq
   INCREMENT 1
   MINVALUE 1
-- 
GitLab