-
New Feature
-
Resolution: Fixed
-
Critical
-
4.2
-
MOODLE_402_STABLE
-
MOODLE_403_STABLE
-
MDL-77576-master-mvp -
-
10
-
Team Hedgehog Sprint 2.2, Team Hedgehog 2023 Sprint 1.3, Team Hedgehog 2023 Sprint 1.4, Team Hedgehog 2023 Sprint 2.0
This issue combines multiple other critical issues to provide the minimum functionality required for Matrix to be used in Moodle LMS. There are other additions which are considered "must have" for the initial release, however anything which does not prevent the functionality working has been left separate and will be marked as blocked by this issue.
The key requirements for this issue are:
- A new communication subsystem and plugin type, which will house a Matrix (Synapse) plugin (and in future will include others).
- The Matrix (Synapse) communication plugin.
- The functionality should be behind an experimental feature flag.
- The ability to enable/create Matrix rooms from course settings.
- Automatic Matrix room membership addition/removal based on course enrolment.
- A hidden user profile field to manage users' Matrix IDs, and on-demand (just in time) creation of any users who do not yet have a Matrix ID when they need to be added to a course's Matrix room.
- A UI element with in a course to link users to the Matrix room when it is enabled and they have access to it.
Further details on each of these is included in the linked MDLs.
User stories
The following are high level user stories for this issue:
Student
- As a student I want to be able to join the matrix chat for my course from the main course page in Moodle. So I can communicate with the peers in my course and ask my teacher questions.
- As a student I want to be able to join the matrix chat for my course from any Moodle activity main page. So I can communicate with the peers in my course and ask my teacher questions.
- As a student I want to be able to contact one of my peers using matrix from their user profile page in Moodle. So I can chat directly to them.
- As a Student I want the Moodle course name included in Matrix chat room name so I know which chat in Matrix relates to which of my courses.
Teacher
- As a teacher I want to be able to join the matrix chat for my course from the main course page in Moodle. So I can communicate with my students.
- As a teacher I want to be able to join the matrix chat for my course from any Moodle activity main page. So I can communicate with my students.
- As a teacher I want to be able to contact one of my peers using matrix from their user profile page in Moodle. So I can chat directly to them.
- As a teacher I want to be able to enable or disable Matrix integration for my course from the general course settings. When enabled I expect a “room” in matrix to be created asynchronously in the “background” for my course and students in my course with active enrolments to be invited to that room. So I can control how my students communicate in my course.
- As a teacher I want to be able to set the Matrix room name for my course in the general course settings in Moodle. With a sensible name set by default. So I can customise the experience for my students.
- As a teacher I want students invited and removed from my courses room in Matrix based on their enrolment status in my Moodle course. Where an active enrollment means they are in the room, and a suspended or not enrolled status meaning they are not in the room. So that only students with active enrolments can participate.
- As a teacher when I explicitly configure a matrix chat room from my Moodle course, I don’t want to be blocked from other actions while the chat room is being created for me in the background.
Admin
- As an admin I expect that matrix chat rooms for existing courses are not enabled by default when I upgrade to Moodle 4.2. So not to confuse the teachers at my organisation.
- As an admin I want to be able to enter the details of my organisation's homeserver, including the administration user details. So my Moodle can connect to my organisation's Matrix server.
- As an admin I want to be able to configure Moodle to create users in Matrix for my users in Moodle. So my Moodle users can connect to my organisation’s Matrix instance.
- As an admin I want to be able to map an existing user profile field to a Matrix unique identifier. So that when a user in Moodle performs a matrix related action they are correctly identified in Matrix.
- As an admin I want to be able to enable or disable the Matrix chat functionality via the Moodle LMS settings (subsystem). So I can control and evaluate how my organisation has access to this functionality.
Developer
- As a Moodle developer I want a Moodle subsystem that supports plugins with a suitable API so that I can write plugins that integrate with various chat systems like Matrix.
- blocks
-
MDL-77356 Add flag to sync image/avatar from communication plugins
- Closed
-
MDL-76704 Admin settings to control Matrix room creation for Courses
- Closed
-
MDL-77357 Create dynamic form fields feature for communication plugins
- Closed
-
MDL-77252 Add banners to indicate Matrix room creation status to teachers
- Closed
- caused a regression
-
MDL-78475 The browser based installation process is broken
- Closed
-
MDL-79996 Error when deleting user when communication providers are enabled
- Closed
- is blocked by
-
MDL-76737 Matrix test mock
- Closed
- will be (partly) resolved by
-
MDL-76699 Create new communications subsystem and plugin type
- Closed
-
MDL-76700 New communications plugin type
- Closed
-
MDL-76701 Create Matrix (Synapse) communication plugin
- Closed
-
MDL-76702 Create Matrix rooms from Course settings
- Closed
-
MDL-76703 Update Matrix room membership based on Course enrolment status
- Closed
-
MDL-76705 Access a Matrix room from a Moodle Course
- Closed
-
MDL-76708 Matrix user creation from Moodle
- Closed
-
MDL-77473 Add Behat coverage for Matrix room icon/link
- Closed