Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-63233

MUA customizable report builder proposal






      Linked epic in the moodle tracker: tracker MDL-62080

      MUA Proposal - Project Cycle: July - December 2018


      This proposal is intended to complement tracker MDL-62080. There have been several report builder plugins including Configurable Reports that have been well utilized by the Moodle community and would benefit from improved usability, an expanded feature set, and updated logic to suit recent Moodle releases. The community would benefit from a responsive customizable reporting tool integrated into Moodle core.


      Currently there is reduced usability with the Configurable Reports plugin in Moodle 3.5. The community needs a reliable report builder that is easily accessible with improved UX and simplified join logic as well as preserving (secure) native SQL reporting for complex operations.


      • Project size: medium
      • Audience: primary schools, universities, workplaces
      • Target users: administrators, teachers, students


      1. Merge report building feature sets into a responsive customizable reporting tool that will be easily accessible by new and experienced report builders.
      2. Support dynamic report views that will entice and enable those viewing reports to drill down into additional data sets.

      Use cases

      • Set Default Timeout: (related to Issue MDL-62112) - As an admin, when configuring an individual report or for the site, provide a dropdown option with a default timeout such as 60 seconds so a query cannot become errant and cause potential issues. The admin user could up time as needed for a specific verbose report if it is as optimized as possible for the output yet must run for up to two minutes.
      • Scheduled and Triggered Email/SFTP report delivery: (related to Issue MDL-62114) As an admin, when creating a report, there is the ability to schedule role based email delivery, specific email delivery, or SFTP drops of report outcomes on a set interval or at a specific time. If possible, it would be significantly helpful to allow for triggered delivery via the same means depending on whether either field conditions were met, an event listener was met, or if the report contained any outcomes. It would be important to incorporate security to verify if an email recipient was a Moodle user that could receive such information and only allow for admins or create role based security to allow/disallow for directly adding email delivery of outcomes for an email address that does not belong to a Moodle user.
      • Embeddable Reports: As a student, mentor, teacher, and admin, when viewing a report, there could be new stripped page view for a report page that allows for that report to be embedded in different contexts within Moodle.
      • Report Migration: As an admin, who is migrating reports from another plugin or tool, there should be simplified options for importing XML/SQL from reporting tools such as Configurable Reports or the Totara report builder.
      • Add Role Security: As an admin, when configuring roles, it would be possible to choose whether an assigned role could run read only, update, or delete queries for instance. If a user had access to a report yet didn't have the required role capabilities, they would receive and error.
      • Add Report Logging: As an admin, when viewing standard logs, it would be possible to see when a report was changed and when it was run. This will greatly help troubleshooting and tracking report utilization.
      • Easy URL Concatenation: (related to issue 62106) As an admin, when building a report, there could be a simplified UI for stringing together variables to concatenate in a URL string. This will make it easier for report builders to create drill down reports and link other relevant pages related to reports.
      • Multiple URL String Variables: As an admin, when building a report, they can utilize multiple URL string variables like the Configurable Reports plugin "filter_var" which can be used for drill down reporting as a variable within the SQL query. See a screenshot with examples below that highlight how this can be currently used. Currently, "filter_var" can only be used once within a Configurable Reports plugin report. MUA wishes to have secure variables (based on role security for starters) that would allow for users with access to the variables to use them in the URL string, or cause an error for other users. Allowing for multiple URL string variables could open up for more complex reporting and filtering options where each URL filter could be mapped to different fields within new UI.
      • Special Character Exceptions: As an Admin, when building a report, they can un-block special characters with the admin UI so that as needed, a special character such as a semicolon could be used when needed for retrieving information from fields with multiple datasets in long string searches. Alternatively, it it were possible to use ASCII to search for semicolons or other blocked characters, that would work as well.
      • Multiple Statements: As an admin, when building a report, they can enter multiple SQL statements if the site admin chooses to allow it for a specific report. When scheduling an update report to run where there is sequential processing that must take place or if a report relies on temporary tables, this is currently not possible to do within a single CR plugin report. One example of this would be to allow for a "set" statement preceding a select statement.
      • Allow for Secure, Native SQL: As and admin, when building a report, they can create native SQL reports without needing to use a secondary or proprietary language to create a report. For instance, the Moodle Adminer plugin allows for both field dropdowns and raw SQL.
      • Improved CSS fine-tuning: As an admin, who is building a report, there should be improved UX for easily changing the look and feel of the query output.

      Photos of the possible look when implemented are below...

      Embeddable Reports:
      Student/mentor view on the Moodle landing page after logging in

      Other example of embedded student/mentor report




        Issue Links



              45 Vote for this issue
              31 Start watching this issue




                  Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.