Introduce lesson bundles

Created on 7 November 2024, about 1 month ago

Problem/Motivation

We currently have 2 potential types in LMS core:
Standard lessons
Exams

Those should have different lesson navigation handling and different parameters (for example exams have a time limit and opening time span).

Among ecosystem modules there will also potentially be use cases for implementing entire lesson types that will provide their own way of handling activities (integration with external systems that will provide entire lessons for example and LMS will need to only have a result for the whole lesson without individual activities).

Proposed resolution

  1. Introduce lesson bundles with bundle classes, but not manageable by a bundle config entity type but only in code by hook_entity_bundle_info().
  2. Add a default lesson handler class and a getLessonHandler() method in the lesson entity type class that can be overridden by bundle classes.
  3. Move current lesson-specific navigation and scoring logic to a default lesson handler class.

Remaining tasks

User interface changes

When creating lessons, user will be able to select a bundle (Default or Exam).

API changes

Data model changes

📌 Task
Status

Active

Version

1.0

Component

Courses and lessons

Created by

🇵🇱Poland Graber

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

Production build 0.71.5 2024