Best practice forum (Archived)

This forum discussion has been removed

 
This forum post has been removed
Tuesday, 17 July 2012, 8:17 PM
The content of this forum post has been removed and can no longer be accessed.
Matt Mundey
Re: Resetting competency status after a set period
by Matt Mundey - Wednesday, 18 July 2012, 12:28 AM
Group Partners

Hi, just to back up Amir's suggestion...the ability to have recurring Competencies would make a huge difference to our client base, and would add some great extra versatility to Totara's formidable learning mgt abilities!

Many thanks, Matt

Simon Coggins
Re: Resetting competency status after a set period
by Simon Coggins - Wednesday, 25 July 2012, 6:34 PM
Group Totara

Just to follow up on this one - we agree this would be a great addition - we're working with Amir on the details so hopefully this will make it into a future release.

Simon

Simon Coggins
Re: Resetting competency status after a set period
by Simon Coggins - Wednesday, 25 July 2012, 7:24 PM
Group Totara

Actually I'd like to bring the discussion back here as I think there may be some other people who would be interested in where this feature goes.

Here is the discussion so far:

Simon Coggins
16:43 19-07-2012
It is not currently possible to do what you are asking in Totara. 

Implementing the expiring of competencies is something we would like, but it has quite wide ranging implications for the system so we haven't yet had the opportunity to work out how it would be implemented. 

Off the top of my head, here are some of the issues that would need to be considered: 

* Need a competency history table to track old statuses. 
* Add an admin system for defining when competencies expire. Is it a fixed period per competency or can it be different for different users? 
* Notification system to let people know that competencies are expiring 
* Cron function to expire competencies 
* Update all existing code to handle expiring competencies. For example, if a learning plan uses the "complete plan when all items in it are complete", should the plan reactivate when a competency that was complete expires? 
* Updating the way courses and competencies interact to take expiring competencies into account. 

This is clearly quite a lot of work, but as I said definitely something we are interested in. 

Simon 
Amir Elion
00:25 20-07-2012
Thanks for your answer Simon. 
I thought of a temp workaround and wanted to ask if it might work. 
Say we use a 3 level competency scale where levels 2-3 are both set to competent, would passing the linked course a second time make the competency go from 2 to 3? 
If so - is that reflected on logs and reports? 
We might be able to do just a few code changes then that once that happens get the competency level back to 2 for the user thus allowing them to do the course again and trigger the competency achievement once more. 

Another things is though that a competency is achieved by completing activities on a course so the user has already completed those. How would we be able to "make" them pass the course activities again to get it completed?
Simon Coggins
01:48 20-07-2012
No I'm afraid not, when a competency gets marked as proficient it always gets given the lowest scale value that is proficient, so in your example it would stay at 2. Nothing to stop you looking at changing that code though of course. 

Getting users to redo courses is a tricky one, because it's hard to "reset" every possible plugin that could be in the course. Recurring courses handles it by backing up and restoring the course, which seems to be the only reliable way to reset a course completely. The down side is that you have to manage all those course copies and you get separate course completion records for each. 

Simon
Amir Elion
05:12 25-07-2012
Simon hi, 
We have a logical plan on how to address this and would like to run this by you for comments. 
We plan on the following: 
1. Add competency expiry handling along the lines you suggested 
2. Add a setting to course completion setting to determine this is a recurring completion course 
3. Add a field to activity completions. This field would flag if the completion of the activity has already been used for course completion calculation. Every time a user completes a recurring completion course, we would set all flags of activities required to completion as reported, and trigger and linked competency as achieved on this date. 
4. When a user enters such a course, we check completion of activities that do NOT have the flag set to used to calculate previous completion. 
5. Manage related reports and dashboards accordingly (we may implement this to a limited extent first to fit the specific needs and expand later) 

A quick feedback and advice would be appreciated. 
Thanks. 
Amir
Amir Elion
06:32 25-07-2012
After an initial look at course completion status, we are also thinking of adding a "recurring" status to indicate that this course has been completed in the past and it has been restarted to behave in a similar way to not started.
Simon Coggins
Re: Resetting competency status after a set period
by Simon Coggins - Wednesday, 25 July 2012, 7:37 PM
Group Totara

Am I correct in thinking you are saying that there is only one instance of the course (e.g. you aren't making a new copy of the course for each recurrance)?

The problem I see with that approach is that all the activities in the course will still hold any data from their previous attempt. So although the course or activity completion status will have been reset if it contained a quiz for example, they would already have results when they came back to repeat it.

Every individual activity module would need to be modified to support multiple attempts, and given that administrators can add 3rd party modules we would have no way to modify every module.

Simon

This forum post has been removed
Wednesday, 25 July 2012, 8:07 PM
The content of this forum post has been removed and can no longer be accessed.
Simon Coggins
Re: Resetting competency status after a set period
by Simon Coggins - Wednesday, 25 July 2012, 9:15 PM
Group Totara

And I see your point now too - basically you will have a rolling set of people taking the course, all with different expiry periods.

What we really need is a way to reset the course for a specific user in such a way that all data associated with that user gets cleared (or better still archived).

One way to implement this would be to add a new FEATURE_RESET constant to the module plugin_supports() function. If supported a module would implement a modname_reset_user($userid) function which wipes (or archives the data for that user).

We'd then add a reset_course($userid) function which loops through the activities used in the course, and calls the function on any that support it.

We could try creating a tracker issue and offer to write the functionality to get it into moodle if we can make a good case that it would be useful.

Thoughts?

Simon

This forum post has been removed
Wednesday, 25 July 2012, 9:37 PM
The content of this forum post has been removed and can no longer be accessed.
This forum post has been removed
Wednesday, 25 July 2012, 10:08 PM
The content of this forum post has been removed and can no longer be accessed.
Simon Coggins
Re: Resetting competency status after a set period
by Simon Coggins - Sunday, 29 July 2012, 2:05 PM
Group Totara

I spoke with Aaron Barnes (maintainer of course completion) about this last week.

As well as resetting the activities it would be necessary to add some code to course completion to reset the completion criteria. For example the "course grade" criteria would need the grade reseting for that user otherwise it would just auto-complete next time the cron ran.

We could take a similar approach as I described for activites - add criteria_supports to certain criteria and only allow recurring courses to use criteria that support it. That would allow us to get the underlying architecture right and gradually add support for more use cases.

The other area we discussed was how to manage the historical records. Rather than adding columns to the existing course completion table, we thought it would work better if historical records were moved to a separate table when the new occurance begins. This has a few advantages:

  • The existing course completion code can run with minimum changes - so there are less conflicts with upstream to handle
  • Scaling - the course completion table can get pretty big for large sites, if we add all the historical records to the same table it might get rather large. Although copying data to the historical table will have some overhead it will be distributed over time so should be manageable.
Simon
? ?
Re: Resetting competency status after a set period
by ? ? - Thursday, 2 August 2012, 1:25 AM
 

Hi Simon,


I started to work on this issue ,starting with course recurrence completion
see a draft in the attached patch.
This is far from finished but I'll be happy if you can give a quick review .

The conditions that I want support at this time are grading and viewed .
Can you give some tips how to handle grading?

Thanks ,

Rafi

Simon Coggins
Re: Resetting competency status after a set period
by Simon Coggins - Sunday, 9 September 2012, 4:22 PM
Group Totara

I've created a moodle tracker issue:

http://tracker.moodle.org/browse/MDL-35335

and wiki page:

http://docs.moodle.org/dev/Course_Reset_Proposal

to see if I can drum up some support/interest for this. Feel free to add any thoughts/requirements.

Simon

This forum post has been removed
Wednesday, 15 August 2012, 11:07 PM
The content of this forum post has been removed and can no longer be accessed.