The "Report builder" developed as part of the Workplace project provides a form-based way to develop custom reports. However, as originally developed, it supports a limited number of Data sources. (Data sources identify the primary table the report will be based on. Other tables joined to the primary table may be included in the data source as "Tables" in the report builder.) Increasing the number of Data sources will allow greater use of the Report builder, eventually allowing all reports included in Moodle (all versions) to be based on the Report builder, and therefore customisable.
Data sources currently included in Workplace:
- Certification users allocation and completion: User [certification] allocation, User [certification] completion, Certification, User, Job assignments, Program
- Certifications: Program, User allocation, User, Course (JOINed by Program)
- Programs: Course, User
- Program users allocation and completion: Program, User allocation, User [program] completion, User, Job assignments
- Course completion from datastore: Datastore action (Time completed), Course from datastore, User from datastore, Course completion, User, Course
- Users: Job assignments
The data sources suggested below are based on analysis of user-created reports (e.g. using Ad-hoc queries or Configurable reports), existing reports provided in core, and popular reporting plugins. The primary table is given first, followed by additional tables that are often JOINed to the primary table in existing reports.
New data sources:
- Events/Log activity: Users (mediated by Role assignments and Enrolments), Courses, Course modules, Role assignments, Roles (full name of Role)
- Gradebook: Grades, Gradebook categories, Course modules, User, Groups, Advanced grading [Note: this is an example of a type of report that could benefit from having editable fields]
- Course modules (Activities and Resources): Log activity, Activity completion, Grades
- Competencies: Courses, Course modules, Users, Course categories
- Course completion: Enrolments, Users, Courses, Course modules
- Specific Module types for Core modules (especially Quiz, Assignment, Forum)
- Course categories: Courses, Enrolments, Role assignments
- Groups: Users, Events (often filtered by the Course in which the report is run)
- Course: [Course] Metadata, Course format, Users (mediated by Role assignments), Enrolments (mediated by Users+Role assignments), Course categories, Course completions
- User enrolments: User last access, Role assignments/Role, User, Course
- Time spent in course: This is a special variation of the Course data source that allows the report user to specify the session time (how long a session is assumed to extend after the last logged event), and this value is provided as "Time spent" for all users who access the Course, filterable by Role assignment.
- Users enroled but not logged in: This Data source requires a LEFT JOIN (if implemented in SQL) to pick up Enrolments in a Course that do NOT have any log activity. Otherwise it resembles "Events/Log activity" above.
- Communications: Course, Users (linked to Course via Role assignment), various sources of communications between users, e.g.: Messages, Feedback (from Gradebook), Forum (read or reply), Assignment (annotations)
(In Configurable Reports, data sources are called report types. In Totara Report Builder, these are called "Sources." Existing report types in CR are Users, Courses, Categories, and Timeline.)