Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update for Moodle 4.4 and Codestyle #25

Merged
merged 1 commit into from
Apr 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 22 additions & 63 deletions .github/workflows/moodle-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ jobs:
strategy:
matrix:
php: ['8.2']
moodle-branch: ['MOODLE_403_STABLE']
moodle-branch: ['MOODLE_404_STABLE']
database: ['pgsql']

steps:
- name: Start PostgreSQL
run: docker run -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:14

- name: Check out repository code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: plugin

Expand All @@ -28,29 +28,9 @@ jobs:
ini-values: max_input_vars=5000
coverage: none

- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

- name: Composer cache
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-

- name: npm cache
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-

- name: Initialise moodle-plugin-ci
run: |
composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3
composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^4
echo $(cd ci/bin; pwd) >> $GITHUB_PATH
echo $(cd ci/vendor/bin; pwd) >> $GITHUB_PATH
sudo locale-gen en_AU.UTF-8
Expand All @@ -67,10 +47,6 @@ jobs:
if: ${{ always() }}
run: moodle-plugin-ci phplint

- name: PHP Copy/Paste Detector
if: ${{ always() }}
run: moodle-plugin-ci phpcpd

- name: PHP Mess Detector
if: ${{ always() }}
run: moodle-plugin-ci phpmd
Expand All @@ -82,7 +58,6 @@ jobs:
- name: Moodle PHPDoc Checker
if: ${{ always() }}
run: moodle-plugin-ci phpdoc
continue-on-error: true

- name: Validating
if: ${{ always() }}
Expand All @@ -108,30 +83,20 @@ jobs:
fail-fast: false
matrix:
php: ['8.0', '8.1', '8.2']
moodle-branch: ['MOODLE_401_STABLE', 'MOODLE_402_STABLE', 'MOODLE_403_STABLE']
moodle-branch: ['MOODLE_401_STABLE', 'MOODLE_402_STABLE', 'MOODLE_403_STABLE', 'MOODLE_404_STABLE']
database: ['mariadb', 'pgsql']
exclude:
- php: '8.0'
moodle-branch: 'MOODLE_404_STABLE'
- php: '8.2'
moodle-branch: 'MOODLE_401_STABLE'
include:
- php: '7.4'
moodle-branch: 'MOODLE_39_STABLE'
database: 'mariadb'
- php: '7.4'
moodle-branch: 'MOODLE_39_STABLE'
database: 'pgsql'
- php: '8.0'
moodle-branch: 'MOODLE_311_STABLE'
database: 'mariadb'
- php: '8.0'
moodle-branch: 'MOODLE_311_STABLE'
moodle-branch: 'MOODLE_401_STABLE'
database: 'pgsql'
- php: '8.0'
moodle-branch: 'MOODLE_400_STABLE'
- php: '7.4'
moodle-branch: 'MOODLE_401_STABLE'
database: 'mariadb'
- php: '8.0'
moodle-branch: 'MOODLE_400_STABLE'
database: 'pgsql'

steps:
- name: Start MariaDB
Expand All @@ -143,7 +108,7 @@ jobs:
run: docker run -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_HOST_AUTH_METHOD=trust -d postgres:14

- name: Check out repository code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: plugin

Expand All @@ -154,24 +119,6 @@ jobs:
ini-values: max_input_vars=5000
coverage: none

- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Composer cache
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: npm cache
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-

- name: Initialise moodle-plugin-ci
run: |
composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3
Expand All @@ -194,3 +141,15 @@ jobs:
- name: Behat features
if: ${{ always() }}
run: moodle-plugin-ci behat --profile chrome --auto-rerun 0

# This step allows to upload Behat faildump (screenshots) as workflow artifact,
# so it can be downloaded and inspected. You don't need this step if you
# are not running Behat test. Artifact will be retained for 7 days.
- name: Upload Behat Faildump
if: ${{ failure() && steps.behat.outcome == 'failure' }}
uses: actions/upload-artifact@v4
with:
name: Behat Faildump (${{ join(matrix.*, ', ') }})
path: ${{ github.workspace }}/moodledata/behat_dump
retention-days: 7
if-no-files-found: ignore
9 changes: 6 additions & 3 deletions backup/moodle2/backup_groupmembers_stepslib.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,20 @@
*/
class backup_groupmembers_activity_structure_step extends backup_activity_structure_step {

/**
* Define structure for backup step.
*/
protected function define_structure() {

// To know if we are including userinfo.
$userinfo = $this->get_setting_value('userinfo');

// Define each element separated.
$groupmembers = new backup_nested_element('groupmembers', array('id'),
array('name', 'intro', 'introformat', 'listgroupingid', 'showgroups', 'showemail', 'timemodified'));
$groupmembers = new backup_nested_element('groupmembers', ['id'],
['name', 'intro', 'introformat', 'listgroupingid', 'showgroups', 'showemail', 'timemodified']);

// Define sources.
$groupmembers->set_source_table('groupmembers', array('id' => backup::VAR_ACTIVITYID));
$groupmembers->set_source_table('groupmembers', ['id' => backup::VAR_ACTIVITYID]);

// Define id annotations.

Expand Down
21 changes: 12 additions & 9 deletions backup/moodle2/restore_groupmembers_activity_task.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Groupmembers restore task that provides all the settings and steps to perform one
* complete restore of the activity
*
* @package mod_groupmembers
* @copyright 2019 Justus Dieckmann WWU
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
Expand Down Expand Up @@ -49,9 +52,9 @@ protected function define_my_steps() {
* processed by the link decoder
*/
public static function define_decode_contents() {
$contents = array();
$contents = [];

$contents[] = new restore_decode_content('groupmembers', array('intro'), 'groupmembers');
$contents[] = new restore_decode_content('groupmembers', ['intro'], 'groupmembers');

return $contents;
}
Expand All @@ -61,7 +64,7 @@ public static function define_decode_contents() {
* to the activity to be executed by the link decoder
*/
public static function define_decode_rules() {
$rules = array();
$rules = [];

$rules[] = new restore_decode_rule('GROUPMEMBERVIEWBYID', '/mod/groupmember/view.php?id=$1', 'course_module');
$rules[] = new restore_decode_rule('GROUPMEMBERINDEX', '/mod/groupmember/index.php?id=$1', 'course');
Expand All @@ -72,12 +75,12 @@ public static function define_decode_rules() {

/**
* Define the restore log rules that will be applied
* by the {@link restore_logs_processor} when restoring
* by the {@see restore_logs_processor} when restoring
* groupmembers logs. It must return one array
* of {@link restore_log_rule} objects
* of {@see restore_log_rule} objects
*/
public static function define_restore_log_rules() {
$rules = array();
$rules = [];

$rules[] = new restore_log_rule('groupmembers', 'view', 'view.php?id={course_module}', '{groupmembers}');

Expand All @@ -86,16 +89,16 @@ public static function define_restore_log_rules() {

/**
* Define the restore log rules that will be applied
* by the {@link restore_logs_processor} when restoring
* by the {@see restore_logs_processor} when restoring
* course logs. It must return one array
* of {@link restore_log_rule} objects
* of {@see restore_log_rule} objects
*
* Note this rules are applied when restoring course logs
* by the restore final task, but are defined here at
* activity level. All them are rules not linked to any module instance (cmid = 0)
*/
public static function define_restore_log_rules_for_course() {
$rules = array();
$rules = [];

$rules[] = new restore_log_rule('groupmembers', 'view all', 'index.php?id={course}', null);

Expand Down
17 changes: 12 additions & 5 deletions backup/moodle2/restore_groupmembers_stepslib.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,29 +15,33 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Structure step to restore one groupmembers activity
* @package mod_groupmembers
* @copyright 2019 Justus Dieckmann WWU
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

/**
* Define all the restore steps that will be used by the restore_groupmembers_activity_task
*/

/**
* Structure step to restore one groupmembers activity
*/
class restore_groupmembers_activity_structure_step extends restore_activity_structure_step {

/**
* Define structure of restore step.
*/
protected function define_structure() {

$paths = array();
$paths = [];
$paths[] = new restore_path_element('groupmembers', '/activity/groupmembers');

// Return the paths wrapped into standard activity structure.
return $this->prepare_activity_structure($paths);
}

/**
* Restore groupmember activity.
* @param object $data groupmember activity data to be restored.
*/
protected function process_groupmembers($data) {
global $DB;

Expand All @@ -50,6 +54,9 @@ protected function process_groupmembers($data) {
$this->apply_activity_instance($newitemid);
}

/**
* Restore related files after execute.
*/
protected function after_execute() {
// Add groupmembers related files, no need to match by itemname (just internally handled context).
$this->add_related_files('mod_groupmembers', 'intro', null);
Expand Down
2 changes: 1 addition & 1 deletion classes/event/course_module_viewed.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@ protected function init() {
* @return array Mapping according to the definition above
*/
public static function get_objectid_mapping() {
return array('db' => 'groupmembers', 'restore' => 'groupmembers');
return ['db' => 'groupmembers', 'restore' => 'groupmembers'];
}
}
8 changes: 4 additions & 4 deletions classes/groups.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class groups {
* 'group' => \stdClass, 'members' => array[\stdClass], 'ismember' => bool ]
*/
public static function get_groups_and_members($courseid, $groupingid, $userid, $onlyown) {
$groupsandmembers = array();
$groupsandmembers = [];

// Fetch relevant groups.
if ($onlyown) {
Expand All @@ -66,11 +66,11 @@ public static function get_groups_and_members($courseid, $groupingid, $userid, $

// Get members of group.
$members = groups_get_members($group->id);
$groupsandmembers[] = array(
$groupsandmembers[] = [
'group' => $group,
'members' => $members,
'ismember' => $ismember
);
'ismember' => $ismember,
];
}

return $groupsandmembers;
Expand Down
26 changes: 13 additions & 13 deletions db/access.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,30 +25,30 @@

defined('MOODLE_INTERNAL') || die();

$capabilities = array(
$capabilities = [

'mod/groupmembers:view' => array(
'mod/groupmembers:view' => [
'captype' => 'read',
'contextlevel' => CONTEXT_MODULE,
'archetypes' => array(
'archetypes' => [
'guest' => CAP_ALLOW,
'student' => CAP_ALLOW,
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
)
),
'manager' => CAP_ALLOW,
],
],

'mod/groupmembers:addinstance' => array(
'mod/groupmembers:addinstance' => [
'riskbitmask' => RISK_XSS,
'captype' => 'write',
'contextlevel' => CONTEXT_COURSE,
'archetypes' => array(
'archetypes' => [
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),
'clonepermissionsfrom' => 'moodle/course:manageactivities'
),
);
'manager' => CAP_ALLOW,
],
'clonepermissionsfrom' => 'moodle/course:manageactivities',
],
];


2 changes: 1 addition & 1 deletion db/events.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

defined('MOODLE_INTERNAL') || die();

$handlers = array();
$handlers = [];

/* List of events thrown from groupmembers module

Expand Down
2 changes: 0 additions & 2 deletions db/upgrade.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die();

/**
* Upgrade script (no-op)
* @param int $oldversion Version number before update
Expand Down
Loading