diff --git a/main/admin/course_add.php b/main/admin/course_add.php index aba9e53c1a..7324c5ca45 100644 --- a/main/admin/course_add.php +++ b/main/admin/course_add.php @@ -17,7 +17,6 @@ $this_section = SECTION_PLATFORM_ADMIN; api_protect_admin_script(); require_once api_get_path(LIBRARY_PATH).'fileManage.lib.php'; -require_once api_get_path(LIBRARY_PATH).'grade_model.lib.php'; $tool_name = get_lang('AddCourse'); $interbreadcrumb[] = array('url' => 'index.php', 'name' => get_lang('PlatformAdmin')); diff --git a/main/admin/grade_models.php b/main/admin/grade_models.php index 74f417e8ac..793ed8298b 100644 --- a/main/admin/grade_models.php +++ b/main/admin/grade_models.php @@ -16,6 +16,10 @@ $this_section = SECTION_PLATFORM_ADMIN; api_protect_admin_script(); +if (api_get_setting('gradebook_enable_grade_model') != 'true') { + api_not_allowed(); +} + //Add the JS needed to use the jqgrid $htmlHeadXtra[] = api_get_jqgrid_js(); diff --git a/main/admin/index.php b/main/admin/index.php index ec9eec6020..c902775cd8 100644 --- a/main/admin/index.php +++ b/main/admin/index.php @@ -120,7 +120,9 @@ if (api_is_platform_admin()) { $items[] = array('url'=>'subscribe_user2course.php', 'label' => get_lang('AddUsersToACourse')); $items[] = array('url'=>'course_user_import.php', 'label' => get_lang('ImportUsersToACourse')); - $items[] = array('url'=>'grade_models.php', 'label' => get_lang('GradeModel')); + if (api_get_setting('gradebook_enable_grade_model') == 'true') { + $items[] = array('url'=>'grade_models.php', 'label' => get_lang('GradeModel')); + } if (isset($extAuthSource) && isset($extAuthSource['ldap']) && count($extAuthSource['ldap']) > 0) { $items[] = array('url'=>'ldap_import_students.php', 'label' => get_lang('ImportLDAPUsersIntoCourse')); diff --git a/main/gradebook/index.php b/main/gradebook/index.php index 85dfd6eb1e..9f119b1568 100644 --- a/main/gradebook/index.php +++ b/main/gradebook/index.php @@ -854,29 +854,23 @@ if (isset($first_time) && $first_time==1 && api_is_allowed_to_edit(null,true)) { if (!empty($cats)) { - if (api_is_platform_admin() || (api_is_allowed_to_edit(null, true) && api_get_setting('teachers_can_change_grade_model_settings') == 'true')) { + if ( (api_get_setting('gradebook_enable_grade_model') == 'true') && (api_is_platform_admin() || (api_is_allowed_to_edit(null, true) && api_get_setting('teachers_can_change_grade_model_settings') == 'true'))) { + //Getting grade models $obj = new GradeModel(); - $grade_models = $obj->get_all(); - $options = array('-1' => get_lang('None')); - if (!empty($grade_models)) { - foreach ($grade_models as $item) { - $options[$item['id']] = $item['name']; - } - } - + $grade_models = $obj->get_all(); $grade_model_id = $cats[0]->get_grade_model_id(); //No children if (count($cats) == 1 && empty($grade_model_id)) { if (!empty($grade_models)) { - $form = new FormValidator('grade_model_settings'); - $form->addElement('select', 'grade_model', get_lang('SelectGradeModel'), $options); + $form = new FormValidator('grade_model_settings'); + $obj->fill_grade_model_select_in_form(); $form->addElement('style_submit_button', 'submit', get_lang('Save'), 'class="save"'); if ($form->validate()) { - $value = $form->exportValue('grade_model'); + $value = $form->exportValue('grade_model_id'); $gradebook = new Gradebook(); $gradebook->update(array('id'=> $cats[0]->get_id(), 'grade_model_id' => $value), true); @@ -899,7 +893,6 @@ if (isset($first_time) && $first_time==1 && api_is_allowed_to_edit(null,true)) { $gradebook->save($params); } - //Reloading cats $cats = Category :: load(null, null, $course_code, null, null, $session_id, false); //already init } else { @@ -909,7 +902,7 @@ if (isset($first_time) && $first_time==1 && api_is_allowed_to_edit(null,true)) { } } - $i = 0; + $i = 0; foreach ($cats as $cat) { $allcat = $cat->get_subcategories($stud_id, $course_code, $session_id); @@ -923,9 +916,9 @@ if (isset($first_time) && $first_time==1 && api_is_allowed_to_edit(null,true)) { //Create gradebook/add gradebook links DisplayGradebook::display_header_gradebook($cat, 0, $cat->get_id(), $is_course_admin, $is_platform_admin, $simple_search_form, false, true); - if (api_is_allowed_to_edit(null,true)) { + if (api_is_allowed_to_edit(null,true) && api_get_setting('gradebook_enable_grade_model') == 'true') { //Showing the grading system - if (!empty($grade_models[$grade_model_id])) { + if (!empty($grade_models[$grade_model_id])) { Display::display_normal_message(get_lang('GradeModel').': '.$grade_models[$grade_model_id]['name']); } } diff --git a/main/gradebook/lib/fe/catform.class.php b/main/gradebook/lib/fe/catform.class.php index 89f75954e2..b578622c8e 100644 --- a/main/gradebook/lib/fe/catform.class.php +++ b/main/gradebook/lib/fe/catform.class.php @@ -197,12 +197,16 @@ class CatForm extends FormValidator { //Getting grade models $obj = new GradeModel(); + $obj->fill_grade_model_select_in_form($this); + /* $grade_models = $obj->get_all(); $options = array(-1 => get_lang('None')); foreach ($grade_models as $item) { $options[$item['id']] = $item['name']; } $this->addElement('select', 'grade_model_id', array(get_lang('GradeModel'), get_lang('OnlyActiveWhenThereAreAnyComponents')), $options); + * + */ //Freeze or not $course_code = api_get_course_id(); diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 774dab7348..eab67c2142 100644 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -151,11 +151,13 @@ class CourseManager { fill_db_course($course_id, $course_info['directory'], $course_info['course_language'], $pictures_array, $params['exemplary_content']); //self::update_course_ranking($course_info['real_id'], 0, null); - //Create gradebook_category for the new course and add a gradebook model for the course - if (isset($params['gradebook_model_id']) && !empty($params['gradebook_model_id']) && $params['gradebook_model_id'] != '-1') { - require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php'; - create_default_course_gradebook($course_info['code'], $params['gradebook_model_id']); - } + if (api_get_setting('gradebook_enable_grade_model') == 'true') { + //Create gradebook_category for the new course and add a gradebook model for the course + if (isset($params['gradebook_model_id']) && !empty($params['gradebook_model_id']) && $params['gradebook_model_id'] != '-1') { + require_once api_get_path(SYS_CODE_PATH).'gradebook/lib/gradebook_functions.inc.php'; + create_default_course_gradebook($course_info['code'], $params['gradebook_model_id']); + } + } return $course_info; } } diff --git a/main/inc/lib/grade_model.lib.php b/main/inc/lib/grade_model.lib.php index 6ef58e327a..2cdbbdbfa3 100644 --- a/main/inc/lib/grade_model.lib.php +++ b/main/inc/lib/grade_model.lib.php @@ -218,6 +218,10 @@ class GradeModel extends Model { //event_system(LOG_CAREER_DELETE, LOG_CAREER_ID, $id, api_get_utc_datetime(), api_get_user_id()); } public function fill_grade_model_select_in_form($form) { + if (api_get_setting('gradebook_enable_grade_model') == 'false') { + return false; + } + if (api_get_setting('teachers_can_change_grade_model_settings') == 'true' || api_is_platform_admin()) { $grade_models = $this->get_all(); $grade_model_options = array('-1' => get_lang('None')); @@ -227,6 +231,11 @@ class GradeModel extends Model { } } $form->addElement('select', 'gradebook_model_id', get_lang('GradeModel'), $grade_model_options); + $default = api_get_setting('gradebook_default_grade_model_id'); + + if (!empty($default) && $default != '-1') { + $form->setDefaults(array('gradebook_model_id' => $default)); + } } } } diff --git a/main/install/db_main.sql b/main/install/db_main.sql index ae06bb3064..292de62366 100644 --- a/main/install/db_main.sql +++ b/main/install/db_main.sql @@ -859,8 +859,8 @@ VALUES ('shibboleth_description', NULL, 'radio', 'Shibboleth', 'false', 'ShibbolethMainActivateTitle', 'ShibbolethMainActivateComment', NULL, NULL, 0), ('facebook_description', NULL, 'radio', 'Facebook', 'false', 'FacebookMainActivateTitle', 'FacebookMainActivateComment', NULL, NULL, 0), ('gradebook_locking_enabled', NULL, 'radio', 'Gradebook', 'false', 'GradebookEnableLockingTitle', 'GradebookEnableLockingComment', NULL, NULL, 0), -('gradebook_default_grade_model_id', NULL, 'select', 'Gradebook', '', 'GradebookDefaultGradeModelTitle', 'GradebookDefaultGradeModelComment', NULL, NULL, 1), ('gradebook_enable_grade_model', NULL, 'radio', 'Gradebook', 'false', 'GradebookEnableGradeModelTitle', 'GradebookEnableGradeModelComment', NULL, NULL, 1), +('gradebook_default_grade_model_id', NULL, 'select', 'Gradebook', '', 'GradebookDefaultGradeModelTitle', 'GradebookDefaultGradeModelComment', NULL, NULL, 1), ('chamilo_database_version',NULL,'textfield',NULL, '1.9.0.17976','DatabaseVersion','', NULL, NULL, 0); /* diff --git a/main/install/migrate-db-1.8.8-1.9.0-pre.sql b/main/install/migrate-db-1.8.8-1.9.0-pre.sql index cf82afa0cc..2a083d2163 100755 --- a/main/install/migrate-db-1.8.8-1.9.0-pre.sql +++ b/main/install/migrate-db-1.8.8-1.9.0-pre.sql @@ -156,13 +156,13 @@ INSERT INTO settings_current (variable, subkey, type, category, selected_value, INSERT INTO settings_options (variable, value, display_text) VALUES ('enable_wami_record', 'true', 'Yes'); INSERT INTO settings_options (variable, value, display_text) VALUES ('enable_wami_record', 'false', 'No'); -INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('gradebook_default_weight', NULL, 'textfield', 'Gradebook', '100', 'GradebookDefaultWeightTitle', 'GradebookDefaultWeightComment', NULL, NULL, 1); -INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('gradebook_default_grade_model_id', NULL, 'select', 'Gradebook', '', 'GradebookDefaultGradeModelTitle', 'GradebookDefaultGradeModelComment', NULL, NULL, 1); - INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('gradebook_enable_grade_model', NULL, 'radio', 'Gradebook', 'false', 'GradebookEnableGradeModelTitle', 'GradebookEnableGradeModelComment', NULL, NULL, 1); INSERT INTO settings_options (variable, value, display_text) VALUES ('gradebook_enable_grade_model', 'true', 'Yes'); INSERT INTO settings_options (variable, value, display_text) VALUES ('gradebook_enable_grade_model', 'false', 'No'); +INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('gradebook_default_weight', NULL, 'textfield', 'Gradebook', '100', 'GradebookDefaultWeightTitle', 'GradebookDefaultWeightComment', NULL, NULL, 1); +INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('gradebook_default_grade_model_id', NULL, 'select', 'Gradebook', '', 'GradebookDefaultGradeModelTitle', 'GradebookDefaultGradeModelComment', NULL, NULL, 1); + INSERT INTO language (original_name, english_name, isocode, dokeos_folder, available) VALUES ('বাংলা','bengali','bn','bengali',0), ('الصومالية','somali','so','somali',0); -- Course ranking