Create new entities for exposing report data on course groups and
groupings, joining to existing course/user entities to provide data
for the reportbuilder editor.
Both entities define columns and filters for related tags (referred
to as "interests" for users).
Create new generic tags filter type to facilitate this, which can be
re-used by any entities for components which support tagging.
Create new entity for exposing report data on course categories,
joining it to the course entity to provide data for the reportbuilder
editor.
Co-authored-by: Carlos Castillo <carlos.castillo@moodle.com>
Entities are re-usable collections of report columns and filters. When
creating system reports, we can re-use those elements from entities
without having to know specific details about their implementation.
They can be joined to reports, or other entities, using standard SQL
query syntax.
Define base classes, and create two example entities: course and user.
Co-Authored-By: David Matamoros <davidmc@moodle.com>