Uživatel:Josmart/Rogo/Upgrade
< Uživatel:Josmart | Rogo
Informace společné pro všechny upgrady[upravit | editovat zdroj]
Odkazy[upravit | editovat zdroj]
Záloha a obnovení databáze[upravit | editovat zdroj]
mysqldump -u Login -pPassword nazev_db > dump.sql mysql -u Login -pPassword nazev_db_k_obnoveni < dump.sql // obnovení, nejprve drop tables
Práva na zápis pro adresáře[upravit | editovat zdroj]
- /help/staff/images
- /help/student/images
- /email_templates
- /media
- /qti/imports
- /qti/exports
- /config - for installation only, so that config.inc.php can be written. This should be changed back to being writeable by the owner only after installation.
- /users/photos
- /tmp
Soubory k přepsání[upravit | editovat zdroj]
- config/config.inc.*
- config/external_email_msg.php
- plugins/SMS/cuni.class.php
- theme/
- email_templates/
Naše úpravy[upravit | editovat zdroj]
Následující soubory je nutné upravit, aby fungovaly i po upgradu ... porovnat rozdíly mezi minulou verzí a začlenit tam vhodně naše úpravy.
config.inc.php[upravit | editovat zdroj]
$cfg_setting_icons_order ... zkontrolovat, zda v admin/index.php nepřibyla další option v nastavení. A případně upravit.
Login form[upravit | editovat zdroj]
cs/include/common.inc: $string['signinmsg'] podle původní verze
Zobrazování chybového hlášení při neúspěšném přihlášení[upravit | editovat zdroj]
Toto Rogo neumí a nikdy umět nebude. Zobrazení informace o tom, že uživatel neexistuje nebo že bylo u uživatele zadáno chybné heslo, výrazně zvyšuje riziko úspěšného prolamování hesel. Jelikož to ale naši uživatelé vyžadují, doprogramovali jsme. Bylo nutné udělat úpravy ve dvou souborech.
- classes/authentication.class.php
- plugins/auth/internaldb.class.php
Tyto úpravy lze v aktuálním souboru vyhledat podle řetězce "Josef Martinak".
Česká lokalizace[upravit | editovat zdroj]
- Databáze helpu - pokud jsme tam provedli nějaké změny, před upgradem je potřeba nahrát je zpět do gitu Roga.
- http://rogo-oss.nottingham.ac.uk/langpacks/ .. preventivně raději stáhnout v anonymous mode kvůli možnému kešování na straně serveru.
Testy[upravit | editovat zdroj]
- Vyzkoušet synchronizaci předmětů (rogo_import)
- Vyzkoušet LDAP autentifikaci
- Zjistit, zda se zobrazuje info ohledně neúspěšného přihlášení
- Prozkoumat, zda jsou správně přeloženy texty na webu a v nápovědě
Rogo 7.0.1[upravit | editovat zdroj]
Tato verze již vyžaduje PHP7, není možné upgradovat instalaci na stávajícím serveru. Zřídili jsme nový server, na který je potřeba přemigrovat data a aktualizovat je na novou verzi. Postup:
- Instalace fresh verze 7.0.1 na novém serveru kvůli vytvoření potřebných uživatelů roga.
- Vymazání obsahu databáze (DROP, CREATE)
- Nahrání původní databáze, kterou chceme upgradovat.
- Nahrání médií a konfiguračních souborů z minulé verze
- Nastavení nově vytvořených db přístupů do config.inc.php
- Spuštění upgradu.
Poznámky[upravit | editovat zdroj]
- Zdá se, že nová verze nepotřebuje composer
- Chyba při upgradu:
ERROR: ALTER TABLE staff_help MODIFY COLUMN `language` char(5) NOT NULL DEFAULT 'en'Systémová chyba
ERROR: ALTER TABLE staff_help MODIFY COLUMN `lastupdated` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMPSystémová chyba
ERROR: ALTER TABLE student_help MODIFY COLUMN `language` char(5) NOT NULL DEFAULT 'en'Systémová chyba
ERROR: ALTER TABLE student_help MODIFY COLUMN `lastupdated` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMPSystémová chyba
Příkazy jsem provedl dodatečně, proběhly v pohodě.
- Nové Rogo neumí MySQL8, je nutné zůstat u verze 5.7
Rogo 7.0.4[upravit | editovat zdroj]
- Nahrání souborů verze 7.0.4 na server
- Spuštění upgradu databáze
- Otestování plugins/SMS/cuni.class.php
- Doladění uživatelských změn
- Rozchození a otestování synchronizace uživatelů a předmětů.
Bugy[upravit | editovat zdroj]
Iniciály[upravit | editovat zdroj]
https://rogo-eassessment.atlassian.net/browse/ROGO-2758
When user's forename begins with unicode character, like Štěpán, Žaneta, /admin/users_from_SMS.php fails. "Data too long for column 'initials' at row 1".
The problem is in /classes/userutils.class.php
foreach ($initial as $name) {
$initials .= substr($name, 0, 1);
}
$initials = strtoupper($initials);
Je potřeba nahradit "mb_substr" a "mb_strtoupper".
Link v uvítacím mailu nového uživatele[upravit | editovat zdroj]
V mailu je uveden link www.rogo.cz/students, který vede na formativní a cvičné testy. Raději bychom, ať to směřuje na www.rogo.cz, kde student uvidí sumativní zkoušky.
users/create_new_user.php
$message .= "<p>" . $string['email2'] . " <a href=\"https://{$_SERVER['HTTP_HOST']}/\">https://{$_SERVER['HTTP_HOST']}/students/</a></p>";
Rogo 7.2.2[upravit | editovat zdroj]
- Nahrání souborů verze 7.2.2 na server
- Spuštění upgradu databáze
- Otestování plugins/SMS/cuni.class.php
- Doladění uživatelských změn
- Rozchození a otestování synchronizace uživatelů a předmětů.
Bugy[upravit | editovat zdroj]
Link v uvítacím mailu nového uživatele[upravit | editovat zdroj]
V mailu je uveden link www.rogo.cz/students, který vede na formativní a cvičné testy. Raději bychom, ať to směřuje na www.rogo.cz, kde student uvidí sumativní zkoušky.
users/create_new_user.php
upravíme text mailu takto:
if (mb_strpos($new_roles, 'Staff') !== false) {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/\">https://{$host}/</a></p>";
} elseif (mb_strpos($new_roles, 'Student') !== false) {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/\">https://{$host}/</a></p>";
} else {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/\"></a>https://{$host}/</p>";
$message .= '<p>' . $string['email3'] . '</p>';
}
Nefunkční odkazy v seznamu předmětů[upravit | editovat zdroj]
admin/list_modules.php
<script src="../js/moduleadmininit.min.js"></script>
přesunout na konec scriptu
Rogo 7.2.3[upravit | editovat zdroj]
- Odstranit vše kromě /media, /tmp
- Nahrát soubory nové verze na server
- Do složky /config nahrát zpět původní config.inc.*
- Nahradit favicon.ico a /themes/* soubory z původní verze
- Porovnat soubory /config/external_email_msg.php, /classes/authentication.class.php, /plugins/auth/internaldb.class.php s původní verzí a zanést do nich naše změny
- Nainstalovat plugin plugin_sis_sms, pokud ještě není. Instalace musí proběhnout v anglické lokalizaci.
- Pustit https://rogoURL/updates a nechat nainstalovat všechny jazykové balíčky a nápovědu
- Upravit /lang/cs/en/include/common.inc: $string['signinmsg'] podle původní verze
- Opravit linky v uvítacím mailu nového uživatele takto
/users/create_new_user.php:
if (mb_strpos($new_roles, 'Staff') !== false) {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/staff/\">https://{$host}/staff/</a></p>";
} elseif (mb_strpos($new_roles, 'Student') !== false) {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/\">https://{$host}/</a></p>";
} else {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/\"></a>https://{$host}/</p>";
$message .= '<p>' . $string['email3'] . '</p>';
}
- $cfg_setting_icons_order ... dočasně zakomentovat, zjistit, zda v /admin/index.php nepřibyla další option v nastavení. A případně upravit
- Změnit v config.inc.php $cfg_sms_api = 'cuni'; na $cfg_sms_api = "";
- Pustit na DB dotazy
update modules set externalid=moduleid,sms='CUNI' where sms!='';
update schools set externalid='LF1',externalsys='CUNI' where school='1. LF UK';
- Otestovat synchronizaci uživatelů a předmětů
- Vyzkoušet LDAP autentifikaci
- Zjistit, zda se zobrazuje info ohledně neúspěšného přihlášení
Opravit ručně bugy[upravit | editovat zdroj]
private static $studentroles = array('Student', 'left', 'graduate', 'Suspended', 'Locked');
in api/classes/usermanagement.class.php.
api/classes/modulemanagement.class.php, method create()
$id = \module_utils::add_modules(
$params['modulecode'],
$params['name'],
1,
$schoolid,
'',
$params['sms'],
$config->get_setting('plugin_sis_sms', 'selfenrol'),
$config->get_setting('plugin_sis_sms', 'peer_review'),
$config->get_setting('plugin_sis_sms', 'external'),
$config->get_setting('plugin_sis_sms', 'stdset'),
$config->get_setting('plugin_sis_sms', 'mapping'),
$config->get_setting('plugin_sis_sms', 'neg_marking'),
'',
$this->db,
false,
$config->get_setting('plugin_sis_sms', 'timed_exams'),
$config->get_setting('plugin_sis_sms', 'exam_q_feedback'),
$config->get_setting('plugin_sis_sms', 'add_team_members'),
0,
$config->get_setting('core', 'system_academic_year_start'),
$params['externalid']
);
Plus přidat do konfigurace databáze proměnné z pluginu "plugin_sis_sms" (install.sql)
- Cant' preview papers after upgrading to 7.2.3: classes/papersettings.class.php line 328, smazat hardcoded "rogo.".
- Link to Student Cohort shows students from any year, not only the current one
js/modules/modulessidebar.min.js
nahradit:
<?php echo $current_session ?>
tímto:
$(".modulecohort").find("a").last().text().replace(/.*?([0-9]{4}).*/,'$1')
Rogo 7.3.0[upravit | editovat zdroj]
- Odstranit vše kromě /media, /tmp
- Nahrát soubory nové verze na server
- Do složky /config nahrát zpět původní config.inc.*
- Nahradit favicon.ico a /themes/* soubory z původní verze
- Porovnat soubory /config/external_email_msg.php, /classes/authentication.class.php, /plugins/auth/internaldb.class.php s původní verzí a zanést do nich naše změny
- Nainstalovat plugin plugin_sis_sms, pokud ještě není. Instalace musí proběhnout v anglické lokalizaci.
- Pustit https://rogoURL/updates a nechat nainstalovat všechny jazykové balíčky a nápovědu
- Upravit /lang/cs/en/include/common.inc: $string['signinmsg'] podle původní verze
- Opravit linky v uvítacím mailu nového uživatele takto
/users/create_new_user.php:
if (mb_strpos($new_roles, 'Staff') !== false) {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/staff/\">https://{$host}/staff/</a></p>";
} elseif (mb_strpos($new_roles, 'Student') !== false) {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/\">https://{$host}/</a></p>";
} else {
$message .= '<p>' . $string['email2'] . " <a href=\"https://{$host}/\"></a>https://{$host}/</p>";
$message .= '<p>' . $string['email3'] . '</p>';
}
- $cfg_setting_icons_order ... dočasně zakomentovat, zjistit, zda v /admin/index.php nepřibyla další option v nastavení. A případně upravit
- Změnit v config.inc.php $cfg_sms_api = 'cuni'; na $cfg_sms_api = "";
- Pustit na DB dotazy
update modules set externalid=moduleid,sms='CUNI' where sms!='';
update schools set externalid='LF1',externalsys='CUNI' where school='1. LF UK';
- Upravit následující soubory kvůli zobrazování hlášení po neúspěšném přihlášení (a otestovat)
- classes/authentication.class.php
- plugins/auth/internaldb.class.php
- Upravit text loginformu "cs(en)/include/common.inc: $string['signinmsg']" podle původní verze
- Otestovat synchronizaci uživatelů a předmětů
- Vyzkoušet LDAP autentifikaci
Opravit ručně bugy[upravit | editovat zdroj]
api/classes/modulemanagement.class.php, method create()
$id = \module_utils::add_modules(
$params['modulecode'],
$params['name'],
1,
$schoolid,
'',
$params['sms'],
$config->get_setting('plugin_sis_sms', 'selfenrol'),
$config->get_setting('plugin_sis_sms', 'peer_review'),
$config->get_setting('plugin_sis_sms', 'external'),
$config->get_setting('plugin_sis_sms', 'stdset'),
$config->get_setting('plugin_sis_sms', 'mapping'),
$config->get_setting('plugin_sis_sms', 'neg_marking'),
'',
$this->db,
false,
$config->get_setting('plugin_sis_sms', 'timed_exams'),
$config->get_setting('plugin_sis_sms', 'exam_q_feedback'),
$config->get_setting('plugin_sis_sms', 'add_team_members'),
0,
$config->get_setting('core', 'system_academic_year_start'),
$params['externalid']
);
Plus přidat do konfigurace databáze proměnné z pluginu "plugin_sis_sms" (install.sql)
js/modules/modulessidebar.min.js
nahradit:
<?php echo $current_session ?>
tímto:
"+$(".modulecohort").find("a").last().text().replace(/.*?([0-9]{4}).*/,'$1')+"
Neopravené bugy[upravit | editovat zdroj]
- CSV export that can't be opened in Windows Excel
- Error in sys_error_details.php
- /users/details.php with inactive tabs
Rogo 7.6.0[upravit | editovat zdroj]
- Odstranit vše kromě /media, /tmp
- Nahrát soubory nové verze na server
- Do složky /config nahrát zpět původní config.inc.*
- Nahradit favicon.ico a /themes/* soubory z původní verze
- Porovnat soubory /config/external_email_msg.php, /classes/authentication.class.php, /plugins/auth/internaldb.class.php s původní verzí a zanést do nich naše změny
- Nainstalovat plugin plugin_sis_sms, pokud ještě není. Instalace musí proběhnout v anglické lokalizaci. Je možné, že plugin nebude fungovat, bude potřeba testovat a odladit.
- Pustit https://rogoURL/updates a nechat nainstalovat všechny jazykové balíčky a nápovědu
- $cfg_setting_icons_order ... dočasně zakomentovat, zjistit, zda v /admin/index.php nepřibyla další option v nastavení. A případně upravit
- Upravit následující soubory kvůli zobrazování hlášení po neúspěšném přihlášení (a otestovat)
- classes/authentication.class.php
- plugins/auth/internaldb.class.php
- Upravit text loginformu "cs(en)/include/common.inc: $string['signinmsg']" podle původní verze
- V konfiguraci (/admin/config.php) nastavit mailserver: rogo/ssl
- Vyzkoušet LDAP autentifikaci
Opravit ručně bugy[upravit | editovat zdroj]
api/classes/modulemanagement.class.php, method create()
$config = \Config::get_instance();
$id = \module_utils::add_modules(
$params['modulecode'],
$params['name'],
1,
$schoolid,
'',
$params['sms'],
$config->get_setting('plugin_sis_sms', 'selfenrol'),
$config->get_setting('plugin_sis_sms', 'peer_review'),
$config->get_setting('plugin_sis_sms', 'external'),
$config->get_setting('plugin_sis_sms', 'stdset'),
$config->get_setting('plugin_sis_sms', 'mapping'),
$config->get_setting('plugin_sis_sms', 'neg_marking'),
'',
$this->db,
false,
$config->get_setting('plugin_sis_sms', 'timed_exams'),
$config->get_setting('plugin_sis_sms', 'exam_q_feedback'),
$config->get_setting('plugin_sis_sms', 'add_team_members'),
0,
$config->get_setting('core', 'system_academic_year_start'),
$params['externalid']
);
js/modules/modulessidebar.min.js
nahradit:
<?php echo $current_session ?>
tímto:
"+$(".modulecohort").find("a").last().text().replace(/.*?([0-9]{4}).*/,'$1')+"
classes/paperproperties.class.php
kolem řádku 2638 přidat:
if(!isset($omedia) || !array_key_exists('source', $omedia)) $omedia['source'] = '';
if(!isset($omedia) || !array_key_exists('width', $omedia)) $omedia['width'] = '';
if(!isset($omedia) || !array_key_exists('height', $omedia)) $omedia['height'] = '';
if(!isset($omedia) || !array_key_exists('alt', $omedia)) $omedia['alt'] = '';
classes/questiondata.class.php
kolem řádku 672 přidat:
if(!array_key_exists('q_media_num', $question)) $question['q_media_num'] = 0;
classes/paperproperties.class.php
kolem řádku 2791 přidat:
if(!isset($media) || !array_key_exists('source', $media)) $media['source'] = '';
if(!isset($media) || !array_key_exists('width', $media)) $media['width'] = '';
if(!isset($media) || !array_key_exists('height', $media)) $media['height'] = '';
if(!isset($media) || !array_key_exists('alt', $media)) $media['alt'] = '';