We are considering the possibility of a number of enhancements to the "upload completion records" feature in Totara. If Totara devs can speak to any of these their input would be much appreciated. One question I might have is, which if any of these are already on the radar for Totara, and if they aren't on the radar then input on correct execution of a new customization would also be nice.
All critiques and feedback are welcome :)
CLI Batch Import
In many circumstances, it is necessary to import hundreds of thousands of course completion records. An ability to perform large batch imports from the command line is needed to avoid server timeouts and to enhance the automation capabilities of the course completion import. I commented in a somewhat related topic concerning scaling the import utility:
"Uploading Course completion"
https://totara.community/mod/forum/discuss.php?d=16521
Choose User Key Field
Currently each row in the CSV file is keyed to a user in Totara based on the username field. We need a configurable option to choose which field can be used to map records to users in the LMS. The obvious ones are: idnumber, username, email
Choose Course Key Field
Currently, each row in the CSV file is keyed to a course in Totara based on: course name, course shortname, course idnumber, or some combination of those three. At this time I am not aware of the logic being used, it would be easy to find out but I just haven't done it yet. I would assume that the import attempts to match rows from the import file to courses in Totara solely based on idnumber. Perhaps an option in the import settings should exist that let you explicitly choose which to use, ie course name, shortname, course idnumber.
Activity Completion Import
See https://totara.community/mod/forum/discuss.php?d=17856 for some discussion on this.
The essential question is, what if you need some/none/all of the activities in a course to receive a completion record along with the course completion record? This might be necessary when you are using activity access restrictions within a course. An option in the import settings to "mark all activities as complete" might be nice.
Alternatively, we are considering customization to activity access restrictions. These options aren't changing the completion import process so much as they are affected by imported completion records.
- Restrict access to this activity if course is complete via RPL record import
- Ignore access restrictions to this activity if course is complete via RPL record import
From the other thread I referenced, I said:
I have considered that perhaps some new options within activity access restrictions might be nice. For instance, "ignore activity access restrictions if user has completed this course."
In other cases, learners with imported completion records should not be able to interact with an activity. For example, the requirement is that learners with imported completion records should not be able to sign up for an ILT session or submit feedback in a feedback activity. In this case, perhaps an activity access restriction option for "restrict access if user has completed this course."
I would really appreciate thoughts and concerns about this approach of adding these new activity access restrictions.
Set Scorm Lesson Status
The Scorm object being used contains logic based on the scorm lesson status. An assessment is conditionally given to the learner within the scorm object if the lesson status is not complete. We may end up needing an option to have the course completion import set Scorm lesson status on any Scorm activities contained within the course, so that learners with imported completions do not receive the assessment within the scorm activity. In other words, the logic in the scorm object will be able to correctly determine that the user already completed the course.
Custom Completion Fields (and report)
We need ability to have custom completion fields, much like custom fields in user profiles, custom course fields, custom type fields in hierarchies, custom type fields in competencies, etc. Many organizations want to import the "source" of the imported completion record. There are quite a number of other metadata that people may want to import for learners' completion records, such as a URL, the trainer, etc.
I envision this working just like other custom fields are implemented throughout Totara, via a set of database tables like mdl_completion_info_field and mdl_completion_info_data and ability to define "types" that contain these custom fields.
Custom fields would need to be importable, perhaps like the way Totara sync does it with customfield_SHORTNAME.
Also, Totara Completions report source would need to be extended in order to have the ability to filter and report on custom fields.