Configurable Reports

Blocks ::: block_configurable_reports
Maintained by Juan Leyva, Sara Arjona Téllez
This block is a Moodle custom reports builder. You can create custom reports without SQL knowledge. It's a tool suitable for admins or teachers.
Latest release:
15665 sites
2k downloads
468 fans
Current versions available: 6

This block is a Moodle custom reports builder.

You can create custom reports without SQL knowledge. It's a tool suitable for admins or teachers.


What type of reports can I create?

- Courses reports, with information regarding courses.

- Categories reports, with information regarding categories. A courses report can be embedded in this type of report.

- Users reports, with information regarding users and their activity in a course.

- Timeline reports, this is a special type of report that displays a timeline. A course or user report can be embedded in this timeline showing data depending on the start and end time of the current row.

- Custom SQL Reports, custom SQL queries. This block can use the same SQL queries that Tim Hunt's Custom SQL queries plugin.

Note for developers: You can create your own type of reports.


Who can view the reports?

When you create a report you can select which users can view it.
Links to reports are displayed in a block in the course or site frontpage.


Advanced features

Filters, pagination, logic conditions and permissions, plots, templates support, export to xls .

Request for new report types and plugins are welcome, please use the link "Bugs and issues" at the right.

Screenshots

Screenshot #0

Contributors

Juan Leyva (Lead maintainer)
Sara Arjona Téllez: Developer
Please login to view contributors details and/or to contact them

Comments

Show comments
  • Fabian Glagovsky
    Tue, 25 Mar 2025, 3:16 PM
    Absolutely Zoran. To load results after applying filters or parameters is what is missing in this plugin. It would be perfect with it.
  • Ivan Bobrov
    Wed, 16 Apr 2025, 4:46 PM
    Question: why statement
    %%FILTER_SEARCHTEXT_lastname:uu.lastname:~%%
    works, but case insensitive does not ?
    %%FILTER_SEARCHTEXT_lastname:uu.lastname:~*%%
    it is error or by design ?
  • Dorel Manolescu
    Tue, 24 June 2025, 11:06 PM
    Hi Team,
    We are using Moodle version 4.5.4+ (Build: 20250502) with plugin version 2024051300, and we’ve noticed that the plugin uses the deprecated function get_all_user_name_fields() in multiple places.
    As of recent Moodle versions, it seems this function has been deprecated and removed from core. It should be replaced maybe with: \core_user\fields::get_name_fields().
    Regards
  • olga sh
    Thu, 17 July 2025, 5:48 PM
    Hi,
    In moodle 4.5 in RTL languages it's hard to move the mouse inside the SQL editing zone.
    The cursor can be moved by using keyboard arrows but not the mouse itself.
  • Al
    Thu, 7 Aug 2025, 4:28 AM
    Hi
    I hope you are well, it's been ages. Block Reports appears to work on Moodle 5. Could you update the supported extension on your end to Moodle 5 so that it installs automatically each week when we update our Moodle instance? It saves us so much time. Cheers.
  • Al
    Tue, 26 Aug 2025, 8:23 AM
    Hi, will you be supporting Moodle 5?
  • John Zeller
    Thu, 4 Sept 2025, 12:48 AM
    We use Totara (built off of Moodle) and had Configurable Reports installed. However, the search only appears to work on the first field in the SQL query. Can you change the Configurable Reports to search on all fields in the Reports you create.

    Here is the start of the SQL:
    SELECT grc.description AS Rubric_Description,
    asg2.name AS Assignment_Name

    The search is NOT working on Assignment_Name, only on Rubric_Description in this example.
    Thank you for your time.
  • Sketch...
    Fri, 5 Sept 2025, 3:13 PM
    @John, you haven't specified HOW you are applying the filter in your sql query, so we don't have much to go on... But try this:

    SELECT grc.description AS Rubric_Description,
    asg2.name AS Assignment_Name
    FROM ...
    WHERE ...
    %%FILTER_SEARCHTEXT:CONCAT(grc.description,' ',asg2.name):~%%

    Each of the columns that you want to be searchable must be included in the %%FILTER_SEARCHTEXT:...:~%% filter parameter.

    You should use the Configurable Reports FORUM for questions like this. See https://moodle.org/mod/forum/view.php?id=7979
  • Ernesto Duarte Junior
    Fri, 21 Nov 2025, 9:08 PM
    Olá tudo bem? este plugin funciona no Moodle 5.+ ?
  • Zoran Jančić
    Thu, 4 Dec 2025, 5:48 PM
    Any chance of upgradeing this plugin to Moodle 5.x any time soon?
  • genivan santos
    Fri, 16 Jan 2026, 1:52 AM
    When will there be an update to Moodle 5.1?
  • Kathy Cee
    Mon, 2 Feb 2026, 9:32 PM
    This plugin has become a bit buggy when running on Moodle 4.5.8, with some deprecated function error messages appearing. Do you think you will be releasing a newer version anytime soon? Thank you.
  • Niki Vi
    Sat, 2 May 2026, 6:45 PM
    Hi — I want to report a critical vulnerability in this plugin. Impact: any teacher account on a site with this block enabled can escalate to full database read access (admin password hashes, all user data) and ultimately to RCE as www-data by self-granting managesqlreports, creating a SQL-type report, and uploading a malicious plugin once the admin hash is cracked. The plugin's per-instance safe-override UI (block/instances/edit.php + permissions.php) lets any editingteacher self-grant block/configurable_reports:managesqlreports, after which reports/sql/report.class.php:execute_sql() runs attacker-supplied SELECT directly against the Moodle DB (PT-confirmed live: SELECT @@version returned MySQL 8.0.42 from production). 4 additional student-reachable unparameterised SQL sinks live in reports/sql/report.class.php and 3 of the filter plugins. Fix: restrict managesqlreports to the site-administrator archetype only (remove it from safe-override entirely), and parameterise every $DB->execute() / get_records_sql() call via placeholders.
  • Michael Milette
    Mon, 11 May 2026, 11:16 PM
    Hi Juan and Sarah,

    Did you mean to do a release number 2027050401 (2027 is next year)?

    Best regards,

    Michael
  • Juan Leyva
    Mon, 11 May 2026, 11:18 PM
    That was my mistake, where is the AI when you need it?... but I can also say I was planning for the future smile
    I'll have to leave it like this to avoid breaking people that already updated
Please login to post comments