feat: add activity completion logic for courses

Introduced a new script to set activity completion for a user in a course. Ensures completion is enabled for the course module before marking activities as completed. This enhancement streamlines tracking of user progress within courses.
This commit is contained in:
Kumi 2024-09-23 10:02:17 +02:00
parent 6ff596c5e1
commit 6cbe774d79
Signed by: kumi
GPG key ID: ECBCC9082395383F

24
completion.php Normal file
View file

@ -0,0 +1,24 @@
<?php
require_once($CFG->libdir.'/completionlib.php');
function set_activity_completion($course, $cm, $userId) {
// Ensure completion is enabled for the course module.
$completion = new completion_info($course);
if ($completion->is_enabled($cm)) {
// Mark the activity as completed for this user.
$completion->update_state($cm, COMPLETION_COMPLETE, $userId);
}
}
$courseid = required_param('courseid', PARAM_INT);
$cmid = required_param('cmid', PARAM_INT);
$userid = $USER->id;
$course = get_course($courseid);
$cm = get_coursemodule_from_id(null, $cmid);
set_activity_completion($course, $cm, $userid);