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:
14578 sites
3k downloads
455 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 RSS

Show comments
  • Quintin Seegers
    Fri, 13 Sept 2024, 5:04 AM
    @Humberto Moreno - we're running it on Moodle 4.3.x. The only issue we've run into is the one reported by @Simon Young.
  • Noelia Lopez
    Fri, 13 Sept 2024, 10:36 PM
    Hola Juan, ¿sabes si es posible instalar el bloque desde un administrado solo para admin y gestores en una tema sin bloques?
  • Noelia Lopez
    Fri, 13 Sept 2024, 10:36 PM
    Hola Juan, ¿sabes si es posible instalar el bloque desde un administrado solo para admin y gestores en una tema sin bloques?
  • Jesus Guevara Iquinas
    Thu, 24 Oct 2024, 11:54 PM
    Good afternoon, can someone help me? I have a custom statement, but when I add it, the sql statement doesn't work, the error that appears is: No explicit prefix, the sql is:
    SELECT
    u.id AS 'Identificación',
    CONCAT(u.firstname, ' ', u.lastname) AS 'Nombre',
    c.fullname AS 'Nombre del Curso',
    g.name AS 'Grupo',
    ROUND( (SUM( CASE WHEN cmc.completionstate = 1 THEN 1 ELSE 0 END ) / COUNT(cm.id)) * 100, 2 ) AS 'Progreso (%)',
    SUM( CASE WHEN cmc.completionstate = 1 THEN 1 ELSE 0 END ) AS 'Actividades Completadas',
    (SELECT COUNT(*)
    FROM mdl_course_modules
    WHERE course = c.id
    AND completion > 0) AS 'Actividades del Curso',
    docdata.data AS 'Tipo de Documento',
    numdocdata.data AS 'Número de Documento',
    caractdata.data AS 'Caracterización'
    FROM mdl_user u
    LEFT JOIN mdl_user_enrolments ue ON ue.userid = u.id
    LEFT JOIN mdl_enrol e ON e.id = ue.enrolid
    LEFT JOIN mdl_course c ON c.id = e.courseid
    LEFT JOIN mdl_groups_members gm ON gm.userid = u.id
    LEFT JOIN mdl_groups g ON g.id = gm.groupid
    LEFT JOIN mdl_course_modules_completion cmc ON cmc.userid = u.id
    LEFT JOIN mdl_course_modules cm ON cm.id = cmc.coursemoduleid AND cm.course = c.id
    LEFT JOIN mdl_user_info_data docdata ON docdata.userid = u.id AND docdata.fieldid = 5 -- Ajustar con el ID correcto de "Tipo de Documento"
    LEFT JOIN mdl_user_info_data numdocdata ON numdocdata.userid = u.id AND numdocdata.fieldid = 4 -- Ajustar con el ID correcto de "Número de Documento"
    LEFT JOIN mdl_user_info_data caractdata ON caractdata.userid = u.id AND caractdata.fieldid = 6 -- Ajustar con el ID correcto de "Caracterización"
    WHERE c.visible = 1
    GROUP BY u.id, c.id, g.id, docdata.data, numdocdata.data, caractdata.data
    ORDER BY u.lastname, u.firstname;
  • Rick Jerz
    Fri, 25 Oct 2024, 1:52 AM
    Jesus, your tables start with mdl_. I believe that Configurable Reports want you to specifically use prefix_, not mdl_.

    Give this simple query a try and see if it works.

    select *
    from prefix_user
  • Kristina Luong
    Mon, 4 Nov 2024, 10:25 PM
    Will there be a version that is compatible with Moodle 4.3 and when would that be released?
  • Juan Carlos Galdos
    Thu, 7 Nov 2024, 4:15 PM
    ¡¡Juan, se te agradece muchísimo por las actualización a 4.5!!
  • Fabian Glagovsky
    Thu, 7 Nov 2024, 4:38 PM
    Quiero también agradecer a Juan por la actualización.
  • Quintin Seegers
    Fri, 8 Nov 2024, 3:23 AM
    Thanks for the update, Juan. So glad the export issue was resolved (amongst all the others reported issues).
  • Daniel Poggenpohl
    Tue, 19 Nov 2024, 4:35 AM
    I opened an issue on Github. Now I see that the Moodle Tracker is the "official" bug tracker. What should I do? Copy the issue to the tracker?
  • Mike Wilday
    Sat, 4 Jan 2025, 1:10 AM
    I'm really struggling to get my reports to show up to 100 rows by default. I've posted an issue here: https://github.com/Lesterhuis-Training-en-Consultancy/moodle-block_configurable_reports/issues/8. Not sure if this is a feature request or a bug. Any help would be awesome!
  • Sharon Karaa
    Fri, 21 Feb 2025, 3:21 AM
    Hi all, just a heads up - I used Grok to generate some SQL statements and it was spot on! Don't spend hours writing your own.
  • Zoran Jančić
    Mon, 17 Mar 2025, 8:21 PM
    Great plugin, used in so many institutions all over the world. Although Moodle now has custom reports module, this plugin is so much better because we can write our own queries.

    I hope some day it will solve two major issues in reports with large amount of data:
    - for reports with filters, it should load results after clicking the Apply button and not before.
    - default search field should also work with paging enabled. That means replacing Javascript search with Ajax or something.

    One more suggestion for developers... regarding SQL reports, filtering syntax is really too limiting and complicated without real reason. Could you just use filter values as variables instead? That would make life so much easier for anyone that codes custom SQL queries for this report. This would also remove so much limitations of the current plugin and it would make plugin's PHP code so much cleaner, smaller and simple.
  • 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 ?
Please login to post comments