From 6cbe774d79c34fba544623ca7178437ca4085f67 Mon Sep 17 00:00:00 2001 From: Kumi Date: Mon, 23 Sep 2024 10:02:17 +0200 Subject: [PATCH] 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. --- completion.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 completion.php diff --git a/completion.php b/completion.php new file mode 100644 index 0000000..6460aca --- /dev/null +++ b/completion.php @@ -0,0 +1,24 @@ +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);