Course recompletion

General plugins (Local) ::: local_recompletion
Maintained by Dan Marsden, Catalyst IT
This plugin adds course level settings for recompletion - clearing all course and activity completion for a user based on the duration set notifying the student they need to return to the course and recomplete it.
Latest release:
602 sites
57 fans
Current versions available: 3

This plugin adds course level settings for recompletion - clearing all course and activity completion for a user based on the duration set notifying the student they need to return to the course and recomplete it.

This plugin could be used to facilitate annual re-certification.

This plugin deletes existing course completion and activity completion data based on the schedule set by the teacher including the ability to delete Quiz and SCORM attempts within the course. You can also choose to retain the quiz and SCORM attempts within archive tables within the recompletion plugin (You will have to write your own reports to view this archived data though - no reports are currently included in this plugin.)

The following information is cleared from the course during recompletion:

  • All activity grades cleared (and saved to standard grade history tables.)
  • All activity completion and course completion flags removed. (with the option to archive this information)

The following activities have extra support:

  1. Quiz - You can choose to delete all existing quiz attempt data with the option to archive the information or, you can keep the existing attempts and give the student the ability to add new attempts.

  2. SCORM - You can choose to delete all existing SCORM attempt data with the option to archive the information.

  3. Assignment - You can choose to give the student another attempt (if the assignment is configured to allow reopening and the maximum number of attempts has not been reached.

Other activities that store user data will have the activity completion data reset, but may require manual intervention as they are not yet supported fully. Get in touch privately if you would like to fund support for other activities with user data.

For more information on the current issues with this plugin please see the issues tracker:


Screenshot #0


Dan Marsden (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS


  • Tue, Sep 15, 2020, 7:20 AM
    Works fine for me in 3.9 - sorry I can't help any further at this stage. good luck!
  • Tue, Dec 15, 2020, 10:50 PM
    Any comments on 3.10? Many thanks smile
  • Wed, Dec 16, 2020, 11:12 AM
    I'm not aware of any issues with using it in 3.10 - the latest code will always be in github, please report any issues you find there.
  • Fri, Jan 29, 2021, 1:09 AM
    Hi, I am having the same problem as Gunnar. Moodle 3.5+ (yes I know...). I have the recompletion rule set on 50 courses. Only 1 course is not behaving as expected, and only for a few select students. I have an event monitoring rule on the course and I can verify that each of the students were "reset". However, when I look at their GRADES page the last grade from 2019 remains. Other students Grades have been removed as expected. I am looking for a common chain of events that could cause this to occur, but so far it has eluded me.
    Kind Regards
  • Tue, Feb 2, 2021, 11:23 PM
    While digging around, I found I caused some of my own pain. The quiz settings for the two biggest courses were set to display the highest value on the student's GRADES page. So many students are reset using the recompletion rule, but their GRADES page displays pass.
    I have changed the quiz setting to Latest attempt and that resolved some of my pain.
    However, the functionality to manual reset the courses completion date, does reset the date but no the current Grades view. So now I have a few students with a mismatch of dates for course vs. quiz completion. And I can see no way to resynchronize the dates for the individual students.

  • Thu, Feb 11, 2021, 7:18 AM
    Hi Dan,
    Thank you for this plugin, think it's a great use case for many professional who have to get "re-certified" every year or two. My question is, do the students need to be enrolled in the course currently? Or would this this work on past learners of a course, who maybe got unenrolled automatically by "self enrollment" methods?

    For me, I kind of need it to work on no longer enrolled course completion statuses.
  • Thu, Feb 11, 2021, 7:26 AM
    if re-enrolling the users retains their previous course completion date it might work but I haven't tried that myself - best thing to do is try it.
  • Sun, Feb 14, 2021, 6:32 PM
    Hello Dan, thanks for your useful plug-in.
    When we enable the course recompletion after specific duration, it counts enrolment date as a base date or course start date? & Is there any way to implement conditional resetting of course activities?

    Thanks in advance
  • Mon, Feb 15, 2021, 5:54 AM
    @Hoda - the duration set is based on the users previous course completion. If they do not complete the course, the re-completion will not trigger.
  • Mon, Feb 15, 2021, 10:39 PM
    Dan, thanks for all these answers. After testing some, I have seen a user go through one re-completion (triggered correctly). But I am wondering if this works for another cycle? Same user completes the course again, re-completion should be triggered again? Been studying check_recompletion.php and was wondering about comments :
    // Only get the course record for this course once.
    // Only get the recompletion config record for this course once.
  • Mon, Mar 1, 2021, 11:13 PM
    Hello Dan,
    Is there any considerations for the plug-in to reset an assignment activity's completion and retain the previous assignment submission?
    The plugin successfully reset the student's grade and sent out notifications, but we cannot resubmit the assignment or grade the assignment activity.
    Kind Regards
  • Tue, Mar 2, 2021, 7:04 AM
    @Shirley - yes, if the assignment itself is configured to allow reopening - and the maximum number of attempts has not been reached.
  • Thu, Mar 18, 2021, 5:23 AM
    Does it also reset certificates?
  • Thu, Mar 18, 2021, 5:33 AM
    @Andres - No. IMO certificates should not be reset - but potentially a new one re-issued, so that's something that would need to be built into the certificate plugin you are using.
  • Fri, Mar 19, 2021, 7:41 AM
    Is there a way to enable this plugin as a default for course creations?
Please login to post comments