Adding course legal agreement see BT#3105

skala
Julio Montoya 14 years ago
parent d08c14510d
commit 32a0b98ead
  1. 21
      main/course_info/infocours.php
  2. 72
      main/course_info/legal.php
  3. 49
      main/inc/lib/course.lib.php
  4. 85
      main/inc/local.inc.php
  5. 4
      main/install/db_main.sql
  6. 4
      main/install/migrate-db-1.8.8-1.9.0-pre.sql

@ -181,6 +181,7 @@ $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class=
$form->addElement('html', '</div></div>'); $form->addElement('html', '</div></div>');
// COURSE ACCESS // COURSE ACCESS
$form->addElement('html', '<div> <h3>'.Display::return_icon('course.png', addslashes(get_lang('CourseAccess')),'','22').' '.addslashes(get_lang('CourseAccess')).'</h3><div>'); $form->addElement('html', '<div> <h3>'.Display::return_icon('course.png', addslashes(get_lang('CourseAccess')),'','22').' '.addslashes(get_lang('CourseAccess')).'</h3><div>');
$form->addElement('radio', 'visibility', get_lang("CourseAccess"), get_lang('OpenToTheWorld'), COURSE_VISIBILITY_OPEN_WORLD); $form->addElement('radio', 'visibility', get_lang("CourseAccess"), get_lang('OpenToTheWorld'), COURSE_VISIBILITY_OPEN_WORLD);
@ -200,9 +201,14 @@ $form->addElement('html', $linebreak);
$form->add_textfield('course_registration_password', get_lang('CourseRegistrationPassword'), false, array('size' => '60')); $form->add_textfield('course_registration_password', get_lang('CourseRegistrationPassword'), false, array('size' => '60'));
$form->addElement('checkbox', 'activate_legal', get_lang('ActivateLegal'));
$form->addElement('textarea', 'legal', get_lang('CourseLegal'), false, array('size' => '60'));
$form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"'); $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class="save"');
$form->addElement('html', '</div></div>'); $form->addElement('html', '</div></div>');
// EMAIL NOTIFICATIONS // EMAIL NOTIFICATIONS
$form->addElement('html', '<div><h3>'.Display::return_icon('mail.png', addslashes(get_lang('EmailNotifications')),'','22').' '.addslashes(get_lang('EmailNotifications')).'</h3><div>'); $form->addElement('html', '<div><h3>'.Display::return_icon('mail.png', addslashes(get_lang('EmailNotifications')),'','22').' '.addslashes(get_lang('EmailNotifications')).'</h3><div>');
@ -231,8 +237,6 @@ $form->addElement('style_submit_button', null, get_lang('SaveSettings'), 'class=
$form->addElement('html', '</div></div>'); $form->addElement('html', '</div></div>');
// Gradebook SETTINGS // Gradebook SETTINGS
$form->addElement('html', '<div><h3>'.Display::return_icon('gradebook.png', addslashes(get_lang('Gradebook')),'','22').' '.addslashes(get_lang('Gradebook')).'</h3><div>'); $form->addElement('html', '<div><h3>'.Display::return_icon('gradebook.png', addslashes(get_lang('Gradebook')),'','22').' '.addslashes(get_lang('Gradebook')).'</h3><div>');
$group = array(); $group = array();
@ -345,6 +349,9 @@ $values['subscribe'] = $course_access_settings['subscribe'];
$values['unsubscribe'] = $course_access_settings['unsubscribe']; $values['unsubscribe'] = $course_access_settings['unsubscribe'];
$values['course_registration_password'] = $all_course_information['registration_code']; $values['course_registration_password'] = $all_course_information['registration_code'];
$values['legal'] = $all_course_information['legal'];
$values['activate_legal'] = $all_course_information['activate_legal'];
// Get send_mail_setting (auth)from table // Get send_mail_setting (auth)from table
@ -402,7 +409,7 @@ if ($form->validate() && is_settings_editable()) {
//Variables that will be saved in the TABLE_MAIN_COURSE table //Variables that will be saved in the TABLE_MAIN_COURSE table
$update_in_course_table = array('title', 'course_language','category_code','department_name', 'department_url','visibility', $update_in_course_table = array('title', 'course_language','category_code','department_name', 'department_url','visibility',
'subscribe', 'unsubscribe','tutor_name','course_registration_password'); 'subscribe', 'unsubscribe','tutor_name','course_registration_password', 'legal', 'activate_legal');
foreach ($update_values as $index =>$value) { foreach ($update_values as $index =>$value) {
$update_values[$index] = Database::escape_string($value); $update_values[$index] = Database::escape_string($value);
@ -411,15 +418,17 @@ if ($form->validate() && is_settings_editable()) {
//visual_code = '".$update_values['visual_code']."', //visual_code = '".$update_values['visual_code']."',
$table_course = Database :: get_main_table(TABLE_MAIN_COURSE); $table_course = Database :: get_main_table(TABLE_MAIN_COURSE);
$sql = "UPDATE $table_course SET $sql = "UPDATE $table_course SET
title = '".Security::remove_XSS($update_values['title'])."', title = '".$update_values['title']."',
course_language = '".$update_values['course_language']."', course_language = '".$update_values['course_language']."',
category_code = '".$update_values['category_code']."', category_code = '".$update_values['category_code']."',
department_name = '".Security::remove_XSS($update_values['department_name'])."', department_name = '".$update_values['department_name']."',
department_url = '".Security::remove_XSS($update_values['department_url'])."', department_url = '".$update_values['department_url']."',
visibility = '".$update_values['visibility']."', visibility = '".$update_values['visibility']."',
subscribe = '".$update_values['subscribe']."', subscribe = '".$update_values['subscribe']."',
unsubscribe = '".$update_values['unsubscribe']."', unsubscribe = '".$update_values['unsubscribe']."',
tutor_name = '".$update_values['tutor_name']."', tutor_name = '".$update_values['tutor_name']."',
legal = '".$update_values['legal']."',
activate_legal = '".$update_values['activate_legal']."',
registration_code = '".$update_values['course_registration_password']."' registration_code = '".$update_values['course_registration_password']."'
WHERE code = '".$course_code."'"; WHERE code = '".$course_code."'";
Database::query($sql); Database::query($sql);

@ -0,0 +1,72 @@
<?php
// Language files that need to be included
$language_file = array('create_course', 'course_info', 'admin');
require_once '../inc/global.inc.php';
$this_section = SECTION_COURSES;
$course_code = isset($_REQUEST['course_code']) ? $_REQUEST['course_code'] : null;
$session_id = isset($_REQUEST['session_id']) ? intval($_REQUEST['session_id']) : null;
$user_id = api_get_user_id();
if (empty($course_code)) {
api_not_allowed();
}
$course_info = CourseManager::get_course_information($course_code);
$course_legal = $course_info['legal'];
// Build the form
$form = new FormValidator('legal', 'GET', api_get_self().'?course_code='.$course_code.'&session_id='.$session_id);
$form->addElement('hidden', 'course_code', $course_code);
$form->addElement('hidden', 'session_id', $session_id);
$form->addElement('checkbox', 'accept_legal', null, get_lang('AcceptLegal'));
$form->addElement('style_submit_button', null, get_lang('Accept'), 'class="save"');
if ($form->validate()) {
$accept_legal = $form->exportValue('accept_legal');
if ($accept_legal == 1 ) {
CourseManager::save_user_legal($user_id, $course_code, $session_id);
}
}
$url = api_get_course_url($course_code, $session_id);
if (empty($session_id)) {
if (CourseManager::is_user_subscribed_in_course($user_id, $course_code)) {
$user_accepted_legal = CourseManager::is_user_accepted_legal($user_id, $course_code);
if ($user_accepted_legal) {
//Redirect to course home
header('Location: '.$url);
exit;
}
} else {
api_not_allowed();
}
} else {
$user_session_status = SessionManager::get_user_status_in_session($user_id, $course_code, $session_id);
if (isset($user_session_status)) {
$user_accepted_legal = CourseManager::is_user_accepted_legal($user_id, $course_code, $session_id);
if ($user_accepted_legal) {
//Redirect to course session home
header('Location: '.$url);
exit;
}
} else {
api_not_allowed();
}
}
Display :: display_header($nameTools);
echo '<h2>'.get_lang('CourseLegalAgreement').'</h2>';
echo $course_legal;
$form->display();

@ -3370,5 +3370,54 @@ class CourseManager {
return false; return false;
} }
function is_user_accepted_legal($user_id, $course_code, $session_id = null) {
$user_id = intval($user_id);
$course_code = Database::escape_string($course_code);
$session_id = intval($session_id);
if (empty($session_id)) {
$table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT legal_agreement FROM $table
WHERE user_id = $user_id AND course_code ='$course_code' ";
$result = Database::query($sql);
if (Database::num_rows($result) > 0 ) {
$result = Database::fetch_array($result);
if ($result['legal_agreement'] == 1 ) {
return true;
}
}
return false;
} else {
$table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql = "SELECT legal_agreement FROM $table
WHERE id_user = $user_id AND course_code ='$course_code' AND id_session = $session_id";
$result = Database::query($sql);
if (Database::num_rows($result) > 0 ) {
$result = Database::fetch_array($result);
if ($result['legal_agreement'] == 1 ) {
return true;
}
}
return false;
}
return false;
}
function save_user_legal($user_id, $course_code, $session_id = null) {
$user_id = intval($user_id);
$course_code = Database::escape_string($course_code);
$session_id = intval($session_id);
if (empty($session_id)) {
$table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "UPDATE $table SET legal_agreement = '1'
WHERE user_id = $user_id AND course_code ='$course_code' ";
$result = Database::query($sql);
} else {
$table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql = "UPDATE $table SET legal_agreement = '1'
WHERE id_user = $user_id AND course_code = '$course_code' AND id_session = $session_id";
$result = Database::query($sql);
}
}
} //end class CourseManager } //end class CourseManager

@ -249,9 +249,8 @@ if (!empty($_SESSION['_user']['user_id']) && ! ($login || $logout)) {
//lookup the user in the main database //lookup the user in the main database
$user_table = Database::get_main_table(TABLE_MAIN_USER); $user_table = Database::get_main_table(TABLE_MAIN_USER);
$sql = "SELECT user_id, username, password, auth_source, active, expiration_date $sql = "SELECT user_id, username, password, auth_source, active, expiration_date FROM $user_table
FROM $user_table WHERE username = '".Database::escape_string($login)."'";
WHERE username = '".Database::escape_string($login)."'";
$result = Database::query($sql); $result = Database::query($sql);
if (Database::num_rows($result) > 0) { if (Database::num_rows($result) > 0) {
@ -288,12 +287,12 @@ if (!empty($_SESSION['_user']['user_id']) && ! ($login || $logout)) {
// Check the user's password // Check the user's password
if ( ($password == $uData['password'] OR $cas_login) AND (trim($login) == $uData['username'])) { if ( ($password == $uData['password'] OR $cas_login) AND (trim($login) == $uData['username'])) {
require_once(api_get_path(LIBRARY_PATH).'usermanager.lib.php'); require_once(api_get_path(LIBRARY_PATH).'usermanager.lib.php');
$update_type = UserManager::get_extra_user_data_by_field($uData['user_id'], 'update_type'); $update_type = UserManager::get_extra_user_data_by_field($uData['user_id'], 'update_type');
$update_type= $update_type['update_type']; $update_type= $update_type['update_type'];
if (!empty($extAuthSource[$update_type]['updateUser']) && file_exists($extAuthSource[$update_type]['updateUser'])) { if (!empty($extAuthSource[$update_type]['updateUser']) && file_exists($extAuthSource[$update_type]['updateUser'])) {
include_once($extAuthSource[$update_type]['updateUser']); include_once($extAuthSource[$update_type]['updateUser']);
} }
// Check if the account is active (not locked) // Check if the account is active (not locked)
if ($uData['active']=='1') { if ($uData['active']=='1') {
@ -323,10 +322,11 @@ if (!empty($_SESSION['_user']['user_id']) && ! ($login || $logout)) {
if ($my_user_is_admin === false) { if ($my_user_is_admin === false) {
if (is_array($my_url_list) && count($my_url_list)>0 ){ if (is_array($my_url_list) && count($my_url_list)>0 ) {
// the user have the permissions to enter at this site // the user have the permissions to enter at this site
if (in_array($current_access_url_id, $my_url_list)) { if (in_array($current_access_url_id, $my_url_list)) {
ConditionalLogin::check_conditions($uData); ConditionalLogin::check_conditions($uData);
$_user['user_id'] = $uData['user_id']; $_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status']; $_user['status'] = $uData['status'];
session_regenerate_id(); session_regenerate_id();
@ -718,6 +718,7 @@ if (isset($cidReset) && $cidReset) { // course session data refresh requested or
$_course['visibility'] = $course_data['visibility']; $_course['visibility'] = $course_data['visibility'];
$_course['subscribe_allowed'] = $course_data['subscribe']; $_course['subscribe_allowed'] = $course_data['subscribe'];
$_course['unubscribe_allowed'] = $course_data['unsubscribe']; $_course['unubscribe_allowed'] = $course_data['unsubscribe'];
$_course['activate_legal'] = $course_data['activate_legal'];
api_session_register('_cid'); api_session_register('_cid');
api_session_register('_course'); api_session_register('_course');
@ -728,8 +729,8 @@ if (isset($cidReset) && $cidReset) { // course session data refresh requested or
if (api_get_setting('use_session_mode')=='true') { if (api_get_setting('use_session_mode')=='true') {
// Database Table Definitions // Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER); $tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
if (!empty($_GET['id_session'])) { if (!empty($_GET['id_session'])) {
@ -838,13 +839,15 @@ if (isset($cidReset) && $cidReset) { // course session data refresh requested or
/* COURSE / USER REL. INIT */ /* COURSE / USER REL. INIT */
$session_id = api_get_session_id();
if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // session data refresh requested if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // session data refresh requested
if (isset($_user['user_id']) && $_user['user_id'] && isset($_cid) && $_cid) { // have keys to search data if (isset($_user['user_id']) && $_user['user_id'] && isset($_cid) && $_cid) { // have keys to search data
if (api_get_setting('use_session_mode') != 'true') { if (api_get_setting('use_session_mode') != 'true') {
$course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT * FROM $course_user_table $sql = "SELECT * FROM $course_user_table
WHERE user_id = '".$_user['user_id']."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." WHERE user_id = '".$_user['user_id']."' AND relation_type <> ".COURSE_RELATION_TYPE_RRHH."
AND course_code = '$cidReq'"; AND course_code = '$cidReq'";
$result = Database::query($sql); $result = Database::query($sql);
@ -852,6 +855,7 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
if (Database::num_rows($result) > 0) { // this user have a recorded state for this course if (Database::num_rows($result) > 0) { // this user have a recorded state for this course
$cuData = Database::fetch_array($result); $cuData = Database::fetch_array($result);
$is_courseMember = true; $is_courseMember = true;
$is_courseTutor = (bool) ($cuData['tutor_id' ] == 1 ); $is_courseTutor = (bool) ($cuData['tutor_id' ] == 1 );
$is_courseAdmin = (bool) ($cuData['status'] == 1 ); $is_courseAdmin = (bool) ($cuData['status'] == 1 );
@ -869,33 +873,46 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
$tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$sql = "SELECT * FROM ".$tbl_course_user." $sql = "SELECT * FROM ".$tbl_course_user."
WHERE user_id = '".$_user['user_id']."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." WHERE user_id = '".$_user['user_id']."' AND
AND course_code = '$cidReq'"; relation_type<>".COURSE_RELATION_TYPE_RRHH." AND
course_code = '$cidReq'";
$result = Database::query($sql); $result = Database::query($sql);
if (Database::num_rows($result) > 0) { // this user have a recorded state for this course if (Database::num_rows($result) > 0) { // this user have a recorded state for this course
$cuData = Database::fetch_array($result); $cuData = Database::fetch_array($result);
$_courseUser['role'] = $cuData['role' ]; if ($_course['activate_legal'] == 1) {
$user_is_subscribed = CourseManager::is_user_subscribed_in_course($_user['user_id'], $_course['id'], $session_id);
if (!$user_is_subscribed) {
$url = api_get_path(WEB_CODE_PATH).'course_info/legal.php?course_code='.$_course['code'].'&session_id='.$session_id;
header('Location: '.$url);
exit;
}
}
$_courseUser['role'] = $cuData['role'];
$is_courseMember = true; $is_courseMember = true;
$is_courseTutor = (bool) ($cuData['tutor_id' ] == 1 ); $is_courseTutor = (bool) ($cuData['tutor_id' ] == 1 );
$is_courseAdmin = (bool) ($cuData['status'] == 1 ); $is_courseAdmin = (bool) ($cuData['status'] == 1 );
api_session_register('_courseUser'); api_session_register('_courseUser');
} }
if (!isset($is_courseAdmin)) { // this user has no status related to this course if (!isset($is_courseAdmin)) { // this user has no status related to this course
// is it the session coach or the session admin ? // is it the session coach or the session admin ?
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION); $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE); $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
//Session coach, session admin, course coach admin //Session coach, session admin, course coach admin
$sql = " SELECT session.id_coach, session_admin_id, session_rcru.id_user $sql = "SELECT session.id_coach, session_admin_id, session_rcru.id_user
FROM $tbl_session session,$tbl_session_course_user session_rcru FROM $tbl_session session,$tbl_session_course_user session_rcru
WHERE session_rcru.id_session = session.id AND session_rcru.course_code = '$_cid' AND session_rcru.id_user='{$_user['user_id']}' AND session_rcru.status = 2"; WHERE session_rcru.id_session = session.id AND
session_rcru.course_code = '$_cid' AND
session_rcru.id_user = '{$_user['user_id']}' AND
session_rcru.status = 2";
$result = Database::query($sql); $result = Database::query($sql);
$row = Database::store_result($result); $row = Database::store_result($result);
@ -921,15 +938,12 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
$is_courseCoach = false; $is_courseCoach = false;
$is_sessionAdmin = true; $is_sessionAdmin = true;
} else { } else {
// Check if the current user is the course coach // Check if the current user is the course coach
$sql = "SELECT 1 $sql = "SELECT 1 FROM ".$tbl_session_course_user."
FROM ".$tbl_session_course_user." WHERE course_code='$_cid' AND
WHERE course_code='$_cid' id_user = '".$_user['user_id']."' AND
AND id_user = '".$_user['user_id']."' id_session = '".$session_id."' AND
AND id_session = '".api_get_session_id()."' status = 2";
AND status = 2";
$result = Database::query($sql); $result = Database::query($sql);
if ($row = Database::fetch_array($result)) { if ($row = Database::fetch_array($result)) {
$_courseUser['role'] = 'Professor'; $_courseUser['role'] = 'Professor';
@ -945,15 +959,16 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { // ses
} }
api_session_register('_courseUser'); api_session_register('_courseUser');
} else { } else {
if (api_get_session_id() != 0) { if ($session_id != 0) {
// Check if the user is a student is this session // Check if the user is a student is this session
$sql = "SELECT * FROM ".$tbl_session_course_user." $sql = "SELECT * FROM ".$tbl_session_course_user."
WHERE id_user = '".$_user['user_id']."' WHERE id_user = '".$_user['user_id']."' AND
AND id_session = '".api_get_session_id()."' id_session = '".$session_id."' AND
AND course_code = '$cidReq' AND status NOT IN(2)"; course_code = '$cidReq' AND status NOT IN(2)";
$result = Database::query($sql); $result = Database::query($sql);
if (Database::num_rows($result) > 0) { // this user have a recorded state for this course if (Database::num_rows($result) > 0) { // this user have a recorded state for this course
while($row = Database::fetch_array($result)){ while($row = Database::fetch_array($result)) {
$is_courseMember = true; $is_courseMember = true;
$is_courseTutor = false; $is_courseTutor = false;
$is_courseAdmin = false; $is_courseAdmin = false;

@ -157,6 +157,8 @@ CREATE TABLE course (
subscribe tinyint NOT NULL default '1', subscribe tinyint NOT NULL default '1',
unsubscribe tinyint NOT NULL default '1', unsubscribe tinyint NOT NULL default '1',
registration_code varchar(255) NOT NULL default '', registration_code varchar(255) NOT NULL default '',
legal TEXT NOT NULL,
activate_legal INT NOT NULL DEFAULT 0,
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE KEY code (code) UNIQUE KEY code (code)
); );
@ -330,6 +332,7 @@ CREATE TABLE course_rel_user (
sort int default NULL, sort int default NULL,
user_course_cat int default '0', user_course_cat int default '0',
relation_type int default 0, relation_type int default 0,
legal_agreement INTEGER DEFAULT 0,
PRIMARY KEY (course_code,user_id,relation_type) PRIMARY KEY (course_code,user_id,relation_type)
); );
ALTER TABLE course_rel_user ADD INDEX (user_id); ALTER TABLE course_rel_user ADD INDEX (user_id);
@ -494,6 +497,7 @@ CREATE TABLE session_rel_course_rel_user (
id_user int unsigned NOT NULL default '0', id_user int unsigned NOT NULL default '0',
visibility int NOT NULL default 1, visibility int NOT NULL default 1,
status int NOT NULL default 0, status int NOT NULL default 0,
legal_agreement INTEGER DEFAULT 0,
PRIMARY KEY (id_session,course_code,id_user), PRIMARY KEY (id_session,course_code,id_user),
KEY id_user (id_user), KEY id_user (id_user),
KEY course_code (course_code) KEY course_code (course_code)

@ -105,6 +105,10 @@ INSERT INTO settings_options (variable, value, display_text) VALUES ('grading_mo
INSERT INTO settings_options (variable, value, display_text) VALUES ('grading_model', '1*X+1*X+1*X+1*X/4', 'Model 3'); INSERT INTO settings_options (variable, value, display_text) VALUES ('grading_model', '1*X+1*X+1*X+1*X/4', 'Model 3');
ALTER TABLE course_rel_user ADD COLUMN legal_agreement INTEGER DEFAULT 0;
ALTER TABLE session_rel_course_rel_user ADD COLUMN legal_agreement INTEGER DEFAULT 0;
ALTER TABLE course ADD COLUMN legal TEXT NOT NULL;
ALTER TABLE course ADD COLUMN activate_legal INT NOT NULL DEFAULT 0;
-- xxSTATSxx -- xxSTATSxx
ALTER TABLE track_e_exercices ADD COLUMN questions_to_check TEXT NOT NULL DEFAULT ''; ALTER TABLE track_e_exercices ADD COLUMN questions_to_check TEXT NOT NULL DEFAULT '';

Loading…
Cancel
Save