Skip to content

Courses

Intro

Courses are the building blocks of engauge catalogue modules, where these are the method of delivering learning content to users. A course itself is a collection of units, which in turn are a collection of lessons. The structure of a course is as follows: - A name - A description - An image - A published status (1 = published, 0 = draft) - Multiple units via the units relationship - Multiple lessons via the lessons relationship (this is a non-direct relationship, as lessons are attached to units, and units are attached to courses)

Courses are soft-deletable, so they can be restored if they are deleted by mistake. It is important to note this when querying courses to be displayed in the app.

Managing Courses

Courses are managed within the filament creator panel of the app. A course menu item is there.

In the courses menu item, you can: - Create a new course - Edit an existing course - Delete an existing course - Add units to courses and order the units within the course - View the lessons indirectly attached to the course

Units Relation Manager

Units can be attached to courses via the units relation manager. Within the relation manager, units can be ordered within the course. This is a straightforward implementation of the relation manager, as the units are attached to the course directly.

Lessons Relation Manager

Lessons can be viewed via the lessons relation manager. This is a non-direct relationship, as lessons are attached to units, and units are attached to courses. In the relation manager, the wrong relationship is specified (i.e. the units relationship is specified), this is because the relation manager will not work on the lesson relationship type (see filament documentation for more info). Then a custom query is inserted into the table to ensure that lessons rather than units are displayed in the relation manager.

The lessons are then displayed in groups according to the unit they are attached to. This is achieved by adding the unit_name into the custom table query.