2023-05-17 21:19:14 +02:00
|
|
|
<?php
|
2023-08-24 23:02:41 +02:00
|
|
|
// This file is part of Moodle - http://moodle.org/.
|
2023-05-17 21:19:14 +02:00
|
|
|
//
|
2023-08-24 23:02:41 +02:00
|
|
|
// Moodle is free software: you can redistribute it and/or modify.
|
|
|
|
// it under the terms of the GNU General Public License as published by.
|
|
|
|
// the Free Software Foundation, either version 3 of the License, or.
|
2023-05-17 21:19:14 +02:00
|
|
|
// (at your option) any later version.
|
|
|
|
//
|
2023-08-24 23:02:41 +02:00
|
|
|
// Moodle is distributed in the hope that it will be useful,.
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of.
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the.
|
2023-05-17 21:19:14 +02:00
|
|
|
// GNU General Public License for more details.
|
|
|
|
//
|
2023-08-24 23:02:41 +02:00
|
|
|
// You should have received a copy of the GNU General Public License.
|
2023-05-17 21:19:14 +02:00
|
|
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
/**
|
2023-08-27 15:12:54 +02:00
|
|
|
* Local plugin Settings
|
2023-05-17 21:19:14 +02:00
|
|
|
*
|
2023-08-27 15:12:54 +02:00
|
|
|
* @package local_treestudyplan
|
|
|
|
* @copyright 2023 P.M. Kuipers
|
|
|
|
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
2023-05-17 21:19:14 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
defined('MOODLE_INTERNAL') || die();
|
|
|
|
|
|
|
|
use local_treestudyplan\aggregator;
|
|
|
|
|
|
|
|
if ($hassiteconfig) {
|
|
|
|
|
2023-08-25 09:44:34 +02:00
|
|
|
/**************************************
|
|
|
|
*
|
|
|
|
* Main studyplan settings
|
|
|
|
*
|
|
|
|
*************************************/
|
|
|
|
|
|
|
|
// Create admin settings category.
|
|
|
|
$ADMIN->add('courses', new admin_category('local_treestudyplan',
|
|
|
|
get_string('pluginname', 'local_treestudyplan', null, true)));
|
|
|
|
|
|
|
|
// Settings page: Root nodes.
|
|
|
|
$page = new admin_settingpage('local_treestudyplan_settings',
|
|
|
|
get_string('settingspage', 'local_treestudyplan', null, true));
|
|
|
|
|
2023-09-08 12:47:29 +02:00
|
|
|
// NAVIGATION.
|
2023-09-04 22:37:58 +02:00
|
|
|
$page->add(new admin_setting_heading('local_treestudyplan/navigation_heading',
|
|
|
|
get_string('setting_navigation_heading', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_navigation_heading', 'local_treestudyplan')
|
|
|
|
));
|
2023-09-08 12:47:29 +02:00
|
|
|
|
2023-09-04 22:37:58 +02:00
|
|
|
$page->add(new admin_setting_configcheckbox('local_treestudyplan/primary_nav_autofill',
|
|
|
|
get_string('setting_primary_nav_autofill', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_primary_nav_autofill', 'local_treestudyplan'),
|
|
|
|
true,
|
|
|
|
));
|
|
|
|
|
2023-10-23 21:54:09 +02:00
|
|
|
// Default image for study plans
|
|
|
|
$page->add(new admin_setting_configstoredfile('local_treestudyplan/defaulticon',
|
|
|
|
get_string('setting_defaulticon', 'local_treestudyplan'),
|
2023-10-23 23:19:14 +02:00
|
|
|
get_string('settingdesc_defaulticon', 'local_treestudyplan'),
|
2023-10-23 21:54:09 +02:00
|
|
|
'defaulticon', 0,
|
|
|
|
[
|
|
|
|
'maxfiles' => 1,
|
|
|
|
'accepted_types' => ['.jpg', '.png']]
|
|
|
|
));
|
|
|
|
|
2023-09-04 22:37:58 +02:00
|
|
|
// OUTCOME AGGREGATION SETTINGS.
|
2023-08-25 09:44:34 +02:00
|
|
|
$page->add(new admin_setting_heading('local_treestudyplan/aggregation_heading',
|
|
|
|
get_string('setting_aggregation_heading', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_aggregation_heading', 'local_treestudyplan')
|
|
|
|
));
|
|
|
|
|
|
|
|
$aggregators = [];
|
|
|
|
foreach (aggregator::list() as $a) {
|
|
|
|
$aggregators[$a] = get_string("{$a}_aggregator_title", 'local_treestudyplan', null, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
$page->add(new admin_setting_configselect('local_treestudyplan/aggregation_mode',
|
|
|
|
get_string('setting_aggregation_mode', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_aggregation_mode', 'local_treestudyplan'),
|
|
|
|
"core",
|
|
|
|
$aggregators
|
|
|
|
));
|
|
|
|
|
|
|
|
// DISPLAY COURSE INFO SETTINGS.
|
|
|
|
$page->add(new admin_setting_heading('local_treestudyplan/display_heading',
|
|
|
|
get_string('setting_display_heading', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_display_heading', 'local_treestudyplan')
|
|
|
|
));
|
|
|
|
|
|
|
|
$displayfields = ["shortname" => get_string("shortname"), "idnumber" => get_string("idnumber")];
|
|
|
|
$handler = \core_customfield\handler::get_handler('core_course', 'course');
|
|
|
|
|
|
|
|
foreach ($handler->get_categories_with_fields() as $cat) {
|
|
|
|
$catname = $cat->get_formatted_name();
|
|
|
|
foreach ($cat->get_fields() as $field) {
|
|
|
|
$fieldname = $field->get_formatted_name();
|
|
|
|
$fieldid = $field->get("shortname");
|
|
|
|
$displayfields["customfield_".$fieldid] = $catname.": ".$fieldname;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$page->add(new admin_setting_configselect('local_treestudyplan/display_field',
|
|
|
|
get_string('setting_display_field', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_display_field', 'local_treestudyplan'),
|
|
|
|
"shortname",
|
|
|
|
$displayfields
|
|
|
|
));
|
|
|
|
|
2023-11-23 07:44:04 +01:00
|
|
|
// BISTATE AGGREGATON DEFAULTS.
|
|
|
|
$page->add(new admin_setting_heading('local_treestudyplan/competency_aggregation_heading',
|
|
|
|
get_string('setting_competency_heading', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_competency_heading', 'local_treestudyplan')
|
|
|
|
));
|
|
|
|
$page->add(new admin_setting_configtext('local_treestudyplan/competency_thresh_completed',
|
|
|
|
get_string('setting_competency_thresh_completed', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_competency_thresh_completed', 'local_treestudyplan'),
|
|
|
|
"66",
|
|
|
|
PARAM_INT
|
|
|
|
));
|
|
|
|
|
|
|
|
$page->add(new admin_setting_configcheckbox('local_treestudyplan/competency_support_failed',
|
|
|
|
get_string('setting_competency_support_failed', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_competency_support_failed', 'local_treestudyplan'),
|
|
|
|
true,
|
|
|
|
));
|
|
|
|
|
2023-08-25 09:44:34 +02:00
|
|
|
// BISTATE AGGREGATON DEFAULTS.
|
|
|
|
$page->add(new admin_setting_heading('local_treestudyplan/bistate_aggregation_heading',
|
|
|
|
get_string('setting_bistate_heading', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_bistate_heading', 'local_treestudyplan')
|
|
|
|
));
|
|
|
|
|
|
|
|
$page->add(new admin_setting_configtext('local_treestudyplan/bistate_thresh_excellent',
|
|
|
|
get_string('setting_bistate_thresh_excellent', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_bistate_thresh_excellent', 'local_treestudyplan'),
|
|
|
|
"100",
|
|
|
|
PARAM_INT
|
|
|
|
));
|
|
|
|
|
|
|
|
$page->add(new admin_setting_configtext('local_treestudyplan/bistate_thresh_good',
|
|
|
|
get_string('setting_bistate_thresh_good', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_bistate_thresh_good', 'local_treestudyplan'),
|
|
|
|
"80",
|
|
|
|
PARAM_INT
|
|
|
|
));
|
|
|
|
|
|
|
|
$page->add(new admin_setting_configtext('local_treestudyplan/bistate_thresh_completed',
|
|
|
|
get_string('setting_bistate_thresh_completed', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_bistate_thresh_completed', 'local_treestudyplan'),
|
|
|
|
"66",
|
|
|
|
PARAM_INT
|
|
|
|
));
|
|
|
|
|
|
|
|
$page->add(new admin_setting_configcheckbox('local_treestudyplan/bistate_support_failed',
|
|
|
|
get_string('setting_bistate_support_failed', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_bistate_support_failed', 'local_treestudyplan'),
|
2023-08-25 12:16:51 +02:00
|
|
|
true,
|
2023-08-25 09:44:34 +02:00
|
|
|
));
|
|
|
|
|
|
|
|
$page->add(new admin_setting_configcheckbox('local_treestudyplan/bistate_accept_pending_submitted',
|
|
|
|
get_string('setting_bistate_accept_pending_submitted', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_bistate_accept_pending_submitted', 'local_treestudyplan'),
|
2023-08-25 12:16:51 +02:00
|
|
|
false,
|
2023-08-25 09:44:34 +02:00
|
|
|
));
|
|
|
|
|
|
|
|
// Add settings page to the admin settings category.
|
|
|
|
$ADMIN->add('local_treestudyplan', $page);
|
|
|
|
|
|
|
|
/**************************************
|
|
|
|
*
|
|
|
|
* Manage plans link (systemwide)
|
|
|
|
*
|
|
|
|
*************************************/
|
|
|
|
|
|
|
|
$ADMIN->add('local_treestudyplan', new admin_externalpage(
|
|
|
|
'local_treestudyplan_editplans',
|
|
|
|
get_string('cfg_plans', 'local_treestudyplan', null, true),
|
|
|
|
$CFG->wwwroot . '/local/treestudyplan/edit-plan.php'));
|
|
|
|
|
|
|
|
/**************************************
|
|
|
|
*
|
|
|
|
* Settings page: Cohort sync
|
|
|
|
*
|
|
|
|
*************************************/
|
2023-08-25 10:41:56 +02:00
|
|
|
|
2023-08-25 09:44:34 +02:00
|
|
|
$pagecsync = new admin_settingpage('local_treestudyplan_settings_cohortsync',
|
|
|
|
get_string('settingspage_csync', 'local_treestudyplan', null, true));
|
|
|
|
|
|
|
|
// Description heading.
|
|
|
|
$pagecsync->add(new admin_setting_heading('local_treestudyplan/csync_heading',
|
|
|
|
get_string('setting_csync_heading', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_csync_heading', 'local_treestudyplan')
|
|
|
|
));
|
|
|
|
|
|
|
|
// Enable/disable cohort sync.
|
|
|
|
$pagecsync->add(new admin_setting_configcheckbox('local_treestudyplan/csync_enable',
|
|
|
|
get_string('setting_csync_enable_field', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_csync_enable_field', 'local_treestudyplan'),
|
|
|
|
false
|
|
|
|
));
|
|
|
|
|
|
|
|
// Enable/disable autoremove.
|
|
|
|
$pagecsync->add(new admin_setting_configcheckbox('local_treestudyplan/csync_autoremove',
|
|
|
|
get_string('setting_csync_autoremove_field', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_csync_autoremove_field', 'local_treestudyplan'),
|
|
|
|
true
|
|
|
|
));
|
|
|
|
|
|
|
|
// Enable/disable remembering previously added cohort syncs so they're not automatically deleted.
|
|
|
|
$pagecsync->add(new admin_setting_configcheckbox('local_treestudyplan/csync_remember_manual_csync',
|
|
|
|
get_string('setting_csync_remember_manual_csync_field', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_csync_remember_manual_csync_field', 'local_treestudyplan'),
|
|
|
|
true
|
|
|
|
));
|
|
|
|
|
|
|
|
// Enable/disable group creation.
|
|
|
|
$pagecsync->add(new admin_setting_configcheckbox('local_treestudyplan/csync_creategroup',
|
|
|
|
get_string('setting_csync_creategroup_field', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_csync_creategroup_field', 'local_treestudyplan'),
|
|
|
|
true
|
|
|
|
));
|
|
|
|
|
|
|
|
// Sync users too yes/no?.
|
|
|
|
$pagecsync->add(new admin_setting_configcheckbox('local_treestudyplan/csync_users',
|
|
|
|
get_string('setting_csync_users_field', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_csync_users_field', 'local_treestudyplan'),
|
|
|
|
true
|
|
|
|
));
|
|
|
|
|
|
|
|
// Select csync enrol role.
|
|
|
|
if (!during_initial_install()) {
|
|
|
|
$options = get_default_enrol_roles(context_system::instance());
|
|
|
|
$student = get_archetype_roles('student');
|
|
|
|
$student = reset($student);
|
|
|
|
$pagecsync->add(new admin_setting_configselect('local_treestudyplan/csync_roleid',
|
|
|
|
get_string('setting_csync_role_field', 'local_treestudyplan'),
|
|
|
|
get_string('settingdesc_csync_role_field', 'local_treestudyplan'),
|
|
|
|
$student->id ?? null, $options));
|
|
|
|
}
|
|
|
|
|
|
|
|
// Add settings page2 to the admin settings category.
|
|
|
|
$ADMIN->add('local_treestudyplan', $pagecsync);
|
|
|
|
|
|
|
|
/**************************************
|
|
|
|
*
|
|
|
|
* Grade and scale interpretation
|
|
|
|
*
|
|
|
|
*************************************/
|
|
|
|
$ADMIN->add('local_treestudyplan', new admin_externalpage(
|
|
|
|
'local_treestudyplan_gradeconfig',
|
|
|
|
get_string('cfg_grades', 'local_treestudyplan', null, true),
|
|
|
|
$CFG->wwwroot . '/local/treestudyplan/cfg_grades.php'));
|
|
|
|
|
|
|
|
/**************************************
|
|
|
|
*
|
|
|
|
* Add the help link (Temporary until a better place is found)
|
|
|
|
*
|
|
|
|
**************************************/
|
|
|
|
|
|
|
|
$ADMIN->add('local_treestudyplan', new admin_externalpage(
|
|
|
|
'local_treestudyplan_doc',
|
|
|
|
get_string('cfg_help', 'local_treestudyplan', null, true),
|
|
|
|
$CFG->wwwroot . '/local/treestudyplan/doc.php/index.htm'));
|
2023-07-04 23:38:08 +02:00
|
|
|
|
2023-05-17 21:19:14 +02:00
|
|
|
}
|