From f24d8a31af069e94db001792400a9a5270039c1c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 23 Jun 2021 11:14:28 +0200 Subject: [PATCH] Fix migration --- .travis.yml | 2 +- htdocs/install/upgrade2.php | 35 +++++++++++++++++++++++----- test/phpunit/KnowledgeRecordTest.php | 2 +- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0e5cd2d1192..1bd94be4375 100644 --- a/.travis.yml +++ b/.travis.yml @@ -416,7 +416,7 @@ script: - | echo "Enabling new modules" # Enable modules not enabled into original dump - php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_PRODUCTBATCH,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_STRIPE > $TRAVIS_BUILD_DIR/enablemodule.log + php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_PRODUCTBATCH,MAIN_MODULE_SUPPLIERPROPOSAL,MAIN_MODULE_STRIPE,MAIN_MODULE_EXPENSEREPORT > $TRAVIS_BUILD_DIR/enablemodule.log php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP >> $TRAVIS_BUILD_DIR/enablemodule.log php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT >> $TRAVIS_BUILD_DIR/enablemodule.log php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KNOWLEDGEMANAGEMENT,MAIN_MODULE_EVENTORGANIZATION,MAIN_MODULE_PARTNERSHIP >> $TRAVIS_BUILD_DIR/enablemodule.log diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 824f05bc059..d0d1ae256b4 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -489,10 +489,16 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ 'MAIN_MODULE_VARIANTS'=>'newboxdefonly', 'MAIN_MODULE_WEBSITE'=>'newboxdefonly', ); - migrate_reload_modules($db, $langs, $conf, $listofmodule); + $result = migrate_reload_modules($db, $langs, $conf, $listofmodule); + if ($result < 0) { + $error++; + } // Reload menus (this must be always and only into last targeted version) - migrate_reload_menu($db, $langs, $conf); + $result = migrate_reload_menu($db, $langs, $conf); + if ($result < 0) { + $error++; + } } // Can force activation of some module during migration with parameter 'enablemodules=MAIN_MODULE_XXX,MAIN_MODULE_YYY,...' @@ -545,10 +551,11 @@ if (!GETPOST('action', 'aZ09') || preg_match('/upgrade/i', GETPOST('action', 'aZ print ''; - // Set constant to ask to remake a new ping to inform about upgrade (if first ping was done and OK) - $sql = 'UPDATE '.MAIN_DB_PREFIX."const SET VALUE = 'torefresh' WHERE name = 'MAIN_FIRST_PING_OK_ID'"; - $db->query($sql, 1); - + if (!$error) { + // Set constant to ask to remake a new ping to inform about upgrade (if first ping was done and OK) + $sql = 'UPDATE '.MAIN_DB_PREFIX."const SET VALUE = 'torefresh' WHERE name = 'MAIN_FIRST_PING_OK_ID'"; + $db->query($sql, 1); + } // We always commit. // Process is designed so we can run it several times whatever is situation. @@ -4282,6 +4289,22 @@ function migrate_reload_modules($db, $langs, $conf, $listofmodule = array(), $fo $mod->remove('noboxes'); // We need to remove because a permission id has been removed $mod->init($reloadmode); } + } elseif ($moduletoreload == 'MAIN_MODULE_KNOWLEDGEMANAGEMENT') { // Permission has changed into 3.0 and 3.1 + dolibarr_install_syslog("upgrade2::migrate_reload_modules Knowledge Management"); + $res = @include_once DOL_DOCUMENT_ROOT.'/core/modules/modKnowledgeManagement.class.php'; + if ($res) { + $mod = new modKnowledgeManagement($db); + $mod->remove('noboxes'); // We need to remove because a permission id has been removed + $mod->init($reloadmode); + } + } elseif ($moduletoreload == 'MAIN_MODULE_EVENTORGANIZATION') { // Permission has changed into 3.0 and 3.1 + dolibarr_install_syslog("upgrade2::migrate_reload_modules EventOrganization"); + $res = @include_once DOL_DOCUMENT_ROOT.'/core/modules/modEventOrganization.class.php'; + if ($res) { + $mod = new modEventOrganization($db); + $mod->remove('noboxes'); // We need to remove because a permission id has been removed + $mod->init($reloadmode); + } } elseif ($moduletoreload == 'MAIN_MODULE_PAYBOX') { // Permission has changed into 3.0 dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate Paybox module"); $res = @include_once DOL_DOCUMENT_ROOT.'/core/modules/modPaybox.class.php'; diff --git a/test/phpunit/KnowledgeRecordTest.php b/test/phpunit/KnowledgeRecordTest.php index a1d2c0a854b..fc6f385e25d 100644 --- a/test/phpunit/KnowledgeRecordTest.php +++ b/test/phpunit/KnowledgeRecordTest.php @@ -87,7 +87,7 @@ class KnowledgeRecordTest extends PHPUnit\Framework\TestCase $db->begin(); // This is to have all actions inside a transaction even if test launched without suite. if (empty($conf->knowledgemanagement->enabled)) { - // print __METHOD__." module knowledgemanagement order must be enabled.\n"; die(1); + print __METHOD__." module knowledgemanagement order must be enabled.\n"; die(1); } }