General plugins (Local): Course recompletion

local_recompletion
Maintained by Picture of Dan Marsden Dan Marsden, Picture of Catalyst IT 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.
94 sites
168 downloads
17 fans

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:
https://github.com/danmarsden/moodle-local_recompletion/issues

Screenshots

Screenshot #0

Contributors

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

Comments RSS

Show comments
  • Picture of Dan Marsden
    Fri, 20 Jul 2018, 5:53 AM
    Hi Drew,

    Best to ask that question in the forums - good luck!
  • Picture of David Collins
    Fri, 27 Jul 2018, 4:34 AM
    Hi, I'm using the Fordson theme on 3.5.1. It changes how Course Admin tasks are organized. There is no gear icon at the top right of the course and I can't seem to find a way to enable recompletion unless I change the them to something else.
  • Picture of Dan Marsden
    Fri, 27 Jul 2018, 5:03 AM
    @David - the recompletion link appears fine in the clean theme navigation and in the boost theme navigation - I've just had a quick look at fordson and it looks like it hard-codes the course admin links and doesn't use the core methods to obtain the list of course settings - this means that any plugins that extend the course navigation will be ignored by fordson. Nothing I can do about this in the recompletion code - you should report this issue to the fordson theme devs.
  • Picture of Olli Savolainen
    Wed, 5 Sep 2018, 4:12 PM
    Hi Dan! Was wondering whether to contact you on skype but perhaps this channel is less intrusive. We have are running Moodle 3.0 - what do you think are the chances of getting this running on that version? I.e. are the Moodle versions mentioned just what you happen to have tested on or are there actual known dependencies on features of those versions of Moodle? Thanks!
  • Picture of Dan Marsden
    Wed, 5 Sep 2018, 5:04 PM
    you could try it, but IMO you would be better spending time on removing the barriers that are preventing you from upgrading to a supported Moodle release. None of my latest work has been backported to the 3.1 version either and some of the new code may not be compatible with PHP 5
  • Picture of Olli Savolainen
    Wed, 5 Sep 2018, 5:21 PM
    Thanks Dan!
    So far I've commented out two calls to nonexisting functions in QuickForms.
    //$mform->hideIf('archivequizdata', 'quizdata', 'noteq', LOCAL_RECOMPLETION_DELETE);
    //$mform->hideIf('archivescormdata', 'scormdata', 'notchecked');
  • Picture of Olli Savolainen
    Thu, 6 Sep 2018, 10:49 PM
    I can confirm that this seems to work on Moodle 3.0 after the above change to source.
  • Picture of Pär Brink
    Wed, 12 Sep 2018, 9:52 PM
    You are THE MAN Dan Marsden! smile
    This is something that we have been struggling with, as we have a number of courses that require recertification.

    This solves 90% of our troubles.
    It would solve 100% of our troubles IF it would also archive the issued certificates! smile

    It would also solve another of our problems if we could use the feature of deleting scorm attempts via a Web Service.
    Is this something that would be doable??
  • Picture of Dan Marsden
    Thu, 13 Sep 2018, 5:58 AM
    @Pär - thanks for the feedback, I'm hoping to catch up properly with Mark Nelson very soon to discuss the best way to support the certificate activities.
    Deleting scorm attempts via webservices is really something that should be added to the webservices code in the SCORM activity - If you're interested in funding that work drop me a private message and I can provide information on our rates.
  • Picture of Carlos Chiarella
    Wed, 7 Nov 2018, 4:10 AM
    Hi Dan,
    I think this is a great plugin. I have a question for you. Is it possible to only allow the students that fail the course to re complete it?
    Thanks for your help,
    Carlos
  • Picture of Dan Marsden
    Wed, 7 Nov 2018, 4:56 AM
    Hi Carlos - that is not something currently supported but it could be an interesting feature to add. If you're interested in funding that work drop me a private message and I can provide information on our rates.
  • Picture of Carlos Chiarella
    Wed, 7 Nov 2018, 6:05 AM
    Thanks Dan. What is your email please?
  • Picture of Dan Marsden
    Wed, 7 Nov 2018, 7:48 AM
    my firstname @catalyst.net.nz should work smile
  • Picture of B Johnson
    Mon, 19 Nov 2018, 12:22 PM
    Hi Dan - great plugin. We've been using manual SQL reset scripts (against MDL2), which are likely fragile.

    One thing we do do already is preserve existing SCORM attempts - instead of deleting existing ones / moving to another table, we simply insert a new 'cmi.core.lesson_status' entry for each user, with a higher attempt number than the last one. This successfully starts a new attempt, but preserves the old ones - here's the SQL we use (referencing '__userIDs' and '__courseIDs' temp tables containing the list of users and courses we wish to reset):

    -- ATTEMPTS - for every existing attempt, insert a new incomplete one (leaving existing ones untouched)
    INSERT INTO `mdl_scorm_scoes_track` (`userid`, `scormid`, `scoid`, `attempt`, `element`, `value`, `timemodified`)

    SELECT st.userid, st.scormid, st.scoid, (st.attempt + 1), st.element, 'incomplete', UNIX_TIMESTAMP()
    FROM `mdl_scorm_scoes_track` AS st
    JOIN `mdl_course_modules` AS cm ON cm.instance = st.scormid
    JOIN `mdl_course` AS c ON c.id = cm.course
    JOIN `mdl_user` AS usr ON usr.id = st.userid

    WHERE st.userid IN (SELECT id FROM __userIDs)
    AND st.element = 'cmi.core.lesson_status'
    AND st.attempt = (SELECT MAX(attempt) FROM mdl_scorm_scoes_track WHERE userid = st.userid AND scormid = st.scormid)
    AND c.id IN (SELECT id FROM __courseIDs)
    ;
  • Picture of Dan Marsden
    Mon, 19 Nov 2018, 1:35 PM
    thanks for the feedback - will keep this in mind for future versions.
1 2
Please login to post comments