Recurring Course Proposal

Revision as of 00:38, 21 September 2012 by Peter Bulmer (talk | contribs)

Jump to: navigation, search

See MDL-35335

Alternative/complementary proposal to: Course_Reset_Proposal

The central pillar of this proposal is to modify core activity completion so that modules themeselves can support recurrance, without (necessarily) requiring them to delete user data.

For courses using recurrance, the course modules will move through the following states:

  • completion_incomplete
  • (user completes activity)
  • completion_complete
  • (separately course completes)
  • (separately course completion gets near to expiry)
  • completion_recurring
  • (user re-completes activity)
  • completion_complete

(The cm completion table will need an extra field timerecurrance to indicate when the CM last recurred). Activities testing user completion will need to consider 'recurring' to be equivilent to 'incomplete' except for the need to only consider user actions after 'timerecurrance'. Eg a requirement that a person complete a quiz, would be assessed as 'user must have completed quiz after date 20/09/2012 12:00z' if the state is 'recurring', and timerecurrance is 20/09/2012 12:00z.

Course completion will need extra fields indicating when the completion expires, and 'recurring' to indicate whether the user is currently re-taking the course. Course completions which are 'recurring' can be updated with new completion details if course completion criteria are met.

Courses will need new fields to contain information about completion validity duration, and how long before completion expiry the recurrance event should occur.

When a recurrance event occurs for a particular user for a particular course, I envisage that the following would happen:

  • copy of course completion record to be stored in an archive table
  • course completion record would be marked as recurring for that user,
  • relevant course criteria completions deleted,
  • cm_completions set to completion_recurring.

If the alternate Course_Reset_Proposal is also implemented, then this reset would occur now as well. Although this should not be necessary except in particular circumstances.

The drive behind this proposal is to allow continuous demonstration of a persons compliance with course completion requirements. No data needs to be deleted for the user to re-complete the course, and course completion can be continuous - you don't need to wait for the course to expire before re-completing it.