From 65a72c2b7d15d0eb54335b1db5940a81f359f606 Mon Sep 17 00:00:00 2001 From: Carson Tam Date: Fri, 3 Apr 2026 22:50:56 -0700 Subject: [PATCH] Implement delete_submissions method Added a method to delete multiple submissions based on request data. Fixes #497 --- .../kalvid/classes/privacy/provider.php | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/mod/assign/submission/kalvid/classes/privacy/provider.php b/mod/assign/submission/kalvid/classes/privacy/provider.php index 26da05d6..25aeeb40 100644 --- a/mod/assign/submission/kalvid/classes/privacy/provider.php +++ b/mod/assign/submission/kalvid/classes/privacy/provider.php @@ -134,4 +134,29 @@ public static function delete_submission_for_userid(assign_plugin_request_data $ $DB->delete_records('assignsubmission_kalvid', ['assignment' => $deletedata->get_assignid(), 'submission' => $submissionid]); } + + /** + * Delete multiple submissions for a given context. + * + * @param \mod_assign\privacy\assign_plugin_request_data $requestdata + */ + public static function delete_submissions(assign_plugin_request_data $requestdata) { + global $DB; + + $submissionids = $requestdata->get_submissionids(); + + if (empty($submissionids)) { + return; + } + + list($insql, $params) = $DB->get_in_or_equal($submissionids, SQL_PARAMS_NAMED); + + $params['assignment'] = $requestdata->get_assignid(); + + $DB->delete_records_select( + 'assignsubmission_kalvid', + "assignment = :assignment AND submission $insql", + $params + ); + } }