Skip to content

Commit

Permalink
Release 2.2.1 (April 2024)
Browse files Browse the repository at this point in the history
Note: There are no changes to the code in this release.

Added
- Github CI Workflows.
- Github security reporting

Updated
- Code updated to latest Moodle coding guidelines.
- Bug reporting form.
- Tested compatible and tested with Moodle 3.9, 3.10, 3.11, 4.0, 4.1, 4.2, 4.3 and 4.4.
- Compatible with Moodle up to v4.4.
- Updated copyright notice for 2024.
  • Loading branch information
michael-milette committed Apr 28, 2024
1 parent 51a2ff2 commit 0db8601
Show file tree
Hide file tree
Showing 32 changed files with 617 additions and 164 deletions.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ body:
id: moodle
attributes:
label: Moodle version
placeholder: e.g. Moodle 4.0.4+ (Build 20220919)
placeholder: e.g. Moodle 4.4.0+ (Build 20240422)
validations:
required: true
- type: checkboxes
Expand Down Expand Up @@ -104,7 +104,7 @@ body:
Client Web Browser: (e.g. Chrome, Edge, Firefox, Safari, Safe Exam Browser, Moodle Mobile App)
Server Operating System: (e.g. Windows, Linux, Mac OS, Other - specify)
Server Webserver: (e.g. Apache, Nginx, IIS, Other - specify)
Server PHP: (e.g. 7.3, 7.4, 8.x, Other - specify)
Server PHP: (e.g. 7.4, 8.0, 8.1, 8.2, 8.3, Other - specify)
- type: checkboxes
attributes:
label: Code of Conduct
Expand Down
223 changes: 223 additions & 0 deletions .github/workflows/moodle-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
# Runs tests and code analysis.
# Based on:
# https://github.com/moodlehq/moodle-plugin-ci/blob/main/gha.dist.yml

# Title of the workflow
name: Moodle Plugin CI

# Run this workflow every time a new commit pushed to your repository or PR created.
on: [push, pull_request]

# Give just enough permissions to fetch code (actions/checkout).
permissions:
contents: read

jobs:
# Set the job key. The key is displayed as the job name when a job name is not provided
test:
# Virtual environment to use.
runs-on: ubuntu-22.04

# DB services you need for testing.
services:
postgres:
image: postgres:13
env:
POSTGRES_USER: 'postgres'
POSTGRES_HOST_AUTH_METHOD: 'trust'
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3

mariadb:
image: mariadb:10.6.7
env:
MYSQL_USER: 'root'
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
MYSQL_CHARACTER_SET_SERVER: "utf8mb4"
MYSQL_COLLATION_SERVER: "utf8mb4_unicode_ci"
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 3

# Determines build matrix. This is a list of PHP versions, databases and
# branches to test our project against. For each combination a separate
# build will be created. For example below, builds will be created in
# total (7.4-pgsql, 7.4-mariadb, 8.0-pgsql, 8.0-mariadb, etc.).
strategy:
fail-fast: false
matrix:
include:
# Next version of Moodle (main).
# - php: '8.3'
# moodle-branch: 'main'
# database: 'pgsql'
# - php: '8.3'
# moodle-branch: 'main'
# database: 'mariadb'
# - php: '8.2'
# moodle-branch: 'main'
# database: 'mariadb'
# Moodle 4.4.x (MOODLE_404_STABLE).
- php: '8.3'
moodle-branch: 'MOODLE_404_STABLE'
database: 'pgsql'
- php: '8.3'
moodle-branch: 'MOODLE_404_STABLE'
database: 'mariadb'
- php: '8.2'
moodle-branch: 'MOODLE_404_STABLE'
database: 'mariadb'
- php: '8.1'
moodle-branch: 'MOODLE_404_STABLE'
database: 'pgsql'
# Moodle 4.3.x (MOODLE_403_STABLE).
- php: '8.2'
moodle-branch: 'MOODLE_403_STABLE'
database: 'pgsql'
- php: '8.0'
moodle-branch: 'MOODLE_403_STABLE'
database: 'mariadb'
# Moodle 4.2.x (MOODLE_402_STABLE).
- php: '8.2'
moodle-branch: 'MOODLE_402_STABLE'
database: 'mariadb'
- php: '8.0'
moodle-branch: 'MOODLE_402_STABLE'
database: 'pgsql'
# Moodle 4.1.x (MOODLE_401_STABLE).
- php: '8.1'
moodle-branch: 'MOODLE_401_STABLE'
database: 'pgsql'
- php: '7.4'
moodle-branch: 'MOODLE_401_STABLE'
database: 'mariadb'

steps:
# Check out this repository code in ./plugin directory
- name: Check out repository code
uses: actions/checkout@v4
with:
path: plugin

# Install PHP of required version. For possible options see https://github.com/shivammathur/setup-php
- name: Setup PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ${{ matrix.extensions }}
ini-values: max_input_vars=6000
# If you are not using code coverage, keep "none". Otherwise, use "pcov" (Moodle 3.10 and up) or "xdebug".
# If you try to use code coverage with "none", it will fallback to phpdbg (which has known problems).
coverage: pcov

# Install this project into a directory called "ci", updating PATH and locale, define nvm location.
- name: Initialise moodle-plugin-ci
run: |
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
echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV
# Run the default install.
# Optionally, it is possible to specify a different Moodle repo to use
# (https://github.com/moodle/moodle.git is used by default) and define
# ignore directives or any other env vars for install step. For more
# details on configuring for specific requirements please refer to the
# 'Help' page.
#
# env:
# MOODLE_REPO=https://github.com/username/moodle.git
# IGNORE_PATHS: 'ignore'
# IGNORE_NAMES: 'ignore_name.php'
# MUSTACHE_IGNORE_NAMES: 'broken.mustache'
# CODECHECKER_IGNORE_PATHS: 'ignoreme'
# CODECHECKER_IGNORE_NAMES: 'ignoreme_name.php'
#
# Other env vars are available for install, namely:
# - DB_USER / DB_PASS / DB_NAME / DB_HOST / DB_PORT: used
# by install to feed the corresponding --db-xxxx options.
# - MOODLE_APP: used to install dependencies to run Behat tests
# using the Moodle App.
- name: Install moodle-plugin-ci
run: moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1
env:
DB: ${{ matrix.database }}
MOODLE_BRANCH: ${{ matrix.moodle-branch }}
# Uncomment this to run Behat tests using the Moodle App.
# MOODLE_APP: 'true'

# Steps that are run for the purpose of testing. Any of these steps
# can be re-ordered or removed to your liking. And of course, you can
# add any of your own custom steps.
- name: PHP Lint
continue-on-error: true # This step will show errors but will not fail
if: ${{ !cancelled() }}
run: moodle-plugin-ci phplint

- name: PHP Copy/Paste Detector
continue-on-error: true # This step will show errors but will not fail
if: ${{ !cancelled() }}
run: moodle-plugin-ci phpcpd

- name: PHP Mess Detector
continue-on-error: true # This step will show errors but will not fail
if: ${{ !cancelled() }}
run: moodle-plugin-ci phpmd

- name: Moodle Code Checker
continue-on-error: true # This step will show errors but will not fail
if: ${{ !cancelled() }}
run: moodle-plugin-ci phpcs --max-warnings 0

- name: Moodle PHPDoc Checker
continue-on-error: true # This step will show errors but will not fail
if: ${{ !cancelled() }}
run: moodle-plugin-ci phpdoc --max-warnings 0

- name: Validating
continue-on-error: true # This step will show errors but will not fail
if: ${{ !cancelled() }}
run: moodle-plugin-ci validate

- name: Check upgrade savepoints
if: ${{ !cancelled() }}
run: moodle-plugin-ci savepoints

# This plugin does not use Mustache templates.
# - name: Mustache Lint
# if: ${{ !cancelled() }}
# run: moodle-plugin-ci mustache

- name: Grunt
continue-on-error: true # This step will show errors but will not fail
if: ${{ !cancelled() }}
run: moodle-plugin-ci grunt --max-lint-warnings 0

- name: PHPUnit tests
continue-on-error: true # This step will show errors but will not fail
if: ${{ !cancelled() }}
run: moodle-plugin-ci phpunit --fail-on-warning

# - name: Behat features
# id: behat
# if: ${{ !cancelled() }}
# run: moodle-plugin-ci behat --profile chrome

# 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

- name: Mark cancelled jobs as failed.
if: ${{ cancelled() }}
run: exit 1
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,9 @@ test.php
*.tmp
*.temp

##### Git Patches
*.patch

##### GPG
secring.*

Expand Down
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
# Change Log
All notable changes to this project will be documented in this file.

## [2.2.1] - 2024-04-28
Note: There are no changes to the code in this release.
### Added
- Github CI Workflows.
- Github security reporting
### Updated
- Code updated to latest Moodle coding guidelines.
- Bug reporting form.
- Tested compatible and tested with Moodle 3.9, 3.10, 3.11, 4.0, 4.1, 4.2, 4.3 and 4.4.
- Compatible with Moodle up to v4.4.
- Updated copyright notice for 2024.

## [2.2.1] - 2023-10-24
### Added
- Ability to self-unenrol from the course.
Expand Down
10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@ Keep in mind that the maintainers get final say on whether new features will be

Style Guides
-------------------
1. Write in UTF-8 in PHP 7.2, 7.3 and 7.4.
2. Follow the official[Moodle Coding Style Guide](https://docs.moodle.org/dev/Coding_style).
3. Fully test your code's functionality with Moodle **Debug Messages** setting set to **DEVELOPER: extra Moodle debug messages for developers** and **Display debug messages** setting checked. There are no errors or warnings at all!
4. Test your code using the [Moodle Code Checker](https://moodle.org/plugins/local_codechecker) and [Moodle PHPdoc check](https://moodle.org/plugins/local_moodlecheck) plugins. Ensure that there are no errors or warnings at all.
1. Write in UTF-8 in PHP 7.4, 8.0, 8.1 and 8.2.
2. Follow the official[Moodle Coding Style Guide](https://moodledev.io/general/development/policies/codingstyle).
3. Fully test your code with Moodle **Debug Messages** setting set to **DEVELOPER: extra Moodle debug messages for developers** and **Display debug messages** setting checked. Ensure that there are no errors or warnings at all.
4. Ensure that your code passes all tests using the [Moodle Code Checker](https://moodle.org/plugins/local_codechecker) and [Moodle PHPdoc check](https://moodle.org/plugins/local_moodlecheck) plugins. Ensure that there are no errors or warnings at all.
5. Look at the existing style and adhere accordingly.

Fork the Repository
-------------------

Be sure to add the relevant tests before making the pull request. The documentation will be updated automatically when we merge to ****master**, but you should also build the documentation yourself and make sure it is readable.
Be sure to add the relevant tests before making the pull request. The documentation will be updated automatically when we merge to the **master** branch, but you should also build the documentation yourself and make sure it is readable.

Make a Pull Request
-------------------
Expand Down
File renamed without changes.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Invitation enrollment plugin for Moodle
=======================================
![PHP](https://img.shields.io/badge/PHP-v5.6%20%2F%20v7.0%20%2F%20v7.1%20%2F%20v7.2%20%2F%20v7.3%20%2F%20v7.4%20%2F%20v8.0%20%2F%20v8.1%20%2F%20v8.2-blue.svg)
![PHP](https://img.shields.io/badge/PHP-v7.4%20to%20v8.3-blue.svg)
![Moodle](https://img.shields.io/badge/Moodle-v2.6%20to%20v4.3-orange.svg)
[![GitHub Issues](https://img.shields.io/github/issues/michael-milette/moodle-enrol_invitation.svg)](https://github.com/michael-milette/moodle-enrol_invitation/issues)
[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-green.svg)](#contributing)
Expand Down Expand Up @@ -247,7 +247,7 @@ https://github.com/michael-milette/moodle-enrol_invitation

# License

Copyright © 2021-2022 TNG Consulting Inc. - https://www.tngconsulting.ca/
Copyright © 2021-2024 TNG Consulting Inc. - https://www.tngconsulting.ca/

This file is part of Invitation for Moodle - https://moodle.org/

Expand Down
30 changes: 28 additions & 2 deletions classes/event/invitation_accepted.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,34 @@
* The invitation_accepted event.
*
* @package enrol_invitation
* @copyright 2021-2023 TNG Consulting Inc. {@link https://www.tngconsulting.ca}
* @copyright 2021-2024 TNG Consulting Inc. {@link https://www.tngconsulting.ca}
* @author Michael Milette
* @copyright 2021 Christian Brugger (brugger.chr@gmail.com)
* @author Christian Brugger
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace enrol_invitation\event;

/**
* Class invitation_accepted
*
* This class represents an accepted invitation event in the enrol_invitation system.
* It extends the invitation_base class and provides methods for creating the event,
* getting the event name, getting the event description, and getting the URL for the event.
*/
class invitation_accepted extends invitation_base {
/**
* Initialize the class.
*/
protected function init() {
$this->data['crud'] = 'c'; // Valid options include: c)reate, r)ead, u)pdate and d)elete.
$this->data['edulevel'] = self::LEVEL_OTHER;
$this->data['objecttable'] = 'enrol_invitation_invitation_manager';
}

/**
* Create this event on a given invitation.
* Create this event for a given invitation.
*
* @param object $invitation
* @return \core\event\base
Expand All @@ -45,10 +56,20 @@ public static function create_from_invitation($invitation) {
return $event;
}

/**
* Get the name of the event.
*
* @return string
*/
public static function get_name() {
return get_string('event_invitation_accepted', 'enrol_invitation');
}

/**
* Get the description for the event.
*
* @return string
*/
public function get_description() {
$userid = empty($this->userid) ? get_string('anonymoususer', 'enrol_invitation') : $this->userid;
if (property_exists((object)$this->other, 'errormsg')) {
Expand All @@ -69,6 +90,11 @@ public function get_description() {
return $description;
}

/**
* Get the URL for the event.
*
* @return \moodle_url
*/
public function get_url() {
return new \moodle_url('/enrol/invitation/history.php', ['courseid' => $this->other['courseid']]);
}
Expand Down
Loading

0 comments on commit 0db8601

Please sign in to comment.