From df9fd6b8f30d9b67fc2c5a1a8822a0e711624fba Mon Sep 17 00:00:00 2001 From: Elke Kreim <elke.kreim@hs-hannover.de> Date: Thu, 6 Feb 2025 18:36:33 +0100 Subject: [PATCH] Add admin settings for role choice --- classes/form/evaluserexportform.php | 7 +++++-- lang/de/local_hshexport.php | 2 ++ lang/en/local_hshexport.php | 2 ++ settings.php | 14 ++++++++++++++ version.php | 2 +- 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/classes/form/evaluserexportform.php b/classes/form/evaluserexportform.php index 668918e..ffe4d00 100644 --- a/classes/form/evaluserexportform.php +++ b/classes/form/evaluserexportform.php @@ -58,12 +58,15 @@ class evaluserexportform extends moodleform { $mform->addHelpButton('coursecode', 'coursecode', 'local_hshexport'); $mform->setDefault('coursecode', null); + $selectableroles = explode(',', get_config('local_hshexport', 'selectableroles')); $viewableroles = get_roles_used_in_context($coursecontext, false); $roles = role_fix_names($viewableroles, $coursecontext, ROLENAME_ALIAS); $rolescheckboxes = []; foreach ($roles as $role) { - $rolescheckboxes[] =& $mform->createElement('advcheckbox', 'role_'.$role->id, - $role->localname, null, ['group' => 1], [null, $role->id]); + if (in_array($role->id, $selectableroles)){ + $rolescheckboxes[] =& $mform->createElement('advcheckbox', 'role_' . $role->id, + $role->localname, null, ['group' => 1], [null, $role->id]); + }; } $mform->addGroup($rolescheckboxes, 'roles', get_string('select_roles', 'local_hshexport'), ); diff --git a/lang/de/local_hshexport.php b/lang/de/local_hshexport.php index 464ea5a..4ab1d64 100644 --- a/lang/de/local_hshexport.php +++ b/lang/de/local_hshexport.php @@ -38,5 +38,7 @@ $string['navigation'] = 'Platzierung des Links'; $string['navigation_desc'] = 'Der Ort, an dem der Link für das Formular zum Export von Nutzern zur Evaluation innerhalb eines Kurses hinzugefügt wird.'; $string['noselectedroles'] = 'Mindestens eine Rolle muss ausgewählt werden.'; $string['pluginname'] = 'HSH Nutzer Export für Evaluation'; +$string['selectableroles'] = 'Auswählbare Rollen'; +$string['selectableroles_desc'] = 'Rollen, die im Formular für den Nutzerexport zur Auswahl stehen können.'; $string['select_roles'] = 'Rollen'; $string['select_roles_help'] = 'Nutzer mit dieser Rolle bzw. diesen Rollen exportieren.'; diff --git a/lang/en/local_hshexport.php b/lang/en/local_hshexport.php index ddbfd13..fffe546 100644 --- a/lang/en/local_hshexport.php +++ b/lang/en/local_hshexport.php @@ -38,5 +38,7 @@ $string['navigation'] = 'Navigation node placement'; $string['navigation_desc'] = 'The location where the navigation node for evaluation user export form will be added within a course.'; $string['noselectedroles'] = 'At least one role has to be selected.'; $string['pluginname'] = 'HSH User export'; +$string['selectableroles'] = 'Selectable roles'; +$string['selectableroles_desc'] = 'Roles that can be selected in the user export form.'; $string['select_roles'] = 'Roles'; $string['select_roles_help'] = 'Export users with this role or these roles.'; diff --git a/settings.php b/settings.php index 7e49f1c..8a6b0a4 100644 --- a/settings.php +++ b/settings.php @@ -48,5 +48,19 @@ if ($hassiteconfig) { unset($navigationoptions); } + // Get roles as choicelist for selectbutton + $roles = role_fix_names(get_all_roles()); + $roleslist = []; + foreach ($roles as $role) { + $roleslist[$role->id] = $role->shortname; + } + + $settings -> add(new admin_setting_pickroles( + 'local_hshexport/selectableroles', + get_string('selectableroles', 'local_hshexport'), + get_string('selectableroles_desc', 'local_hshexport'), + ['student'], + )); + $ADMIN->add('localplugins', $settings); } diff --git a/version.php b/version.php index d4a74de..b731895 100644 --- a/version.php +++ b/version.php @@ -26,6 +26,6 @@ defined('MOODLE_INTERNAL') || die(); $plugin->component = 'local_hshexport'; $plugin->release = 'v0.1-beta1'; -$plugin->version = 2024110500; +$plugin->version = 2024110501; $plugin->requires = 2022112800; $plugin->maturity = MATURITY_BETA; -- GitLab