Activities: Checklist

Maintained by Davo Davo Smith
A checklist can be created by a teacher (or generated from the activities in a course) and then the students or teachers can check-off each item as they are completed.
4426 sites
104 fans

Travis status

This is a Moodle activity module for Moodle 1.9 and Moodle 2.0+ that allows a teacher to create a checklist / todo list / task list for their students to work through. The teacher can monitor all the students' progress, as they tick off each of the items in the list. Items can be indented and marked as optional. Students are presented with a simple bar showing how far they have progressed through the required/optional items and can add their own, private, items to the list. 
Features include:

  • Choose whether students or teachers can check-off items
  • Students can add their own notes to their checklist
  • Dates can be added to items (and exported to the calendar)
  • Teachers can comment on an individual student's items
  • Progress is exported to the gradebook
  • Choice of colours for each checklist item
  • Heading items (without checkboxes)
  • (Optional) Import list of current course activities and automatically check-off as activities completed

There are two other plugins that further enhance this activity:

Video overview of this plugin:

The latest version (and the Moodle 1.9 version) can always be found here: (the version on will be updated from time to time)


This plugin is part of sets Checklist, MoodleCloud.


Screenshot #0
Screenshot #1


Davo Smith (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Picture of Ralf Brauckhoff
    Fri, 27 Feb 2015, 4:51 AM
    is there a way to make the checklist in different languages with span lang="de" class="multilang" deutsch span lang="en" class="multilang" english?
    Thanks for your wonderful work. Ralf
  • Davo
    Mon, 2 Mar 2015, 4:31 AM
    Ralf, I don't know. It's not something I've ever tried.

    I take it from your comment that you've tried it and it is not working?
    Does it strip out the tags completely, or are they still present, but not processed correctly?
    Are they present in the database or do they only go wrong when output to the user?

  • Picture of Ralf Brauckhoff
    Mon, 2 Mar 2015, 7:19 AM
    Thanks for the answer. The tags are not strip out. They are there, and you can see them in the frontend exactly the way I put it in the html editor. Thanks again, Ralf
  • Davo
    Mon, 2 Mar 2015, 4:15 PM
    Ralf, please test the latest version on github - - that should now be fixed.
  • Picture of Ralf Brauckhoff
    Tue, 3 Mar 2015, 12:21 AM
    Thanks for the quick response. The course modules are perfect now. But when I go to edit the checklist and want to add my own checklist elements, the tags are striped completely. Also the name of the checklist can not be translated. Here are the tags also deleted. Thanks again!
  • Picture of moe tsao
    Tue, 10 Mar 2015, 2:50 PM
    Found one issue..
    When a checklist was set to complete on condition, and when the completion percentage was not set, the checklist does not complete when all checkbox was checked.



    Duh. That of course was expected behavior.. That is not the issue I am talking about.

    The issue goes after this. Our teacher did not know the module well enough, so they went into the setting page to save it again to trigger the completion check. The first save works as expected, get the student who checked all required box a nice completion mark on the course page.

    However, on the second checklist setting save, it gave all enrolled student completion check. Does not care if they have checklist completed or not.

    So the checklist_check table is still empty, but the course_module_completion table was somehow all filled up, after the user saved setting in the <>/course/modedit.php?update=cmid for the second time.

    This happens with completion triggered by both the cron or the core competionlib.php hack. All enrolled students got the same completion timestamp.

    I know this seems such a corner case.. It happened with 2014070600 version on moodle 2.8.2 if it helps.

  • Picture of Wissam Nahas
    Mon, 16 Mar 2015, 10:17 PM
    Thank you Davo for this great activity! Is there any chance to make it work on 2.8?
  • Davo
    Mon, 16 Mar 2015, 10:19 PM
    Wissam - in what way does it not currently work in Moodle 2.8?
  • Picture of Wissam Nahas
    Tue, 17 Mar 2015, 3:41 PM
    Hi Davo, No I didn't try it yet with 2.8 but according to what is written under your latest release (Moodle 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7), 2.8 is not mentioned. We are planning to add it to our Moodle but also we are planning to upgrade to 2.8 soon. So I wanted to ask you directly to make sure it wont be a problem with 2.8.
    Thank you for your efforts and time.
  • Davo
    Tue, 17 Mar 2015, 5:56 PM
    I know of no major incompatibilities with Moodle 2.8, other than the automatic tick-off via log entries (which has not been converted to work with M2.7+ logging) - all other features (including tick-off via completion) should work.

    There is a version tested with M2.8 on git hub, which I'll now add here as well.
  • Picture of Wissam Nahas
    Tue, 17 Mar 2015, 10:27 PM
    Thank you Davo!
  • Picture of Tuguldur B.
    Thu, 16 Jul 2015, 11:03 PM
    Thanks for the great plugin. Is there any way to rig an event (for example: redirect to a page) after the student has checked off all of the checklist items?
  • Davo
    Thu, 16 Jul 2015, 11:05 PM
    @Tuguldur not without changing the code of the plugin.
  • Picture of Tuguldur B.
    Thu, 16 Jul 2015, 11:08 PM
    @Davo Thanks for the fast response. Could please point me at which files I should edit? I am trying to award a badge after the student has completed the checklist.
  • Davo
    Thu, 16 Jul 2015, 11:13 PM
    @Tuguldur - well the function checklist_update_grades in locallib.php is where the code calculates that a user has completed the checklist (look for the $event->trigger, near the end of that function). However, a redirect from there will only work if javascript is off. If javascript is on, you will need to check the progress inside updatechecks24.js and then do some sort of redirect from there.
Please login to post comments