Sorry if this is a basic question, but I can't seem to figure it out!
I need to clear the checks on the completion page to be able to test different settings I am putting on lessons and quizzes -- does anyone know how to do this? "Reset" doesn't seem to be working.
Don't really follow this, but are you referring to Moodle 2 standard activity completion system?
- To clear a manual tickbox, just tick it.
- If you really want to clear all student ticks (not just yours) for a manual tickbox, change completion settings for that activity (I think the option on settings page refers to 'unlock' completion settings), this will clear everything.
- Automatic completion checks do not usually need to be cleared because it recalculates them as necessary. I think you can clear the 'view' completion in the same way as above (unlock settings).
Yes I'm using Moodle 2 and have it set for automatic completion, which won't allow for manual "unchecking" of the tickboxes.
I have tried to unlock the completion settings within the activity, but it doesn't seem to do anything...
OK. Which type of automatic completion?
For example, let's imagine you are using automatic completion for a quiz where you have set it to be marked complete as soon as somebody gets a grade in the quiz.
If you clear the completion settings (or for example, change them to manual and back again, or something like that), it won't make any difference because the settings will be immediately recalculated. In order for somebody to not see it as complete, you'd have to delete their grade in the quiz.
Similarly if you set a forum to be complete once there are 2 posts or something like that, the only way to get it to show un-complete for someone is to delete one of their posts.
Is there a solution for this?
I need to clear the automatic completion status of activities for a specific student.
Sorry but you cannot clear automatic completion status. Actually, it is possible to reset and recalculate it, but because it's based on underlying data that won't help.
If you make it recalculate (which you can do but it has to be for everyone for a a particular activity) it will just notice that the student has completed it and tick it again.
Hello Russell - sorry this is a bit late, but I just saw your post today. This can be done, but requires editing the completion table in the database.
I had the same problem a few weeks ago. In my case, a quiz had not been properly set up to include a passing grade for automatic completion, and students were able to "complete" the course even though they had not achieved a passing grade on a final exam.
I had originally thought that perhaps deleting the quiz attempt would remove the completion status, but I found that the only way to remove the course completion status was to edit the completion table in the database. I found the specific row in the table for the user/course and set the "time completed" back to Null.
Hope that helps,
Hi was just reading this post to solve an issue I'm working on and just to clarify your point Daniel changing the 'time completed' field to NULL in the 'course_completion' table is referring to the whole course completion not just the quiz completion, right?
The activity completion data is held in the 'course_completion_crit_compl' table. In any case on running the cron, moodle will re-populate the 'course_completion' table. If the student has met the course criteria. If you change the course completion criteria than the 'course_completion' and 'course_completion_crit_compl' table are completely removed for that course, re-evaluated and re-populated anyway.
Hi i'm running [2.4] is there honestly still no way to 'untick' this manual completion short of unlocking the criteria which removes all the manual completions. Or editing the database directly. This is crazy dosen't seem like a big change as it toggles the tick and adds the database entry why can't it find it and remove it.
Unfortunatly I don't believe it is as simple as just making the toggle work both ways. Completion needs to be something trustworthy, and prefferably as close to immutable as possible once achieved.
Because of this I am hesitant to make it easy (and potentially accidentally possible) to "uncomplete" a user in a course.
I am aware that currently it is quiet easy to accidentally mark a user as complete in the report shown above, so I think a possible solution would be to require confirmation while completing, or "uncompleting" a user via that report.
I'd love to hear other peoples ideas.
I realize this is an old post, but I have a different use case that also requires the clearing of completion data. In my case, we are running an online certification course that must be completed once a year. If a user takes a course and logs back in a year later to take it again to recertify, they need to be able to have a second enrollment with all of the completion requirements reset. Ideally, it would still keep the record of their previous completion. Is something like this possible at all without manually deleting the past completion stats?
I need this feature as well. I have one of the course completion setting set to:
Condition: Manual completion by others
So that the Teacher has to approve an assignment. There are two students with very similar names and the wrong student was checked off as completing the requirements. Now there seems to be no way to "fix" this at all.
Do we know if there's any further status on this, or if there's a plugin or such that can manage it. "Re-attempt with all conditions reset" is a critical feature in corporate business.
Unsetting completion across all users is totally out of the question in a continuous enrolment / external membership provider situation, so there must be a way to reset an individuals completion status
I certainly understand the immutable-data argument, but it isn't true for all cases, and as such should have something like a specific role requirement to access a tool for it (that isn't enabled by default).
I'm currently having to edit data in the database by hand, and it's getting really annoying.
I'm running 2.5 and just starting to use the completion feature. In a test case I had an activity that included "must receive a grade" as part of the completion criteria. I had a test account with an activity marked as complete. I clicked on the activity as the teacher, went to the grading interface, and set that student's grade to "no grade." Now it shows as not completed.
I don't know what this does to later conditional access activities, but I'm posting it in case this helps in your situation -- in other words if it's an item that has a grade associated, add "must receive a grade" in addition to manual completion, and maybe you can control it that way.
We are planning on implementing this feature in Totara soon and are happy to develop it and contribute it to Moodle if they are willing to accept it.
We have filed a bug in the tracker here with some ideas, please vote for it and comment if you would like to see this feature:
I wrote a module for this which I'd be glad to share.
In addition to getting rid of old completion data, it also removes old grades, quiz attempts, scorm attempts, etc.
The reset can either be done manually, or automatically when they enroll in a course they were previously enrolled in, but the old enrollment has expired. As-is, our plugin makes a backup of the removed data in csv format. If anyone would like a copy of this plugin, please send me a message by clicking on my user name. I would just post a download URL, but I can't upload it somewhere accessible right at the moment.
The plugin may need a few lines added to the configuration if you use activity types that we don't use. I can provide instructions for how to do that.
I'm very interested in your solution . Would it be possilble to upload the code as an attachment to this post?
The attached module, tested with Moodle 2.3 and 2.7, will allow you to DELETE ALL OF THE INFORMATION about a user's activity in a course. That may be helpful for them to retake the course. There is no "undo" button, no recycle bin*. Once you click the button, all record of the student having been in that class is gone. No progress is saved.
Look at locallib.php line #9 - line #32 to see what all it is set to delete. If you use different types of activities than we do, you may need to add more tables to that list.
* Theoretically the logs in backup_csv/ should allow a smart admin to recover the information. There is no guarantee that will actually work.
If you accidentally reset a user you didn't mean to reset, stop and think. Don't DO anything for a minute. Then make a backup of your database.
Then ask your database administrator to look at backup_csv/.
It's funny, I had this problem again and via google found this forum thread where I'd asked about this same problem a couple of years ago. This time around, there's a tool for it (or the beginnings of one, I had to give the code some loving to make it work). Gets me out of trouble this time - thanks for sharing.
I was wondering if there was a Moodle 2.9 version available please?
Has there been any resolution to this? we need to be able to reset user activity as well.
Thank you, Ray. I have just started down this road also. Following your breadcrumbs will save me a lot of time.
Hi Ray, here we are a few years later. I have a client's site that requires employees to take a number of SCORM activities in a course and complete them before the certificate is available to them.
They need to re-certify every 3 years. have you developed this plug in for Moodle 2.9? Will the 2.7 one work?
Wondering if this would work for recertification or is there another plug in out there?
I realize that your post is old, but in case someone comes along with a similar problem. I solved it by having a course for 2013, one for 2014, etc. In 2013, when the student enrolls, he is given access for 1 year (52 weeks) from when they sign up, even if that extends into 2014. In 2014, when they need to be requalified, they have to sign up (and pay for) the 2014 version of the course. In my case, they have to be qualified within 1 month of their base month, so I have to open up the 2015 course on December 1, 2014. Enrollment for the 2013 course is cut off on January 31, 2014.
In my case, I just feed them videos, then they answer some quiz questions. All versions of the course point to the exact some videos, although the quizzes have to be unique in each year. That way, if I update a video, it's automatically reflected in all the active courses.
Hope this helps someone.