Blocks ::: block_dashboard
Maintained by Valery Fremaux
Graphic, one query dashboard element using MIT library JQplot and other libraries

Dashboard 3.0.0 (build 2016032400)

Moodle 3.0
Released: Sunday, April 17, 2016, 5:47 PM


1.9 as branch MOODLE_19_STABLE (Status : RELEASE)

2.2 as branch master (Status : BETA)

Dashboard element block

the dashboard element block is of use with flexible Moodle page formats allowing free setup of the page layout using blocks.

It implements a "dashboard element" capable to plot and render in many graphic output formats any result of a complex query presented to the Moodle database (or an eventual external PostGre schema).

Given a full query, the dashboard block mashes up :

  • Data table output

    • Linear (records) data table
    • Tabular (cross dimension) tables
    • Treeview (on hierarchical mapped results)
  • Graphic plotting using JQPlot

    • Line graphs
    • Bar graphs
    • Pie graphs
    • Donuts graphs
  • Geographic plotting (using GoogleMaps API)

    • Google Maps + query data plotting
    • Possibility to change icons and plor mutiple class data using course files
    • Geocoding requests to Google handled (up to 2500 per day) with static long term caching => Will evolve
  • Time special plotting : Integrating SIMILE Timeline plugin

    • Plot on a timeline plugin of "instant" and "time duration" events
    • possibility of setting up color classes for events
    • possibility to customize "instant" pin icons from course files => Will evolve
  • Data output additional features

    • Data output formatting (using sprintf formatting)
    • Filters (selecting output or query fields for filtering)
    • Summators : displaying computed sums of output fields
    • Cumulative mode : Produces cumulative sum of a field without extra query
    • Data colouring and marking (on tables) using comparison formulas (ex: %% == 0 )
    • Mappable Labels for ALL query field names
  • Performance features

    • Result caching (programmable retension delay)
    • Croned refresh of cache
    • Instance adjustable refresh mode or global cron settings


  1. Deploy the block in Moodle/blocks as usual

  2. Activate notifications to install the data model

  3. Create a course, better a flexipage or paged format course if available

  4. Add a Dashboard block and write a query

  5. Define output fields, output modes, output labels... and discover features....

Library locations


Get the VFLibs libraries package at https://github.com/vfremaux/moodle-local_vflibs/archive/MOODLE_30_STABLE.zip and add the content to the moodle/local directory

Those libs are NOT moodle libs but additional public opensource libraries i use in several components as extra framework.

# Install additive for running timelines

@TODO : Review this with better JS provisioning calls

Timeline needs to be post page loading activated. We got some issue to stack onload events on body element. The solution is till now to add a late call to initialisation in footer :

Add this statement :

if (function_exists('timeline_initialize')) timeline_initialize();

As latest possible statement in footer.

Enjoy nice plotting...

Version information

Version build number
Version release name
3.0.0 (build 2016032400)
Release candidate
MD5 Sum
Supported software
Moodle 3.0
  • Latest release for Moodle 3.0

Version control information

Version control system (VCS)
VCS repository URL
VCS branch

Default installation instructions for plugins of the type Blocks

  1. Make sure you have all the required versions.
  2. Download and unpack the block folder.
  3. Place the folder (eg "myblock") in the "blocks" subdirectory.
  4. Visit http://yoursite.com/admin to complete the installation
  5. Turn editing on in any home or course page.
  6. Add the block to the page
  7. Visit the config link in the block for more options.