Note: You are currently viewing documentation for Moodle 3.10. Up-to-date documentation for the latest stable version of Moodle may be available here: Checklist module.

Checklist module

From MoodleDocs
Checklist Module

The Checklist Module is an add-on that allows a teacher to create a checklist for their students to work through. It is contributed by David Smith.

The students should tick off each item on the list, as they complete it and the resulting progress of the class can be monitored by the teacher. The student is also rewarded with a progress bar that shows how far through the checklist they have managed to get.

Other features include:

  • Indenting items, to show a hierarchy of importance
  • Optional items (which can be hidden in the class progress report and contribute to a secondary 'all items' progress bar)
  • Student checklist items (so that students can add their own items to keep track of)
  • Dates on checklist items
  • Choice of colours

There is a short overview video available on YouTube.


  1. Unzip the contents of file you downloaded to a temporary folder.
  2. Upload the files to the your moodle server, placing the 'mod/checklist' files in the '[moodlefolder]/mod/checklist' folder, (optionally) the 'blocks/checklist' files in the '[moodlefolder]/blocks/checklist' folder and (optionally) the 'grade/export/checklist' files into the '[moodlefolder]/grade/export/checklist' folder.
  3. Log in as administrator and click on 'Notifications' in the admin area to update the Moodle database, ready to use this plugin.

Adding a checklist block

  1. Click 'Turn editing on', in a course view.
  2. Under 'blocks', choose 'Checklist'
  3. Click on the 'Edit' icon in the new block to set the checklist to display and (optionally) which group of users to display.

Exporting checklist progress (Excel)

  1. In a course, click 'Grades'
  2. From the dropdown menu, choose 'Export => Checklist Export'
  3. Choose the checklist you want to export and click 'Export Excel'

If you want to change the user information that is included in the export ('First name', 'Surname', etc.), then edit the file 'grade/export/checklist/columns.php' - instructions can be found inside the file itself.


Click on 'Add an activity' and choose 'Checklist'. Enter all the usual information. You can optionally allow students to add their own, private items to the list (this will not affect the overall progress, but may help students to keep note of anything extra they need to do).

You can then add items to the list. Click on the 'tick' to toggle an item between required, optional and heading Click on the 'edit' icon to change the text. Click on the 'indent' icons to change the level of indent. Click on the 'move' icons to move the item up/down one place. Click on the 'delete' icon to delete the item. Click on the '+' icon to insert a new item immediately below the current item.

Click on 'Preview', to get some idea of how this will look to students. Click on 'Results', to see a chart of how the students are currently progressing through the checklist.

Students can now log in, click on the checklist, tick any items they have completed and then click 'Save' to update the database. If you have allowed them to do so, they can click on 'Start Adding Items', then click on the green '+' icons to insert their own, private items to the list.

If you allow a checklist to be updated by teachers (either exclusively, or in addition to students), it can be updated by doing the following:

  1. Click 'Results'
  2. Click on the little 'Magnifying glass' icon, beside the student's name
  3. Choose Yes / No for each item
  4. Click 'Save'
  5. (Optional) Click 'Add comments', enter/update/delete a comment against each item, Click 'Save'
  6. Click 'View all Progress' to go back to the view with all the students shown.

Checklist Overview Sort Order

The sorting for the block in 'overview' mode is as follows:

  • Started, but incomplete checklists (ordered from least complete, to most complete), then
  • Unstarted checklists (0%), then
  • Completed checklists (100%)

A maximum of 20 checklists are shown and the ordering of checklists that have the same completion % is undefined (for MySQL it is likely to be the order they were created, for other DB systems, it may not be). As the overview works across multiple courses, there is no simple way to order the checklists with identical completion % in the same order that they would appear within a course.

Normal items, optional items and headings in a checklist

The checklist module fully supports headings:

  1. On the edit page, click on the 'tick' mark on the left to convert an item into an 'optional' item,
  2. Click again to convert it into a heading.
  • Optional items are ones that contribute to the 'all items' progress bar, but not the 'required items' progress bar;
  • Optional items don't contribute to the gradebook score, nor do they help the student to 'complete' the checklist.

Automatic updating

On the settings screen you can allow the checklist to import modules from the current course (or just the section the checklist is in). This will list the names of the resources / activities in the course and automatically tick them off, when they are 'completed' (note there will be a delay of up to 60 seconds between an activity being completed and the checklist updating, unless you are willing to make a few Moodle core code modifications).

Activities are considered complete, based on either the course logs being updated (e.g. resource viewed, forum posted to, etc.), a certain grade being achieved (Moodle 1.9 & assignment / quiz / forum only) or the Completion criteria being met (Moodle 2.0+ only).

Adding labels to the checklist

Labels are not included in checklists by default, as they would be confusing for most people.

However, if you do want labels to appear, you should only need to change a couple of lines of code.

Open up mod/checklist/locallib.php, find line 262 ( https://github.com/davosmith/moodle-checklist/blob/master/locallib.php#l262 ), which should look like:

               if ($mods->get_cm($cmid)->modname == 'label') {
                   continue; // Ignore any labels

Just delete these 3 lines (or add '//', without quotes, to the start of each line) and labels should appear in the checklist.